diff options
762 files changed, 54619 insertions, 15460 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index aa45d739e9..9b6e0b8059 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -16,6 +16,11 @@ Recipes: Maintained recipes (should match package names, can include wildcard ----------------------------------------------------------------------------- +Person: Andreas Holzer +Mail: a.holzer@cheese.at +Website: http://members.cheese.at/woody/zaurus/ +Recipes: gnuchess, fltk-chess + Person: Andy Wilcox Mail: andy@protium.com Website: http://www.openprotium.com @@ -127,6 +132,11 @@ Recipes: linux, hostap*, orinoco*, wpa-supplicant*, wireless-tools, keymaps Recipes: linux-rp, gammu Recipes: ttf-fonts/* +Person: Matthias 'CoreDump' Hentges +Website: http://www.hentges.net +Machines: collie, spitz +Recipes: altboot, webcam-server + Person: Michael 'Mickey' Lauer Mail: mlauer@vanille-media.de Distros: Ångström, generic @@ -167,16 +177,18 @@ Website: http://zerochaos.aircrack-ng.org Interests: wifi, packet injection, security Distros: Angstrom Machines: akita -Recipes: aircrack-ng, kismet, mdk2, rfakeap, rglueap, void11 +Recipes: aircrack-ng, kismet, lorcon, mdk, rfakeap, rglueap, +Recipes: rt2570-k2wrlz, void11 Person: Rolf 'Laibsch' Leggewie Mail: OE-recipes@rolf.leggewie.biz Website: http://oz.leggewie.org Interests: Japanese on the Zaurus -Distros: openzaurus -Machines: collie +Distros: Ångström +Machines: collie, spitz Recipes: anthy, nunome, uim*, granule, qpobox*, qte-font-unifont* -Recipes: qpf-unismall, poboxserver, imkit* +Recipes: qpf-unismall, qpobox, poboxserver, imkit*, scim, zten +Recipes: eb, eblook Person: Shane Volpe Mail: shanevolpe@gmail.com diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass index a5fdb33895..cc0d11e515 100644 --- a/classes/cpan-base.bbclass +++ b/classes/cpan-base.bbclass @@ -4,8 +4,8 @@ # FILES_${PN} += "${libdir}/perl5 ${datadir}/perl5" -DEPENDS += "perl perl-native" -RDEPENDS += "perl" +DEPENDS += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}" +RDEPENDS += "${@["perl", ""][(bb.data.inherits_class('native', d))]}" # Determine the staged version of perl from the perl configuration file def get_perl_version(d): diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass index 3b1a2b72ca..3250528c7a 100644 --- a/classes/cpan.bbclass +++ b/classes/cpan.bbclass @@ -8,6 +8,9 @@ EXTRA_CPANFLAGS ?= "" # Env var which tells perl if it should use host (no) or target (yes) settings export PERLCONFIGTARGET = "${@is_target(d)}" +# Env var which tells perl where the perl include files are +export PERL_INC = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}/CORE" + cpan_do_configure () { yes '' | perl Makefile.PL ${EXTRA_CPANFLAGS} if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then diff --git a/classes/distutils-base.bbclass b/classes/distutils-base.bbclass index 15e945d518..db006b8c77 100644 --- a/classes/distutils-base.bbclass +++ b/classes/distutils-base.bbclass @@ -11,4 +11,5 @@ def python_dir(d): PYTHON_DIR = "${@python_dir(d)}" FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}" +FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/${SRCNAME}/.debug" diff --git a/classes/distutils.bbclass b/classes/distutils.bbclass index 5f57a9ea19..db15cebdd7 100644 --- a/classes/distutils.bbclass +++ b/classes/distutils.bbclass @@ -10,6 +10,23 @@ distutils_do_install() { BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ ${STAGING_BINDIR_NATIVE}/python setup.py install --prefix=${D}/${prefix} --install-data=${D}/${datadir} || \ oefatal "python setup.py install execution failed." + + for i in `find ${D} -name "*.py"` ; do \ + sed -i -e s:${D}::g $i + done + + if test -e ${D}${bindir} ; then + for i in ${D}${bindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i + done + fi + + if test -e ${D}${sbindir} ; then + for i in ${D}${sbindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i + done + fi + } EXPORT_FUNCTIONS do_compile do_install diff --git a/classes/icecc.bbclass b/classes/icecc.bbclass index 5fadee4ab6..446e78ae1a 100644 --- a/classes/icecc.bbclass +++ b/classes/icecc.bbclass @@ -253,10 +253,11 @@ def icc_path(bb,d,compile): #"system" package blacklist contains a list of packages that can not distribute compile tasks #for one reason or the other - system_package_blacklist = [ "uclibc", "glibc", "qemu" ] + system_package_blacklist = [ "uclibc", "glibc-intermediate", "qemu" ] for black in system_package_blacklist: if black in package_tmp: + bb.data.setVar('PARALLEL_MAKE' , '', d) return "" #user defined exclusion list @@ -265,6 +266,7 @@ def icc_path(bb,d,compile): for black in user_package_blacklist: if black in package_tmp: + bb.data.setVar('PARALLEL_MAKE' , '', d) return "" diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 9f243c8c9a..08c1058edf 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -54,11 +54,15 @@ def package_qa_get_machine_dict(): "sparc": ( 2, 0, 0, False, True), }, "linux-uclibc" : { - "arm" : (40, 97, 0, True, True), - "armeb": (40, 97, 0, False, True), - "powerpc": (20, 0, 0, False, True), - "mipsel": ( 8, 0, 0, True, True), + "arm" : ( 40, 97, 0, True, True), + "armeb": ( 40, 97, 0, False, True), + "powerpc": ( 20, 0, 0, False, True), + "mipsel": ( 8, 0, 0, True, True), + "avr32": (6317, 0, 0, False, True), }, + "uclinux-uclibc" : { + "bfin": ( 0, 0, 0, True, True), + }, "linux-gnueabi" : { "arm" : (40, 0, 0, True, True), "armeb" : (40, 0, 0, False, True), @@ -219,7 +223,7 @@ def package_qa_check_rpath(file,name,d): bb.fatal("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check") #bb.note("%s -B -F%%r#F %s" % (scanelf,file)) - output = os.popen("%s -B -F%%r#F %s" % (scanelf,file)) + output = os.popen("%s -B -F%%r#F '%s'" % (scanelf,file)) txt = output.readline().split() #bb.note("???%s???" % bad_dir_test) for line in txt: @@ -392,9 +396,9 @@ def package_qa_check_rdepends(pkg, workdir, d): # Now do the sanity check!!! for rdepend in rdepends: if "-dbg" in rdepend: - package_qa_write_error( 2, name, rdepend, d ) - bb.error("QA issue, koen give us a better msg!!!") - if package_qa_make_fatal_error( 2, name, rdepend, d ): + package_qa_write_error( 2, pkgname, rdepend, d ) + bb.error("QA issue: %s rdepends on %s" % (pkgname,rdepend)) + if package_qa_make_fatal_error( 2, pkgname, rdepend, d ): sane = False return sane diff --git a/classes/kernel-arch.bbclass b/classes/kernel-arch.bbclass index c50a7d5ebf..9208c3507a 100644 --- a/classes/kernel-arch.bbclass +++ b/classes/kernel-arch.bbclass @@ -11,7 +11,8 @@ valid_archs = "alpha cris ia64 \ arm arm26 \ m32r mips \ sh sh64 um h8300 \ - parisc s390 v850" + parisc s390 v850 \ + avr32 blackfin" def map_kernel_arch(a, d): import bb, re @@ -23,7 +24,8 @@ def map_kernel_arch(a, d): elif re.match('armeb$', a): return 'arm' elif re.match('mipsel$', a): return 'mips' elif re.match('sh(3|4)$', a): return 'sh' - elif a in valid_archs: return a + elif re.match('bfin', a): return 'blackfin' + elif a in valid_archs: return a else: bb.error("cannot map '%s' to a linux kernel architecture" % a) diff --git a/classes/oplinux-mirrors.bbclass b/classes/oplinux-mirrors.bbclass index 6e9d051c3f..076cd6f1fe 100644 --- a/classes/oplinux-mirrors.bbclass +++ b/classes/oplinux-mirrors.bbclass @@ -1,14 +1,7 @@ -MIRRORS_append () { -ftp://.*/.*/ http://www.ifaistos.awmn/oplinux/stable/sources/ -http://.*/.*/ http://www.ifaistos.awmn/oplinux/stable/sources/ -ftp://.*/.*/ http://www.ifaistos.awmn/oplinux/unstable/sources/ -http://.*/.*/ http://www.ifaistos.awmn/oplinux/unstable/sources/ - -ftp://.*/.*/ http://www.ifaistos.awmn/oplinux-uclibc/stable/sources/ -http://.*/.*/ http://www.ifaistos.awmn/oplinux-uclibc/stable/sources/ -ftp://.*/.*/ http:///www.ifaistos.awmn/oplinux-uclibc/unstable/sources/ -http://.*/.*/ http://www.ifaistos.awmn/oplinux-uclibc/unstable/sources/ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) +MIRRORS_append () { ftp://.*/.*/ http://digital-opsis.com/oplinux/stable/sources/ http://.*/.*/ http://digital-opsis.com/oplinux/stable/sources/ ftp://.*/.*/ http://digital-opsis.com/oplinux/unstable/sources/ diff --git a/classes/palmtop.bbclass b/classes/palmtop.bbclass index 39b9bd2b60..e99b31aaa3 100644 --- a/classes/palmtop.bbclass +++ b/classes/palmtop.bbclass @@ -16,6 +16,7 @@ EXTRA_QMAKEVARS_POST += "DEFINES+=QWS CONFIG+=qt ${CPP_SUPPORT_LIB}" EXTRA_QMAKEVARS_POST += '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "CONFIG+=thread", "CONFIG-=thread",d)}' EXTRA_QMAKEVARS_POST += "${@["LIBS+=-lqpe ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}" DEPENDS_prepend = "${@["virtual/libqpe1 uicmoc-native ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}" +QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte", d)}' PACKAGES = "${PN}-dbg ${PN}-dev ${PN} ${PN}-doc ${PN}-locale" FILES_${PN} = " ${palmtopdir} " diff --git a/classes/qpf.bbclass b/classes/qpf.bbclass index d6e58871d5..67761bd4be 100644 --- a/classes/qpf.bbclass +++ b/classes/qpf.bbclass @@ -9,15 +9,11 @@ do_compile() { } pkg_postinst_fonts() { -#!/bin/sh -set -e . /etc/profile ${sbindir}/update-qtfontdir } pkg_postrm_fonts() { -#!/bin/sh -set -e . /etc/profile ${sbindir}/update-qtfontdir -f } diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index 26eca34da9..210563aed1 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -7,10 +7,11 @@ do_rootfs[depends] += "ipkg-native:do_populate_staging ipkg-utils-native:do_populate_staging" -IPKG_ARGS = "-f ${T}/ipkg.conf -o ${IMAGE_ROOTFS}" +IPKG_ARGS = "-f ${T}/ipkg.conf -o ${IMAGE_ROOTFS} ${@base_conditional("PACKAGE_INSTALL_NO_DEPS", "1", "-nodeps", "", d)}" RDEPENDS += "ipkg ipkg-collateral" PACKAGE_INSTALL += "ipkg ipkg-collateral" +PACKAGE_INSTALL_NO_DEPS ?= "0" rootfs_ipk_do_indexes () { set -x diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass index 6868750d2d..4191f4edc1 100644 --- a/classes/siteinfo.bbclass +++ b/classes/siteinfo.bbclass @@ -29,6 +29,9 @@ def get_siteinfo_list(d): "arm-linux-gnueabi": "endian-little bit-32 common-glibc arm-common arm-linux",\ "arm-linux-uclibc": "endian-little bit-32 common-uclibc arm-common",\ "arm-linux-uclibcgnueabi": "endian-little bit-32 common-uclibc arm-common arm-linux-uclibc",\ + "avr32-linux": "endian-big bit-32 common-glibc avr32-common",\ + "avr32-linux-uclibc": "endian-big bit-32 common-uclibc avr32-common",\ + "bfin-uclinux-uclibc": "endian-little bit-32 common-uclibc bfin-common",\ "i386-linux": "endian-little bit-32 common-glibc ix86-common",\ "i486-linux": "endian-little bit-32 common-glibc ix86-common",\ "i586-linux": "endian-little bit-32 common-glibc ix86-common",\ diff --git a/conf/bitbake.conf b/conf/bitbake.conf index cdca2b6383..a86e806fe1 100644 --- a/conf/bitbake.conf +++ b/conf/bitbake.conf @@ -348,7 +348,6 @@ KERNELORG_MIRROR = "http://kernel.org/" # You can use the mirror of your country to get faster downloads by putting # export DEBIAN_MIRROR = "ftp://ftp.de.debian.org/debian/pool" -# export SOURCEFORGE_MIRROR = "http://belnet.dl.sourceforge.net/sourceforge" # into your local.conf FETCHCOMMAND = "ERROR, this must be a BitBake bug" diff --git a/conf/checksums.ini b/conf/checksums.ini index 953b5a14ea..1de88de9c5 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -854,9 +854,9 @@ sha256=2d7af8211cda81abde3e0bb8ccedbd18924a27b244ff35d4eacafcf899038c56 md5=183f6d46e8fa5e4b2aff240ab1586c2e sha256=80c38a005325e7539012bd665fb8e06af9ee9bfc74efb236ebff121265bfd463 -[ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz] -md5=6bc300365053c815b10b800a21e0bc7e -sha256=fdb726c5d3761d4c1569e702b74cf9561dc07c6a5f48af3e3fd18685f50d490c +[ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz] +md5=b77a17e4a5a817100ad4b2613935055e +sha256=fbf5b9a63ea6e3abebfabc04506f0e18a2860071031e34ea4ad4f450b8c43d4b [ftp://ftp.gnupg.org/gcrypt/alpha/libassuan/libassuan-0.6.7.tar.gz] md5=db4e6939fafbaae80cab11a67f28771d @@ -1254,6 +1254,10 @@ sha256=a23860a7390bbbc87cf98833f8716cd03b88b1d6fce77e0624daba3150a177e9 md5=13f12bf58a32ebf15837fcd605cb3c99 sha256=c163e72cb002435d1d261a47acdcb23e59c10e4263f983a5f2c2d2ca40ede75b +[ftp://ftp.trolltech.com/pub/qt/source/qt-x11-opensource-src-4.3.0.tar.gz] +md5=8012acea71b35c18247bd92c4721589d +sha256=abc37774d327a9b1d1d35e223f014c7e92168cd6c7baf66156badca68f8f1440 + [ftp://ftp.trolltech.com/qt/source/qt-embedded-free-3.3.5.tar.bz2] md5=022d7a3c572b554f3c47b12cae71a8a4 sha256=a97656796c0ef8e87dd83e6138bc406e31830d08f9b213e039d8be39ea65c8e4 @@ -11893,3 +11897,7 @@ sha256=63287527c8d9e27e801cf0804436f3494bd569db05d49dcdd2a942ae72fa9055 [ftp://ftp.software.ibm.com/software/globalization/icu/3.6/icu4c-3_6-src.tgz] md5=6243f7a19e03e05403ce84e597510d4c sha256=5135e8d69d6206d320515df7aeee7027711ab1aef9d8dbf29571a97a9746b041 + +[ftp://mama.indstate.edu/linux/tree/tree-1.5.1.tgz] +md5=274ca4d36ee6fb216fa6cf01ad5eaa84 +sha256=1cda1c4d43c6e11ac2214e0a886f1d184bf59d49252cb489b110697f686f809c diff --git a/conf/distro/amsdelta-oe.conf b/conf/distro/amsdelta-oe.conf index 6e7adda029..6d3ad7bd6b 100644 --- a/conf/distro/amsdelta-oe.conf +++ b/conf/distro/amsdelta-oe.conf @@ -2,7 +2,7 @@ DISTRO = "amsdelta-oe" DISTRO_NAME = "AmsDelta Linux" DISTRO_VERSION = "unstable-${DATE}" -require conf/distro/ansgstrom-2007.1.conf +require conf/distro/angstrom-2007.1.conf DISTRO_TYPE = "debug" diff --git a/conf/distro/angstrom-2007.1-oabi.conf b/conf/distro/angstrom-2007.1-oabi.conf deleted file mode 100644 index d2e59f85a4..0000000000 --- a/conf/distro/angstrom-2007.1-oabi.conf +++ /dev/null @@ -1,24 +0,0 @@ -require conf/distro/angstrom-2007.1.conf - -#this is a special version of angstrom for armv4 based machines that can't do EABI -#see http://wiki.debian.org/ArmEabiPort for details on that - -PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc = "glibc-intermediate" - -#only glibc based builds are supported ATM -TARGET_OS = "linux" - -PACKAGE_ARCH = "arm-oabi" -PACKAGE_EXTRA_ARCHS = "arm-oabi" - -PREFERRED_VERSION_linux-handhelds-2.6_h3600 = "2.6.19-hh13" - -FEED_ARCH_collie = "arm-oabi" -FEED_ARCH_h3600 = "arm-oabi" -FEED_ARCH_h3800 = "arm-oabi" -FEED_ARCH_simpad = "arm-oabi" - - - - - diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf index 71303ab836..66cb1df12f 100644 --- a/conf/distro/angstrom-2007.1.conf +++ b/conf/distro/angstrom-2007.1.conf @@ -8,11 +8,14 @@ #DISTRO_VERSION = "2007.4" DISTRO_VERSION = "test-${DATE}" -DISTRO_REVISION = "43" +DISTRO_REVISION = "46" require conf/distro/include/angstrom.inc require conf/distro/include/sane-srcdates.inc +#Images built can have to modes: +# 'debug': empty rootpassword, strace and gdb included +# 'release' no root password, no strace and gdb by default DISTRO_TYPE ?= "debug" #DISTRO_TYPE = "release" @@ -75,154 +78,129 @@ FEED_ARCH_progear = "i686" FEED_ARCH_efika = "ppc603e" +#strongarm machines, no EABI + +FEED_ARCH_collie = "arm-oabi" +FEED_ARCH_h3600 = "arm-oabi" +FEED_ARCH_h3800 = "arm-oabi" +FEED_ARCH_simpad = "arm-oabi" + +#Tweak packaging for strongarm machines since they can't use EABI + +PACKAGE_ARCH_collie = "arm-oabi" +PACKAGE_ARCH_h3600 = "arm-oabi" +PACKAGE_ARCH_h3800 = "arm-oabi" +PACKAGE_ARCH_simpad = "arm-oabi" + +PACKAGE_EXTRA_ARCHS_collie = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3600 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_h3800 = "arm-oabi" +PACKAGE_EXTRA_ARCHS_simpad = "arm-oabi" + FEED_URIS += " \ no-arch##${ANGSTROM_URI}/unstable/feed/all \ base##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/base \ perl##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/perl \ python##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/python \ debug##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/debug \ + gstreamer##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/gstreamer \ ${MACHINE}##${ANGSTROM_URI}/unstable/feed/${FEED_ARCH}/machine/${MACHINE}" # base##${ANGSTROM_URI}/releases/${DISTRO_VERSION}/feed/${FEED_ARCH}/base \ # ${MACHINE}##${ANGSTROM_URI}/releases/${DISTRO_VERSION}/feed/${FEED_ARCH}/machine/${MACHINE} \ # updates##${ANGSTROM_URI}/releases/${DISTRO_VERSION}/feed/${FEED_ARCH}/updates" - -# We will lock down a SRCDATE when we go into release mode -#SRCDATE = "20070303" - -PREFERRED_VERSION_linux-handhelds-2.6 ?= "2.6.16-hh9" -PREFERRED_VERSION_linux-handhelds-2.6_h3900 ?= "2.6.20-hh6" -PREFERRED_VERSION_linux-handhelds-2.6_h4000 ?= "2.6.20-hh6" -PREFERRED_VERSION_linux-handhelds-2.6_h5000 ?= "2.6.20-hh6" -PREFERRED_VERSION_linux-handhelds-2.6_htcuniversal ?= "2.6.19-hh13" -PREFERRED_VERSION_linux-handhelds-2.6_hx4700 ?= "2.6.20-hh6" -PREFERRED_VERSION_linux-handhelds-2.6_magician ?= "2.6.20-hh6" - -PREFERRED_VERSION_file = "4.18" -PREFERRED_VERSION_file_native = "4.18" - -PREFERRED_VERSION_perl-native = "5.8.8" -PREFERRED_VERSION_perl = "5.8.8" - -CVS_TARBALL_STASH = "\ +#The angstrom-mirrors.bbclass should have everything, but we can use this as a fallback +CVS_TARBALL_STASH ?= "\ http://www.angstrom-distribution.org/unstable/sources/ \ http://ewi546.ewi.utwente.nl/mirror/www.openzaurus.org/official/unstable/3.5.4/sources/ \ " -# GPE -require conf/distro/include/preferred-gpe-versions-2.8.inc - -PREFERRED_PROVIDER_dbus-glib = "dbus-glib" -PREFERRED_PROVIDER_virtual/libsdl ?= "libsdl-x11" -PREFERRED_PROVIDER_virtual/libxine ?= "libxine-x11" -PREFERRED_PROVIDER_esound ?= "pulseaudio" +# We will lock down a SRCDATE when we go into release mode +#SRCDATE = "20070703" -# we don't ship gtk-directfb by default -PREFERRED_PROVIDER_gtk+ ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-ani ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-bmpg ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-gif ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-ico ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-jpeg ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-pcx ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-png ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-pnm ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-ras ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-tga ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-wbmp ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-xbm ?= "gtk+" -PREFERRED_PROVIDER_gdk-pixbuf-loader-xpm ?= "gtk+" +#Make sure we use 2.6 on machines with a 2.4/2.6 selector +KERNEL = "kernel26" +MACHINE_KERNEL_VERSION = "2.6" +PCMCIA_MANAGER = "pcmciautils" -PREFERRED_VERSION_fontconfig = "2.4.1" -PREFERRED_VERSION_freetype = "2.3.3" -PREFERRED_VERSION_freetype-native = "2.2.1" -PREFERRED_VERSION_cairo = "1.4.4" -PREFERRED_VERSION_glib-2.0 = "2.12.12" -PREFERRED_VERSION_pango = "1.16.4" +#Preferred version for the kernel on various machines +PREFERRED_VERSION_linux-handhelds-2.6 ?= "2.6.16-hh9" +PREFERRED_VERSION_linux-handhelds-2.6_h3900 ?= "2.6.20-hh6" +PREFERRED_VERSION_linux-handhelds-2.6_h4000 ?= "2.6.20-hh6" +PREFERRED_VERSION_linux-handhelds-2.6_h5000 ?= "2.6.20-hh6" +PREFERRED_VERSION_linux-handhelds-2.6_htcuniversal ?= "2.6.19-hh13" +PREFERRED_VERSION_linux-handhelds-2.6_hx4700 ?= "2.6.20-hh6" +PREFERRED_VERSION_linux-handhelds-2.6_magician ?= "2.6.20-hh6" + +# Needed for crappy ipaqs with broken hostap in the kernel +PREFERRED_VERSION_hostap-modules ?= "0.4.7" +PREFERRED_VERSION_hostap-utils ?= "0.4.7" + +PREFERRED_VERSION_file = "4.18" +PREFERRED_VERSION_file_native = "4.18" + +PREFERRED_VERSION_fontconfig = "2.4.1" +PREFERRED_VERSION_freetype = "2.3.3" +PREFERRED_VERSION_freetype-native = "2.2.1" +PREFERRED_VERSION_cairo = "1.4.8" +PREFERRED_VERSION_glib-2.0 = "2.12.12" +PREFERRED_VERSION_pango = "1.16.4" +PREFERRED_VERSION_atk = "1.10.3" +PREFERRED_VERSION_gtk+ = "2.10.12" # older gtk-webcore releases don't work on ARM/EABI # We need to switch to a fixed SRCDATE or release as soon as possible -PREFERRED_VERSION_osb-browser = "0.5.0+svn${SRCDATE}" -PREFERRED_VERSION_osb-jscore = "0.5.2+svn${SRCDATE}" -PREFERRED_VERSION_osb-nrcit = "0.5.2+svn${SRCDATE}" -PREFERRED_VERSION_osb-nrcore = "0.5.2+svn${SRCDATE}" +PREFERRED_VERSION_osb-browser = "0.5.0+svn${SRCDATE}" +PREFERRED_VERSION_osb-jscore = "0.5.2+svn${SRCDATE}" +PREFERRED_VERSION_osb-nrcit = "0.5.2+svn${SRCDATE}" +PREFERRED_VERSION_osb-nrcore = "0.5.2+svn${SRCDATE}" #Small machines prefer kdrive, but we might ship full Xorg in other images -PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" -PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" - -require conf/distro/include/preferred-xorg-versions-X11R7.2.inc +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" +PREFERRED_PROVIDER_xserver ?= "xserver-kdrive" -#PREFERRED_VERSION_xserver-kdrive = "1.2.0" -PREFERRED_VERSION_gtk+ = "2.10.12" -PREFERRED_VERSION_libgnomeui = "2.16.1" +PREFERRED_VERSION_xserver-kdrive ?= "1.2.0" +PREFERRED_VERSION_libxrandr ?= "1.2.1" +PREFERRED_VERSION_xrandr ?= "1.2.0" +PREFERRED_VERSION_randrproto ?= "1.2.1" -PREFERRED_VERSION_prismstumbler = "0.7.3" +PREFERRED_VERSION_libgnomeui = "2.16.1" +PREFERRED_VERSION_prismstumbler = "0.7.3" -#zap extra stuff taking place in $MACHINE.conf -GPE_EXTRA_INSTALL = "" - - -# E -require conf/distro/include/preferred-e-versions.inc +#use EABI ready toolchain +PREFERRED_VERSION_gcc ?= "4.1.2" +PREFERRED_VERSION_gcc-cross ?= "4.1.2" +PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2" +PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2" -#Make sure we use 2.6 on machines with a 2.4/2.6 selector -KERNEL = "kernel26" -MACHINE_KERNEL_VERSION = "2.6" - -PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap" - -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross" -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross" +PREFERRED_VERSION_binutils ?= "2.17.50.0.5" +PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5" +PREFERRED_VERSION_binutils-cross-sdk ?= "2.17.50.0.5" -# Virtuals: -PREFERRED_PROVIDER_virtual/db ?= "db" -PREFERRED_PROVIDER_virtual/db-native ?= "db-native" -PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" +#avr32 only has patches for binutils 2.17 and gcc 4.1.2 in OE +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc_avr32 = "avr32-gcc-cross" +PREFERRED_VERSION_avr32-gcc = "4.1.2" +PREFERRED_VERSION_avr32-gcc-cross = "4.1.2" +PREFERRED_VERSION_gcc-cross-sdk_avr32 = "4.0.2" +PREFERRED_VERSION_gcc-cross-initial_avr32 = "4.0.2" -# Others: -PREFERRED_PROVIDER_virtual/libx11 ?= "diet-x11" -PREFERRED_PROVIDER_gconf ?= "gconf-dbus" -PREFERRED_PROVIDER_gnome-vfs ?= "gnome-vfs" -PREFERRED_PROVIDER_gnome-vfs-plugin-file ?= "gnome-vfs" -PREFERRED_PROVIDER_tslib ?= "tslib" -PREFERRED_PROVIDER_tslib-conf ?= "tslib" -PREFERRED_PROVIDER_libgpewidget ?= "libgpewidget" -PREFERRED_PROVIDER_ntp = "ntp" -PREFERRED_PROVIDER_hotplug = "udev" -PREFERRED_PROVIDER_libxss = "libxss" - -#NPTL stuff -PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc = "glibc-intermediate" - - -#shouldn't that be uclibc-initial???? -PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" -PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" - -#use EABI toolchain -PREFERRED_VERSION_gcc ?= "4.1.2" -PREFERRED_VERSION_gcc-cross ?= "4.1.2" -PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2" -PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1" - -PREFERRED_VERSION_binutils ?= "2.17.50.0.5" -PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5" -PREFERRED_VERSION_binutils-cross-sdk ?= "2.17.50.0.5" +PREFERRED_VERSION_binutils_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross_avr32 = "2.17" +PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17" +#This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against PREFERRED_VERSION_linux-libc-headers ?= "2.6.20" +PREFERRED_VERSION_linux-libc-headers_bfin = "2.6.21" +#Prefer glibc 2.5 and uclibc 0.9.29, these have had the most testing. PREFERRED_VERSION_glibc ?= "2.5" PREFERRED_VERSION_uclibc ?= "0.9.29" +PREFERRED_VERSION_uclibc-initial ?= "0.9.29" + +#there's is no avr32 patch for 0.9.29 +PREFERRED_VERSION_uclibc_avr32 = "0.9.28" +PREFERRED_VERSION_uclibc-initial_avr32 = "0.9.28" PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4" PREFERRED_VERSION_glibc-intermediate ?= "2.5" @@ -239,29 +217,93 @@ PREFERRED_VERSION_glibc-initial ?= "2.5" # Busybox <1.1.0 doesn't have EABI support PREFERRED_VERSION_busybox = "1.2.1" -PCMCIA_MANAGER = "pcmciautils" - PREFERRED_VERSION_dbus ?= "1.0.2" PREFERRED_VERSION_dbus-glib ?= "0.72" -PREFERRED_PROVIDER_hostap-conf ?= "hostap-conf" -PREFERRED_PROVIDER_hostap-modules_h2200 ?= "hostap-modules" -PREFERRED_PROVIDER_hostap-modules_hx4700 ?= "hostap-modules" -PREFERRED_VERSION_hostap-modules ?= "0.4.7" -PREFERRED_VERSION_hostap-utils ?= "0.4.7" - PREFERRED_VERSION_wpa-supplicant = "0.5.5" + +#Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom +require conf/distro/include/preferred-gpe-versions-2.8.inc +require conf/distro/include/preferred-e-versions.inc +require conf/distro/include/preferred-xorg-versions-X11R7.2.inc + + +# Virtuals: +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross" +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross" + +#Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo) +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc = "glibc-intermediate" + +PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" +PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc = "uclibc-initial" + +# hostap stuff, we prefer the in-kernel modules, but those don't work for all machines +PREFERRED_PROVIDER_hostap-conf ?= "hostap-conf" +PREFERRED_PROVIDER_hostap-modules_h2200 ?= "hostap-modules" +PREFERRED_PROVIDER_hostap-modules_hx4700 ?= "hostap-modules" + +PREFERRED_PROVIDER_virtual/db ?= "db" +PREFERRED_PROVIDER_virtual/db-native ?= "db-native" +PREFERRED_PROVIDER_virtual/libsdl ?= "libsdl-x11" +PREFERRED_PROVIDER_virtual/libx11 ?= "diet-x11" +PREFERRED_PROVIDER_virtual/libxine ?= "libxine-x11" +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive" + +# Others: +PREFERRED_PROVIDER_dbus-glib = "dbus-glib" +PREFERRED_PROVIDER_esound ?= "pulseaudio" +PREFERRED_PROVIDER_gconf ?= "gconf-dbus" +PREFERRED_PROVIDER_gnome-vfs ?= "gnome-vfs" +PREFERRED_PROVIDER_gnome-vfs-plugin-file ?= "gnome-vfs" +PREFERRED_PROVIDER_tslib ?= "tslib" +PREFERRED_PROVIDER_tslib-conf ?= "tslib" +PREFERRED_PROVIDER_libgpewidget ?= "libgpewidget" +PREFERRED_PROVIDER_ntp ?= "ntp" +PREFERRED_PROVIDER_hotplug = "udev" +PREFERRED_PROVIDER_libxss = "libxss" + +# we don't ship gtk-directfb by default +PREFERRED_PROVIDER_gtk+ ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-ani ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-bmpg ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-gif ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-ico ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-jpeg ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-pcx ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-png ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-pnm ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-ras ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-tga ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-wbmp ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-xbm ?= "gtk+" +PREFERRED_PROVIDER_gdk-pixbuf-loader-xpm ?= "gtk+" + + +#Silence a warning during parsing +PREFERRED_PROVIDER_task-bootstrap = "task-bootstrap" + + + #Down here we put stuff we want to install into machines without polluting conf/machine/ with distro stuff # c7x0, akita, spitz, nokia770, h2200, h6300, hx4700, simpad # add altboot to compatible models, will be replaced with angstrom-bootmanager -#EXTRA_STUFF_append_c7x0 = "altboot" -#EXTRA_STUFF_append_akita = "altboot" -#EXTRA_STUFF_append_spitz = "altboot" -#EXTRA_STUFF_append_poodle = "altboot" -#EXTRA_STUFF_append_tosa = "altboot" +#PREFERRED_VERSION_altboot = "1.0.8+1.0.9_pre1" +#EXTRA_STUFF_append_c7x0 += "altboot" +#EXTRA_STUFF_append_akita += "altboot" +#EXTRA_STUFF_append_poodle += "altboot" +#EXTRA_STUFF_append_tosa += "altboot" +EXTRA_STUFF_append_spitz += "altboot" # do some task-base stuff here @@ -291,4 +333,5 @@ DISTRO_EXTRA_RDEPENDS += "\ DISTRO_EXTRA_RRECOMMENDS += " \ kernel-module-vfat \ kernel-module-ext2 \ + kernel-module-af-packet \ " diff --git a/conf/distro/hentges-2.0.conf b/conf/distro/hentges-2.0.conf new file mode 100644 index 0000000000..5f23949d2d --- /dev/null +++ b/conf/distro/hentges-2.0.conf @@ -0,0 +1,42 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: hentges-2.0.conf +# Date: 20070521 (YMD) + +DESCRIPTION = "Distribution configuration for the Hentges ROM based on Angstrom" +MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" +HOMEPAGE = "http://www.hentges.net" +LICENSE = "MIT" + +###################################################################################### + +require conf/distro/angstrom-2007.1.conf + +###################################################################################### + +require conf/machine/hentges-2.0_common.conf +require conf/machine/hentges-2.0_${MACHINE}.conf + +###################################################################################### + +DISTRO_VERSION = "1.9+WIP-${DATE}" +DISTRO_REVISION = "1" + +DISTRO = "hentges-2.0" +DISTRO_NAME = "Hentges" + +###################################################################################### + +# Override FEED_URIS here + +###################################################################################### + +HENTGES_PV = "${DISTRO_VERSION}" +HENTGES_PR = "${DISTRO_REVISION}" + +###################################################################################### + diff --git a/conf/distro/include/angstrom-glibc.inc b/conf/distro/include/angstrom-glibc.inc index 9b288e8e0b..fdc814c49c 100644 --- a/conf/distro/include/angstrom-glibc.inc +++ b/conf/distro/include/angstrom-glibc.inc @@ -3,7 +3,7 @@ PREFERRED_PROVIDER_virtual/libiconv ?= "glibc" PREFERRED_PROVIDER_virtual/libintl ?= "glibc" PREFERRED_PROVIDER_virtual/libc ?= "glibc" -TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb']]}" +TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad']]}" #mess with compiler flags to use -Os instead of -O2 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info diff --git a/conf/distro/include/angstrom-uclibc.inc b/conf/distro/include/angstrom-uclibc.inc index febfea2e26..0f20e9c29d 100644 --- a/conf/distro/include/angstrom-uclibc.inc +++ b/conf/distro/include/angstrom-uclibc.inc @@ -7,7 +7,8 @@ PREFERRED_PROVIDER_virtual/libintl ?= "gettext" USE_NLS ?= "no" USE_NLS_glib-2.0 = "yes" -TARGET_OS = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb']]}" +TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad']]}" +TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d) in ['bfin']]}" #mess with compiler flags to use -Os instead of -O2 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc index 6605fff3e8..3d4be081fb 100644 --- a/conf/distro/include/angstrom.inc +++ b/conf/distro/include/angstrom.inc @@ -37,7 +37,7 @@ TARGET_FPU_armeb ?= "soft" TARGET_FPU_ixp4xx ?= "soft" #Name the generated images in a sane way -IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${DISTRO_VERSION}-${MACHINE}" +IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${ANGSTROM_MODE}-${DISTRO_VERSION}-${MACHINE}" DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}" # Angstrom *always* has some form of release config, so error out if someone thinks he knows better diff --git a/conf/distro/include/oplinux.inc b/conf/distro/include/oplinux.inc index 2bf3e616d7..843f8e18ba 100644 --- a/conf/distro/include/oplinux.inc +++ b/conf/distro/include/oplinux.inc @@ -1,9 +1,11 @@ -# +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) # extra checking for needed tools # # set minimal version of BitBake needed -BB_MIN_VERSION = "1.6.3" +BB_MIN_VERSION = "1.6.7" + #OPLinux and OPLinux-uclibc source mirrors INHERIT += "oplinux-mirrors" @@ -14,34 +16,25 @@ INHERIT += "multimachine" INHERIT += "sanity" -# + # Naming schemes -# -PARALLEL_INSTALL_MODULES = "1" INHERIT += "package_ipk debian" +PARALLEL_INSTALL_MODULES = "1" -# -# Packaging and output format - -IMAGE_FSTYPES = "tar jffs2 ext2 cramfs squashfs squashfs-lzma cpio.gz" +# +# Maintainer email +MAINTAINER = "Digital OPSiS Developers Team <oplinux-developers@digital-opsis.com>" +# +# Packaging and output format +IMAGE_FSTYPES = "tar.gz jffs2 ext2.gz cramfs squashfs squashfs-lzma cpio.gz" # Specifies a location to search for pre-generated tarballs when fetching # a cvs:// URI. Outcomment this, if you always want to pull directly from CVS. -#CVS_TARBALL_STASH = "http://www.digital-opsis.com/oplinux/source/current/" +CVS_TARBALL_STASH = "http://www.digital-opsis.com/oplinux/sources/current/" -#INHERIT += "owmnr-mirrors" - -#Uncommend this is if you are using bitbake multithread and you have multiple cpu's or cores you are running on -#BB_NUMBER_THREADS = "5" - -#Uncommend this if you hava icecc installed -#INHERIT += "icecc" -#PARALLEL_MAKE = "-j6" -#ICECC_PATH = "/usr/bin/icecc" -#ICECC_ENV_EXEC = "/home/stelios/icecc-create-env" # # Bootstrap & Init @@ -51,12 +44,54 @@ PREFERRED_PROVIDER_task-bootstrap = "task-base" DISTRO_FEATURES = "nfs smbfs ext2 pcmcia usbgadget usbhost pci" -OPLINUX_URI = "http://www.ifaistos.awmn/oplinux" -OPLINUX-uCLIBC_URI = "http://www.ifaistos.awmn/oplinux-uclibc" +#We need to set this to avoid problems when building for if host=target +TARGET_VENDOR = "-oplinux" + +#URI for base feeds +OPLINUX_URI = "http://www.digital-opsis.com/oplinux" +OPLINUX-uCLIBC_URI = "http://www.digital-opsis.com/oplinux-uclibc" #Dir config IMAGE_ROOTFS = "${TMPDIR}/rootfs/${MACHINE}" +#Set the name of the generated images +IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${MACHINE}-${DATE}-${SVN_REV}" +DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}" + + + + + +# +#feed definitions +#i32 machines +#i486 machines +FEED_ARCH_x86 ="i486" +FEED_ARCH_wrap ="i486" + +#i586 machines +FEED_ARCH_i586-generic = "i586" +FEED_ARCH_epia = "i586" + +#i686 machines +FEED_ARCH_i686-generic = "i686" +FEED_ARCH_guinness = "i686" +FEED_ARCH_progear = "i686" + + +#powerpc machines +#ppc405 +FEED_ARCH_dht-walnut = "ppc405" +FEED_ARCH_magicbox = "ppc405" +FEED_ARCH_xilinx-ml403 = "ppc405" + +#ppc440e +FEED_ARCH_sequoia = "ppc440e" + +#ppc603e +FEED_ARCH_efika = "ppc603e" + + # #Preferred versions of packages we need # @@ -65,4 +100,9 @@ PREFERRED_VERSION_u-boot ?= "1.1.4" # Latest linphone supports yeaphone PREFERRED_VERSION_linphone ?= "1.6.0" +# +#SSH daemon +# +DISTRO_SSH_DAEMON ?= "dropbear" + diff --git a/conf/distro/include/preferred-opie-versions-1.2.3-pre.inc b/conf/distro/include/preferred-opie-versions-1.2.3-pre.inc index 6990c98000..fc3a77502d 100644 --- a/conf/distro/include/preferred-opie-versions-1.2.3-pre.inc +++ b/conf/distro/include/preferred-opie-versions-1.2.3-pre.inc @@ -220,7 +220,7 @@ PREFERRED_VERSION_opie-zsame = "${OPIE_VERSION}" PREFERRED_VERSION_opie-sh-snes = "${OPIE_VERSION}" PREFERRED_VERSION_opie-stumbler = "${OPIE_VERSION}" -PREFERRED_VERSION_konqueror-embedded = "20060404" +PREFERRED_VERSION_konqueror-embedded = "20070212" SRCDATE_opie-aboutapplet = "${OPIE_SRCDATE}" diff --git a/conf/distro/mokoslug.conf b/conf/distro/mokoslug.conf index 7278b62565..2c039dbcce 100644 --- a/conf/distro/mokoslug.conf +++ b/conf/distro/mokoslug.conf @@ -14,7 +14,8 @@ DISTRO_VERSION = "1.0-alpha" DISTRO_REVISION = "1" DISTRO_TYPE = "debug" -MACHINE_TASK_PROVIDER = "task-base sysconf" +MACHINE_TASK_PROVIDER = "task-boot dropbear" +MACHINE_TASK_PROVIDER_append_nslu2 = " sysconf" # Even though the NSLU2 does not have built-in bluetooth, # we assume that a MokoSlug gateway has a bluetooth dongle. diff --git a/conf/distro/oplinux.conf b/conf/distro/oplinux.conf index d3e6c0344d..03e56b0148 100644 --- a/conf/distro/oplinux.conf +++ b/conf/distro/oplinux.conf @@ -1,17 +1,20 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) #----------------------------------------------------------------------------- #@TYPE: Distribution -#@NAME: OPLinux uClibC -#@DESCRIPTION: OPLinux uClibC Embedded Linux Distribution Configuration +#@NAME: OPLinux +#@DESCRIPTION: OPLinux Embedded Linux Distribution Configuration # #@COMMENT: This is a distribution for a number of embedded targets #@COMMENT: currently supported are -#@COMMENT: generic x86 -#@COMMENT: wrap (x86) -#@COMMENT: dht-walnut (ppc405) +#@COMMENT: x86 wrap (i486) +#@COMMENT: i586-generic epia (i586) +#@COMMENT: i686-generic (i686) +#@COMMENT: dht-walnut magicbox (ppc405) +#@COMMENT: sequoia (ppc440) #@COMMENT: efika (ppc603) -#@COMMENT: rb5xx (mips) #@COMMENT: -#@COMMENT: for additional info please check www.digital-opsis.com +#@COMMENT: for additional info please check www.digital-opsis.com/oplinux #----------------------------------------------------------------------------- require conf/distro/include/oplinux.inc @@ -22,7 +25,7 @@ require conf/distro/include/sane-srcdates.inc # Header # DISTRO_NAME = "OPLinux" -DISTRO_VERSION = ".dev-snapshot-${SRCDATE}" +DISTRO_VERSION ?= ".dev-snapshot-${SRCDATE}" #DISTRO_TYPE = "release" DISTRO_TYPE = "debug" @@ -31,23 +34,31 @@ DISTRO_TYPE = "debug" # TARGET_OS = "linux" +PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" +PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross" +PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross" + + PREFERRED_PROVIDER_dbus-glib = "dbus-glib" PREFERRED_PROVIDER_virtual/libsdl ?= "libsdl-x11" PREFERRED_PROVIDER_virtual/libxine ?= "libxine-x11" PREFERRED_PROVIDER_esound ?= "pulseaudio" -PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv" -PREFERRED_PROVIDER_virtual/libintl ?= "libintl" - -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial" -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross" -PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross" +# glibc: +PREFERRED_PROVIDER_virtual/libiconv ?= "glibc" +PREFERRED_PROVIDER_virtual/libintl ?= "glibc" +PREFERRED_PROVIDER_virtual/libc ?= "glibc" -#EABI stuff PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate" -PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc ="glibc-intermediate" +PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc-intermediate" +PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc-intermediate" @@ -81,21 +92,14 @@ PREFERRED_VERSION_binutils-cross-sdk ?= "2.17.50.0.5" PREFERRED_VERSION_linux-libc-headers_i486 ?= "2.6.18" PREFERRED_VERSION_linux-libc-headers_i586 ?= "2.6.18" PREFERRED_VERSION_linux-libc-headers_i686 ?= "2.6.18" - PREFERRED_VERSION_linux-libc-headers_powerpc ?= "2.6.18" PREFERRED_VERSION_linux-libc-headers ?= "2.6.18" -PREFERRED_VERSION_glibc ?= "2.5" -PREFERRED_VERSION_glibc_efika ?= "2.5" - -PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4" -PREFERRED_VERSION_glibc-intermediate ?= "2.5" -PREFERRED_VERSION_glibc-intermediate ?= "2.5" PREFERRED_VERSION_glibc-initial ?= "2.5" - +PREFERRED_VERSION_glibc-intermediate ?= "2.5" +PREFERRED_VERSION_glibc ?= "2.5" PCMCIA_MANAGER = "pcmciautils" - PREFERRED_VERSION_dbus ?= "1.0.2" PREFERRED_VERSION_dbus-glib ?= "0.71" @@ -114,25 +118,6 @@ DISTRO_EXTRA_RDEPENDS += "\ nano pciutils" - - -FEED_ARCH ?= "${TARGET_ARCH}" - -#i486 machines -FEED_ARCH_x86 ="i486" - -#i586 machines -FEED_ARCH_epia = "i586" - -#i686 machines -FEED_ARCH_guinness = "i686" -FEED_ARCH_progear = "i686" - -#powerpc machines -FEED_ARCH_efika = "ppc603e" -FEED_ARCH_dht-walnut = "ppc405" - - FEED_URIS += " \ no-arch##${OPLINUX_URI}/unstable/feed/all \ base##${OPLINUX_URI}/unstable/feed/${FEED_ARCH}/base \ diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf index 980c158181..564a2d0cfb 100644 --- a/conf/distro/slugos.conf +++ b/conf/distro/slugos.conf @@ -14,3 +14,8 @@ ARM_INSTRUCTION_SET = "arm" TARGET_OS = "linux" require conf/distro/include/slugos.inc + +# glibc: +PREFERRED_PROVIDER_virtual/libiconv ?= "glibc" +PREFERRED_PROVIDER_virtual/libintl ?= "glibc" +PREFERRED_PROVIDER_virtual/libc ?= "glibc" diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf index aaf5c690a8..ad75fffe11 100644 --- a/conf/distro/unslung.conf +++ b/conf/distro/unslung.conf @@ -47,6 +47,8 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross" PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc" PREFERRED_PROVIDERS += " virtual/libc:glibc" +PREFERRED_PROVIDER_libc6-unslung = "glibc" + PREFERRED_VERSION_binutils ?= "2.15.94.0.1" PREFERRED_VERSION_binutils-cross ?= "2.15.94.0.1" PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4" diff --git a/conf/documentation.conf b/conf/documentation.conf index b92c14f7f0..44a174a01b 100644 --- a/conf/documentation.conf +++ b/conf/documentation.conf @@ -98,6 +98,9 @@ PCMCIA_MANAGER[doc] = "Specify which package(s) to install to handle PCMCIA slot SYSVINIT_ENABLED_GETTYS[doc] = "Specify which VTs should be running a getty, the default is 1" +# insane bbclass +QA_LOG[doc] = "Enable logging of QA errors to log.qa_package. Default is not to log." + # palmtop build class PALMTOP_USE_MULTITHREADED_QT[doc] = "Set to yes, if you want to build qt apps with CONFIG+=thread" diff --git a/conf/machine/adsp-bf537-stamp.conf b/conf/machine/adsp-bf537-stamp.conf new file mode 100644 index 0000000000..2a8fd640e7 --- /dev/null +++ b/conf/machine/adsp-bf537-stamp.conf @@ -0,0 +1,18 @@ +#@TYPE: Machine +#@Name: Analog Devices blackfin platfrom +#@DESCRIPTION: ADSP-BF537 STAMP Board + + +TARGET_ARCH = "bfin" + +PREFERRED_PROVIDER_virtual/kernel = "linux" +PREFERRED_PROVIDER_xserver = "xserver-kdrive" + +#don't try to access tty1 +USE_VT = "0" + +MACHINE_FEATURES = "kernel26 alsa ext2 usbhost usbgadget screen" + +# used by sysvinit_2 +SERIAL_CONSOLE = "115200" + diff --git a/conf/machine/at32stk1000.conf b/conf/machine/at32stk1000.conf new file mode 100644 index 0000000000..faa4785fb4 --- /dev/null +++ b/conf/machine/at32stk1000.conf @@ -0,0 +1,21 @@ +#@TYPE: Machine +#@Name: Atmel STK1000 AVR32AP7000 Development Platform +#@DESCRIPTION: Atmel STK1000 AVR32AP7000 Development Platform + + +TARGET_ARCH = "avr32" + +PREFERRED_PROVIDER_virtual/kernel = "linux" +PREFERRED_PROVIDER_xserver = "xserver-kdrive" + +#don't try to access tty1 +USE_VT = "0" + +MACHINE_FEATURES = "kernel26 alsa ext2 usbhost usbgadget screen" + +# used by sysvinit_2 +SERIAL_CONSOLE = "115200" + +# used by some images +ROOT_FLASH_SIZE = "8" +EXTRA_IMAGECMD_jffs2 = " --big-endian --pagesize=4096 --eraseblock=65536" diff --git a/conf/machine/atngw100.conf b/conf/machine/atngw100.conf new file mode 100644 index 0000000000..b725831321 --- /dev/null +++ b/conf/machine/atngw100.conf @@ -0,0 +1,20 @@ +#@TYPE: Machine +#@Name: Atmel ATNGW100 Network Gateway Kit +#@DESCRIPTION: Atmel ATNGW100 Network Gateway Kit + +TARGET_ARCH = "avr32" + +PREFERRED_PROVIDER_xserver = "xserver-kdrive" + +#don't try to access tty1 +USE_VT = "0" + +MACHINE_FEATURES = "kernel26 ext2 usbhost usbgadget" + +# used by sysvinit_2 +SERIAL_CONSOLE = "115200" + +# used by some images +ROOT_FLASH_SIZE = "8" +EXTRA_IMAGECMD_jffs2 = " --big-endian --pagesize=4096 --eraseblock=65536" + diff --git a/conf/machine/db1200.conf b/conf/machine/db1200.conf index 5fafb0cd56..cbde602824 100644 --- a/conf/machine/db1200.conf +++ b/conf/machine/db1200.conf @@ -1,7 +1,6 @@ # Alchemy db1200 TARGET_ARCH = "mipsel" -PACKAGE_ARCHS = "${TARGET_ARCH} ${MACHINE}" PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}depmod:module-init-tools-cross" diff --git a/conf/machine/dht-walnut.conf b/conf/machine/dht-walnut.conf index 268b2a361c..0ca65b79a9 100644 --- a/conf/machine/dht-walnut.conf +++ b/conf/machine/dht-walnut.conf @@ -1,21 +1,26 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) #@TYPE: Machine #@Name: DHT-Walnut Development Platform #@DESCRIPTION: Machine configuration for the DHT-Walnut 405GP development platform TARGET_ARCH = "powerpc" -PACKAGE_EXTRA_ARCHS = "ppc405" +PACKAGE_EXTRA_ARCHS = "all ${MACHINE} ppc ppc405" PREFERRED_PROVIDER_virtual/kernel = "linux-${MACHINE}" MACHINE_FEATURES = "kernel26 ext2" +MACHINE_TASK_PROVIDER = "task-base" TARGET_CPU = "405" -OLDEST_KERNEL = "2.6.12" +OLDEST_KERNEL = "2.6.18" -#tune for the 405 cpu -require conf/machine/include/tune-ppc405.conf +#don't try to access tty1 +USE_VT = "0" +SERIAL_CONSOLE = "115200 ttyS0" -SERIAL_CONSOLE = "115200 ttyS0" +#tune for the 405 cpu +require conf/machine/include/tune-ppc405.conf diff --git a/conf/machine/epia.conf b/conf/machine/epia.conf index 1497e303c4..5a3b5875a3 100644 --- a/conf/machine/epia.conf +++ b/conf/machine/epia.conf @@ -6,9 +6,14 @@ PACKAGE_EXTRA_ARCHS = "i386 i486" PREFERRED_PROVIDER_virtual/kernel = "linux-epia" OLDEST_KERNEL = "2.6.5" +GLIBC_ADDONS = "nptl" +GLIBC_EXTRA_OECONF = "--with-tls" + IMAGE_FSTYPES = "ext2.gz" -MACHINE_FEATURES = "kernel26 screen keyboard pci ushbost acpi ext2" +MACHINE_FEATURES = "kernel26 screen keyboard pci ushbost acpi ext2" +MACHINE_TASK_PROVIDER = "task-base" + require conf/machine/include/tune-c3.conf diff --git a/conf/machine/guinness.conf b/conf/machine/guinness.conf index 11dbadacb8..1996a1603b 100644 --- a/conf/machine/guinness.conf +++ b/conf/machine/guinness.conf @@ -7,6 +7,7 @@ TARGET_ARCH = "i686" PACKAGE_EXTRA_ARCHS = "x86 i386 i486 i586" PREFERRED_PROVIDER_virtual/kernel = "linux-x86" +PREFERRED_PROVIDER_xserver = "xserver-xorg" udevdir = "/dev" diff --git a/conf/machine/gumstix.conf b/conf/machine/gumstix.conf index 36ed04e67b..510de49a3f 100644 --- a/conf/machine/gumstix.conf +++ b/conf/machine/gumstix.conf @@ -1,24 +1,25 @@ +#@TYPE: Machine +#@Name: Gumstix pxa2xx boards +#@DESCRIPTION: Gumstix pxa2xx boards + TARGET_ARCH = "arm" -TARGET_VENDOR = "-oe" + PREFERRED_PROVIDER_virtual/kernel = "linux-gumstix" -OLDEST_KERNEL = "2.6.15" -MODUTILS = "26" -require conf/machine/include/tune-xscale.conf -TARGET_CC_ARCH = "-Os -pipe -Os -march=armv5te -mtune=xscale -Wa,-mcpu=xscale" +OLDEST_KERNEL = "2.6.15" -PACKAGE_ARCH = "arm" +#Assume people have some gumstix extension boards +MACHINE_FEATURES = "kernel26 alsa ext2 usbhost usbgadget bluetooth" EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 --squash" -HOTPLUG = "udev" -udevdir = "/dev" - GUMSTIX_400MHZ = "y" +# used by sysvinit_2 SERIAL_CONSOLE = "115200 ttyS0 vt100" + +#don't try to access tty1 USE_VT = "0" -BOOTSTRAP_EXTRA_RDEPENDS = "kernel-module-mmc kernel-module-usb kernel-module-fat kernel-module-bluetooth kernel-module-jfs udev lrzsz" -PREFERRED_VERSION_task-bootstrap = "1.0unionroot" +require conf/machine/include/tune-xscale.conf diff --git a/conf/machine/hentges-2.0_common.conf b/conf/machine/hentges-2.0_common.conf new file mode 100644 index 0000000000..e7e1d5b2b7 --- /dev/null +++ b/conf/machine/hentges-2.0_common.conf @@ -0,0 +1,40 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: hentges-2.0_common.conf +# Date: 20070521 (YMD) + +DESCRIPTION = "Hentges common dependency description" +MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" +LICENSE = "MIT" + +###################################################################################### + +HENTGES_BASE_DEPENDS = "task-base-wifi" +HENTGES_BASE_RDEPENDS = "task-base-wifi" + +###################################################################################### + +# Handled via task-base: + +DISTRO_SSH_DAEMON ?= "dropbear" + +###################################################################################### + +# Handled via task-base: + +DISTRO_EXTRA_RDEPENDS = "\ + update-modules \ + ${@base_contains("MACHINE_FEATURES", "screen", "psplash", "",d)} \ + angstrom-version \ + ipkg ipkg-collateral \ + util-linux-mount util-linux-umount \ + ${EXTRA_STUFF} \ + ${DEBUG_APPS} \ + " + +HENTGES_X11_DEPENDS += "angstrom-x11-base-depends \ + angstrom-gpe-task-base" diff --git a/conf/machine/hentges-2.0_spitz.conf b/conf/machine/hentges-2.0_spitz.conf new file mode 100644 index 0000000000..cffa01de92 --- /dev/null +++ b/conf/machine/hentges-2.0_spitz.conf @@ -0,0 +1,39 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: hentges-2.0_spitz.conf +# Date: 20070521 (YMD) + +DESCRIPTION = "Hentges dependency description for Spitz aka SL-C3x00" +MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" +HOMEPAGE = "<homepage>" +LICENSE = "MIT" + +###################################################################################### + +DISTRO_SSH_DAEMON_spitz = "openssh" + +XSERVER = "xserver-kdrive-fbdev" + +###################################################################################### + +HENTGES_BASE_RDEPENDS += "tar bash" + +###################################################################################### + +# In the future I plan to replace the angstrom-*task* stuff with custom +# hentges tasks, replacing the angstrom defaults where needed + +HENTGES_X11_RDEPENDS += "${XSERVER} \ + angstrom-gpe-task-pim \ + angstrom-ohand-task-pim \ + angstrom-gpe-task-settings \ + angstrom-gpe-task-apps \ + angstrom-gpe-task-games \ + angstrom-task-office \ + angstrom-task-printing \ + angstrom-task-sectest \ + firefox gftp" diff --git a/conf/machine/i586-generic.conf b/conf/machine/i586-generic.conf new file mode 100644 index 0000000000..823999a208 --- /dev/null +++ b/conf/machine/i586-generic.conf @@ -0,0 +1,22 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) +#@TYPE: Machine +#@NAME: i586-generic +#@DESCRIPTION: Machine configuration for a generic i586 machine + + +TARGET_ARCH = "i586" +PACKAGE_EXTRA_ARCHS = "x86 i386 i486" + +PREFERRED_PROVIDER_virtual/kernel = "linux-x86" +OLDEST_KERNEL = "2.6.18" + +GLIBC_ADDONS = "nptl" +GLIBC_EXTRA_OECONF = "--with-tls" + +IMAGE_FSTYPES = "ext2.gz" + +MACHINE_FEATURES = "kernel26 screen keyboard pci ushbost acpi ext2" +MACHINE_TASK_PROVIDER = "task-base" + + diff --git a/conf/machine/i686-generic.conf b/conf/machine/i686-generic.conf new file mode 100644 index 0000000000..1f91f89281 --- /dev/null +++ b/conf/machine/i686-generic.conf @@ -0,0 +1,21 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) +#@TYPE: Machine +#@NAME: i686-generic +#@DESCRIPTION: Machine configuration for a generic i686 machine + + +TARGET_ARCH = "i686" +PACKAGE_EXTRA_ARCHS = "x86 i386 i486 i586" + +PREFERRED_PROVIDER_virtual/kernel = "linux-x86" +OLDEST_KERNEL = "2.6.20" + +GLIBC_ADDONS = "nptl" +GLIBC_EXTRA_OECONF = "--with-tls" + +IMAGE_FSTYPES = "ext2.gz" + +MACHINE_FEATURES = "kernel26 screen keyboard pci ushbost acpi ext2" +MACHINE_TASK_PROVIDER = "task-base" + diff --git a/conf/machine/include/tune-ppc440e.conf b/conf/machine/include/tune-ppc440e.conf new file mode 100644 index 0000000000..0cfa50c69e --- /dev/null +++ b/conf/machine/include/tune-ppc440e.conf @@ -0,0 +1,2 @@ +TARGET_CC_ARCH = "-mcpu=440fp" +PACKAGE_ARCH = "ppc440" diff --git a/conf/machine/kb9202.conf b/conf/machine/kb9202.conf new file mode 100644 index 0000000000..0e9c0d3b92 --- /dev/null +++ b/conf/machine/kb9202.conf @@ -0,0 +1,20 @@ +#@TYPE: Machine +#@Name: KwikByte KB9202 devboard +#@DESCRIPTION: Machine configuration for KwikByte KB9202 devboard + +TARGET_ARCH = "arm" + +PREFERRED_PROVIDER_virtual/kernel = "linux" +PACKAGE_EXTRA_ARCHS = "armv4 armv4t" + +require conf/machine/include/tune-arm920t.conf + +# used by sysvinit_2 +# Needs at91 serial port +#SERIAL_CONSOLE = "57600 ttyAM0" + +# used by some images +# 16MB nor + 32MB nand +ROOT_FLASH_SIZE = "12" + +MACHINE_FEATURES = "kernel26 usbhost usbgadget irda" diff --git a/conf/machine/magicbox.conf b/conf/machine/magicbox.conf index 19dae402d9..756e064c6a 100644 --- a/conf/machine/magicbox.conf +++ b/conf/machine/magicbox.conf @@ -1,3 +1,5 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) #@TYPE: Machine #@Name: Magicbox router board #@DESCRIPTION: Machine configuration for Magicbox router board http://wwww.magicbox.pl diff --git a/conf/machine/sequoia.conf b/conf/machine/sequoia.conf index b2d0f3593e..a6f31ab84a 100644 --- a/conf/machine/sequoia.conf +++ b/conf/machine/sequoia.conf @@ -1,10 +1,12 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) #@TYPE: Machine #@Name: AMCC Sequoia Development Platform #@DESCRIPTION: Machine configuration for the AMCC Sequoia development platform http://www.amcc.com/Embedded/Downloads/440EPx/ TARGET_ARCH = "powerpc" -PACKAGE_EXTRA_ARCHS = "all ${MACHINE} ppc ppc440" +PACKAGE_EXTRA_ARCHS = "all ${MACHINE} ppc ppc440e" PREFERRED_PROVIDER_virtual/kernel = "linux-${MACHINE}" @@ -17,10 +19,10 @@ USE_VT = "0" SERIAL_CONSOLE = "115200 ttyS0" -PREFERRED_VERSION_u-boot = "1.1.2" +PREFERRED_VERSION_u-boot = "git" EXTRA_IMAGECMD = "--big-endian" ERASEBLOCK_SIZE = "0x10000" IMAGE_FSTYPES = "jffs2" #tune for the AMCC440 cpu -require conf/machine/include/tune-ppc440.conf +require conf/machine/include/tune-ppc440e.conf diff --git a/conf/sanity.conf b/conf/sanity.conf index 58313f27ca..3a1dec9059 100644 --- a/conf/sanity.conf +++ b/conf/sanity.conf @@ -3,6 +3,6 @@ # See sanity.bbclass # # Expert users can confirm their sanity with "touch conf/sanity.conf" -BB_MIN_VERSION = "1.6.2" +BB_MIN_VERSION = "1.6.8" INHERIT += "sanity" diff --git a/packages/clamav/clamav-0.88.7/.mtn2git_empty b/contrib/mtn2cl/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/clamav/clamav-0.88.7/.mtn2git_empty +++ b/contrib/mtn2cl/.mtn2git_empty diff --git a/contrib/mtn2cl/mtn2cl.sh b/contrib/mtn2cl/mtn2cl.sh new file mode 100755 index 0000000000..631303b55b --- /dev/null +++ b/contrib/mtn2cl/mtn2cl.sh @@ -0,0 +1,30 @@ +#/bin/sh + +# This script takes the last 1000 revs and writes a ChangeLog + +export REV_NOW=`mtn automate heads |head -n1` + +for i in `mtn log --brief --no-graph --no-merges --from l:"1 week ago" --to ${REV_NOW}| awk '{print $2 ":" $1}'` ; do \ + export REV=`echo $i | awk -F: '{print $2}'` + export AUTHOR=`echo $i | awk -F: '{print $1}'` + export CL=`mtn ls certs ${REV} | grep -A 1 changelog | grep -v changelog | gawk -F'Value : ' '{ print $2 }'` + if test -n "${CL}" ; then + echo " ${CL}" >> ${AUTHOR} + fi +done + +for i in *@* ; do \ + echo $i: >> ChangeLog + cat $i >> ChangeLog + echo >> ChangeLog +done + +echo "Bug fixed:" >> ChangeLog + +wget 'http://bugs.openembedded.org/buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&bugidtype=include&chfieldfrom=7d&chfieldto=Now&chfieldvalue=&email1=&email2=&emailassigned_to1=1&emailassigned_to2=1&emailcc2=1&emailqa_contact2=1&emailreporter2=1&emailtype1=substring&emailtype2=substring&field-1-0-0=bug_status&field0-0-0=noop&known_name=1WFixed&long_desc=&long_desc_type=substring&query_format=advanced&remaction=&short_desc=&short_desc_type=allwordssubstr&type-1-0-0=anyexact&type0-0-0=noop&value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED&value0-0-0=&ctype=csv' -O bugs.csv >& /dev/null + +cat bugs.csv | awk -F, '{print $1 " " $7 "\t " $8}' | sed s:\"::g >> ChangeLog + + +rm `ls | grep -v ChangeLog | grep -v mtn2cl` + diff --git a/packages/abiword/abiword.inc b/packages/abiword/abiword.inc index 8569845394..58f712aca9 100644 --- a/packages/abiword/abiword.inc +++ b/packages/abiword/abiword.inc @@ -3,8 +3,9 @@ HOMEPAGE = "http://www.abiword.org"" SECTION = "x11/office" LICENSE = "GPLv2" DEPENDS = "perl-native libgsf libgnomeprint libgnomeprintui libglade libfribidi enchant jpeg libpng libxml2" -RDEPENDS = "enchant glibc-gconv-ibm850 glibc-gconv-cp1252 \ - glibc-gconv-iso8859-15 glibc-gconv-iso8859-1" +RDEPENDS = "enchant " +RDEPENDS_linux += "glibc-gconv-ibm850 glibc-gconv-cp1252 \ + glibc-gconv-iso8859-15 glibc-gconv-iso8859-1" PR = "r2" SRC_URI = "http://www.abiword.org/downloads/abiword/${PV}/source/abiword-${PV}.tar.gz" diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb index 1eacf4269f..e4d23285f3 100644 --- a/packages/alsa/alsa-state.bb +++ b/packages/alsa/alsa-state.bb @@ -8,31 +8,19 @@ # Date: 20070308 (YMD) DESCRIPTION = "Default ALSA configuration" -MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" -HOMEPAGE = "<homepage>" LICENSE = "GPL" -###################################################################################### - PV = "0.0.3" PR = "r0" -###################################################################################### - SRC_URI = "file://asound.state \ file://alsa-state" -FILES_${PN} = "/etc/*" - -###################################################################################### - inherit update-rc.d INITSCRIPT_NAME = "alsa-state" INITSCRIPT_PARAMS = "defaults 10" -###################################################################################### - do_install() { install -d ${D}${sysconfdir}/init.d @@ -40,6 +28,7 @@ do_install() { install -m 0755 ${WORKDIR}/alsa-state ${D}${sysconfdir}/init.d } +FILES_${PN} = "${sysconfdir}/*" pkg_postinst_${PN}() { if test -x /usr/sbin/alsactl diff --git a/packages/alsa/alsa-utils_1.0.13.bb b/packages/alsa/alsa-utils_1.0.13.bb index 93054a3ab6..e1ae7aa399 100644 --- a/packages/alsa/alsa-utils_1.0.13.bb +++ b/packages/alsa/alsa-utils_1.0.13.bb @@ -3,10 +3,17 @@ HOMEPAGE = "http://www.alsa-project.org" SECTION = "console/utils" LICENSE = "GPL" DEPENDS = "alsa-lib ncurses" -PR = "r0" +PR = "r1" SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2" +# lazy hack. needs proper fixing in gettext.m4, see +# http://bugs.openembedded.org/show_bug.cgi?id=2348 +# please close bug and remove this comment when properly fixed +# +EXTRA_OECONF_linux-uclibc = "--disable-nls" +EXTRA_OECONF_linux-uclibcgnueabi = "--disable-nls" + inherit autotools # This are all packages that we need to make. Also, the now empty alsa-utils diff --git a/packages/altboot/README.txt b/packages/altboot/README.txt index ed71b03957..bba16027ff 100644 --- a/packages/altboot/README.txt +++ b/packages/altboot/README.txt @@ -1,5 +1,4 @@ -altboot_1.0.5.bb - Last known-working version for clamshell - Zauruses running kernel 2.4 altboot_1.0.8.bb - Last known-working version for all Zauruses altboot_1.1.1+wip-20061123.bb - Last known-working version for neo1973 altboot_svn.bb - Altboot developer snapshot - avoid ;) +altboot_1.0.8+1.0.9_pre1 - Development version with new menu diff --git a/packages/altboot/altboot.inc b/packages/altboot/altboot.inc new file mode 100644 index 0000000000..9e0b3e3df9 --- /dev/null +++ b/packages/altboot/altboot.inc @@ -0,0 +1,19 @@ +DESCRIPTION = "The altboot bootmanager" +HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" +LICENSE = "GPL" +RDEPENDS_${PN} = "${PN}-conf" +RDEPENDS_${PN}-conf = "${PN}" +RRECOMMENDS_${PN} = "e2fsprogs-e2fsck dosfstools kexec-tools" +RRECOMMENDS_${PN}_spitz += " kernel-module-jffs2" + +S = "${WORKDIR}/trunk/" + +PACKAGE_ARCH_${PN} = "${MACHINE}" +PACKAGE_ARCH_${PN}-doc = "all" +PACKAGE_ARCH_${PN}-conf = "${MACHINE}" +PACKAGES = "${PN}-conf ${PN}-doc ${PN}" + +FILES_${PN}-conf = "/etc/altboot*cfg" + +MACHINE_DIR = "${MACHINE}" +MACHINE_DIR_nslu2be = "nslu2le" diff --git a/packages/altboot/altboot_1.0.5.bb b/packages/altboot/altboot_1.0.5.bb deleted file mode 100644 index 094a6de3ff..0000000000 --- a/packages/altboot/altboot_1.0.5.bb +++ /dev/null @@ -1,154 +0,0 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 -# License: MIT (see COPYING.MIT) -# -# Filename: altboot_1.0.5-rc2.bb -# Date: 21-Feb-06 - -DESCRIPTION = "The altboot bootmanager" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "GPL" - -###################################################################################### - -PR = "r1" - -###################################################################################### - -PACKAGE_ARCH = "${MACHINE}" - -TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-')}" - -SRC_URI = "svn://hentges.net/public/altboot/tags/;module=${TAG};proto=svn" - -S = "${WORKDIR}/${TAG}/" - -###################################################################################### - -do_install() { - install -d ${D}/sbin - install -d ${D}/etc/altboot-menu - install -d ${D}/etc/altboot-menu/Advanced - install -d ${D}/etc/altboot.rc - install -d ${D}/usr/share/doc/altboot - - if test -d ${S}/${MACHINE} - then - install -m 0644 ${S}/${MACHINE}/altboot*.cfg ${D}/etc - else - install -m 0644 ${S}/altboot*.cfg ${D}/etc - fi - - install -m 0644 ${S}/altboot.func ${D}/etc - install -m 0755 ${S}/init.altboot ${D}/sbin - - if test -d ${S}/${MACHINE}/altboot-menu/ - then - install -m 0755 ${S}/${MACHINE}/altboot-menu/*-* ${D}/etc/altboot-menu - else - install -m 0755 ${S}/altboot-menu/*-* ${D}/etc/altboot-menu - fi - - if test -d ${S}/${MACHINE}/altboot-menu/Advanced/ - then - install -m 0755 ${S}/${MACHINE}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced - else - install -m 0755 ${S}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced - fi - - install -m 0755 ${S}/altboot.rc/*.sh ${D}/etc/altboot.rc - install -m 0644 ${S}/altboot.rc/*.txt ${D}/etc/altboot.rc -} - -###################################################################################### - -do_configure() { - cat ${S}/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}\"/" > ${S}/init.altboot_ - mv ${S}/init.altboot_ ${S}/init.altboot -} - -###################################################################################### - -pkg_postinst() { - update-alternatives --install /sbin/init init /sbin/init.altboot 55 -} - -pkg_postinst_spitz() { - # Note: Spitz support is a royal pain in the ass. - # Since Spitz pivot_roots by default, there is no real way - # a user can install an altboot.ipk into the flash FS. - # So we need to do that manually (*SIGH*) - - # the 2.6 kernel for spitz boots from HDD, no need to copy to flash - if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then - update-alternatives --install /sbin/init init /sbin/init.altboot 55 - # no need to copy to flash if we're installing to flash already - elif mount | grep ' / ' | grep -q mtdblock; then - update-alternatives --install /sbin/init init /sbin/init.altboot 55 - else - # /l/m only exists on the HDD on spitz - if test -d /lib/modules - then - if [ -e /media/realroot/sbin/init ]; then - ROOT_MOUNT_POINT="/media/realroot" - elif [ -e /media/ROM/sbin/init ]; then - ROOT_MOUNT_POINT="/media/ROM" - fi - if [ ! "$ROOT_MOUNT_POINT" = "" ]; then - ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` - if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then - mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT - cp -R /etc/altboot* $ROOT_MOUNT_POINT/etc - cp /sbin/init.altboot $ROOT_MOUNT_POINT/sbin - if [ -f $ROOT_MOUNT_POINT/sbin/init ]; then - mv $ROOT_MOUNT_POINT/sbin/init $ROOT_MOUNT_POINT/sbin/init.orig - fi - ln -s /sbin/init.altboot $ROOT_MOUNT_POINT/sbin/init - fi - fi - fi - fi -} - -###################################################################################### - -pkg_postrm() { - update-alternatives --remove init /sbin/init.altboot -} - -pkg_postrm_spitz() { - # the 2.6 kernel for spitz boots from HDD, no need to remove from flash - if cat /proc/version | awk '{print $3}' | grep -q '^2.6'; then - update-alternatives --remove init /sbin/init.altboot - # no need to copy to flash if we're removing from flash already - elif mount | grep ' / ' | grep -q mtdblock; then - update-alternatives --remove init /sbin/init.altboot - else - if test -d /lib/modules - then - if [ -e /media/realroot/sbin/init ]; then - ROOT_MOUNT_POINT="/media/realroot" - elif [ -e /media/ROM/sbin/init ]; then - ROOT_MOUNT_POINT="/media/ROM" - fi - if [ ! "$ROOT_MOUNT_POINT" = "" ]; then - ROOT_MOUNT_DEVICE=`cat /proc/mounts | grep $ROOT_MOUNT_POINT | grep jffs2 | cut -d " " -f 1` - if [ ! "$ROOT_MOUNT_DEVICE" = "" ]; then - mount -oremount,rw $ROOT_MOUNT_DEVICE $ROOT_MOUNT_POINT - if [ -f $ROOT_MOUNT_POINT/sbin/init.orig ]; then - rm $ROOT_MOUNT_POINT/sbin/init - rm $ROOT_MOUNT_POINT/sbin/init.altboot - mv $ROOT_MOUNT_POINT/sbin/init.orig $ROOT_MOUNT_POINT/sbin/init - else - echo "$ROOT_MOUNT_POINT/sbin/init.orig not found, not uninstalling altboot!" - fi - fi - fi - fi - fi -} - - - - diff --git a/packages/altboot/altboot_1.0.8+1.0.9_pre1.bb b/packages/altboot/altboot_1.0.8+1.0.9_pre1.bb new file mode 100644 index 0000000000..4611d345e2 --- /dev/null +++ b/packages/altboot/altboot_1.0.8+1.0.9_pre1.bb @@ -0,0 +1,76 @@ +require altboot.inc + +DEFAULT_PREFERENCE = "-1" + +## Laibsch: The following DEPENDS lines seem broken in light of the fact that +## they have circular dependencies and depend on stuff that is recommended +## elsewhere. Let's activate them only after further discussion +#RDEPENDS_${PN} = "${PN}-conf kexec-tools ncurses" +#RDEPENDS_${PN}_append_poodle = " kexec-tools" +#RDEPENDS_${PN}-conf = "${PN}" + +PR = "r0" + +SVN_REV="65" +#TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-')}" +TAG = '1.0.x' +SRC_URI = "svn://hentges.net/public/altboot/branches/;module=${TAG};rev=${SVN_REV};proto=svn" + +LDFLAGS += "-lncurses -lmenu" + +S = "${WORKDIR}/${TAG}/" + +do_configure() { + cat ${S}/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}\"/" > ${S}/init.altboot_ + mv ${S}/init.altboot_ ${S}/init.altboot +} + +do_compile() { + ${CC} ${CFLAGS} ${LDFLAGS} ${S}curses_menu/altboot_menu.c -o altboot_menu +} + +do_install() { + install -d ${D}/sbin + install -d ${D}/etc/altboot-menu + install -d ${D}/etc/altboot-menu/Advanced + install -d ${D}/etc/altboot.rc + install -d ${D}/usr/share/doc/altboot + install -d ${D}/usr/share/sounds + + if test -d ${S}/${MACHINE} + then + install -m 0644 ${S}/${MACHINE}/altboot*.cfg ${D}/etc + else + install -m 0644 ${S}/altboot*.cfg ${D}/etc + fi + + install -m 0644 ${S}/beep.raw ${D}/usr/share/sounds + install -m 0644 ${S}/altboot.func ${D}/etc + install -m 0755 ${S}/init.altboot ${D}/sbin + install -m 0755 ${S}/altboot_menu ${D}/sbin + + install -m 0755 ${S}/altboot-menu/*-* ${D}/etc/altboot-menu + + install -m 0755 ${S}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced + + install -m 0755 ${S}/altboot.rc/*.sh ${D}/etc/altboot.rc + install -m 0644 ${S}/altboot.rc/*.txt ${D}/etc/altboot.rc +} + +pkg_postinst_${PN}() { + update-alternatives --install /sbin/init init /sbin/init.altboot 55 +} + +pkg_postrm_${PN}() { + update-alternatives --remove init /sbin/init.altboot +} + +do_rm_work() { +} + +PACKAGE_ARCH_${PN} = "all" +PACKAGE_ARCH_${PN}-doc = "all" +PACKAGE_ARCH_${PN}-conf = "${MACHINE}" +PACKAGES = "${PN}-conf ${PN}-doc ${PN}" + +FILES_${PN}-conf = "/etc/altboot*.cfg" diff --git a/packages/altboot/altboot_1.0.8.bb b/packages/altboot/altboot_1.0.8.bb index 16dace6a22..96758871f9 100644 --- a/packages/altboot/altboot_1.0.8.bb +++ b/packages/altboot/altboot_1.0.8.bb @@ -1,49 +1,11 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 -# License: MIT (see COPYING.MIT) -# -# Filename: altboot_1.0.5-rc2.bb -# Date: 21-Feb-06 - -DESCRIPTION = "The altboot bootmanager" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "GPL" - -###################################################################################### - -RRECOMMENDS_${PN} = "e2fsprogs-e2fsck dosfstools" -RRECOMMENDS_${PN}_append_akita = " kexec-tools" -RRECOMMENDS_${PN}_append_spitz = " kexec-tools" -RRECOMMENDS_${PN}_append_c7x0 = " kexec-tools" - -RDEPENDS_${PN} = "${PN}-conf" -RDEPENDS_${PN}-conf = "${PN}" - -###################################################################################### +require altboot.inc PR = "r2" -###################################################################################### - -PACKAGES = "${PN}-conf ${PN}-doc ${PN}" - -PACKAGE_ARCH_${PN} = "all" -PACKAGE_ARCH_${PN}-doc = "all" -PACKAGE_ARCH_${PN}-conf = "${MACHINE}" - TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-')}" - SRC_URI = "svn://hentges.net/public/altboot/tags/;module=${TAG};proto=svn" - S = "${WORKDIR}/${TAG}/" -###################################################################################### - -FILES_${PN}-conf = "/etc/altboot*.cfg" - -###################################################################################### - do_install() { install -d ${D}/sbin install -d ${D}/etc/altboot-menu @@ -71,22 +33,17 @@ do_install() { install -m 0644 ${S}/altboot.rc/*.txt ${D}/etc/altboot.rc } -###################################################################################### - do_configure() { cat ${S}/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}\"/" > ${S}/init.altboot_ mv ${S}/init.altboot_ ${S}/init.altboot } -###################################################################################### - pkg_postinst_${PN}() { update-alternatives --install /sbin/init init /sbin/init.altboot 55 } -###################################################################################### - pkg_postrm_${PN}() { update-alternatives --remove init /sbin/init.altboot } +PACKAGE_ARCH_${PN} = "all" diff --git a/packages/altboot/altboot_1.1.1+wip-20061123.bb b/packages/altboot/altboot_1.1.1+wip-20061123.bb deleted file mode 100644 index 1745273209..0000000000 --- a/packages/altboot/altboot_1.1.1+wip-20061123.bb +++ /dev/null @@ -1,99 +0,0 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 -# License: MIT (see COPYING.MIT) -# -# Filename: altboot_1.0.5-rc2.bb -# Date: 21-Feb-06 - -DESCRIPTION = "The altboot bootmanager" -MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "GPL" - -###################################################################################### - -RRECOMMENDS_${PN} = "e2fsprogs-e2fsck dosfstools" -RRECOMMENDS_${PN}_append_akita = " kexec-tools" -RRECOMMENDS_${PN}_append_spitz = " kexec-tools" -RRECOMMENDS_${PN}_append_c7x0 = " kexec-tools" - -RDEPENDS_${PN} = "${PN}-conf" -RDEPENDS_${PN}-conf = "${PN}" - -###################################################################################### - -WIP_DATE = "20061123" - -PV = "1.1.1+wip-${WIP_DATE}" -PR = "r1" - -###################################################################################### - -PACKAGES = "${PN}-conf ${PN}-doc ${PN}" - -PACKAGE_ARCH_${PN} = "all" -PACKAGE_ARCH_${PN}-doc = "all" -PACKAGE_ARCH_${PN}-conf = "${MACHINE}" - -TAG = "${@'v' + bb.data.getVar('PV',d,1).replace('.', '-').replace('+', '-')}" - -SRC_URI = "svn://hentges.net/public/altboot/tags/;module=${TAG};rev=2" - -S = "${WORKDIR}/${TAG}/" - -###################################################################################### - -FILES_${PN}-conf = "/etc/altboot*cfg" - -###################################################################################### - -do_install() { - install -d ${D}/sbin - install -d ${D}/etc/altboot-menu - install -d ${D}/etc/altboot-menu/Advanced - install -d ${D}/etc/altboot.rc - install -d ${D}/usr/share/doc/altboot - install -d ${D}/usr/share/sounds - install -d ${D}/etc/skel/altboot - - if test -d ${S}/${MACHINE} - then - install -m 0644 ${S}/${MACHINE}/altboot*.cfg ${D}/etc/ - else - install -m 0644 ${S}/altboot*.cfg ${D}/etc/ - fi - - install -m 0644 ${S}/beep.raw ${D}/usr/share/sounds - install -m 0644 ${S}/altboot.func ${D}/etc - install -m 0644 ${S}/altbootctl.conf ${D}/etc - install -m 0755 ${S}/init.altboot ${D}/sbin - install -m 0755 ${S}/altbootctl ${D}/sbin - - install -m 0755 ${S}/altboot-menu/*-* ${D}/etc/altboot-menu - - install -m 0755 ${S}/altboot-menu/Advanced/*-* ${D}/etc/altboot-menu/Advanced - - install -m 0755 ${S}/altboot.rc/*.sh ${D}/etc/altboot.rc - install -m 0644 ${S}/altboot.rc/*.txt ${D}/etc/altboot.rc -} - -###################################################################################### - -do_configure() { - cat ${S}/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}-${PR}\"/" > ${S}/init.altboot_ - mv ${S}/init.altboot_ ${S}/init.altboot -} - -###################################################################################### - -pkg_postinst_${PN}() { - update-alternatives --install /sbin/init init /sbin/init.altboot 55 -} - -###################################################################################### - -pkg_postrm_${PN}() { - update-alternatives --remove init /sbin/init.altboot -} - diff --git a/packages/altboot/altboot_1.1.1+wip-SVNR48.bb b/packages/altboot/altboot_1.1.1+wip-SVNR59.bb index 2e1fd38acc..4af0a7c630 100644 --- a/packages/altboot/altboot_1.1.1+wip-SVNR48.bb +++ b/packages/altboot/altboot_1.1.1+wip-SVNR59.bb @@ -1,52 +1,10 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 -# License: MIT (see COPYING.MIT) -# -# Filename: altboot_1.0.5-rc2.bb -# Date: 21-Feb-06 +require altboot.inc -DESCRIPTION = "The altboot bootmanager" -MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "GPL" - -###################################################################################### - -RRECOMMENDS_${PN} = "e2fsprogs-e2fsck dosfstools" -RRECOMMENDS_${PN}_append_akita = " kexec-tools" -RRECOMMENDS_${PN}_append_spitz = " kexec-tools kernel-module-jffs2" -RRECOMMENDS_${PN}_append_c7x0 = " kexec-tools" - -RDEPENDS_${PN} = "${PN}-conf" -RDEPENDS_${PN}-conf = "${PN}" - -###################################################################################### - -SVN_REV = "48" -PR = "r1" - -###################################################################################### - -PACKAGES = "${PN}-conf ${PN}-doc ${PN}" - -PACKAGE_ARCH_${PN} = "${MACHINE}" -PACKAGE_ARCH_${PN}-doc = "all" -PACKAGE_ARCH_${PN}-conf = "${MACHINE}" +PR = "r9" +SVN_REV = "59" SRC_URI = "svn://hentges.net/public/altboot;module=trunk;rev=${SVN_REV}" -S = "${WORKDIR}/trunk/" - -###################################################################################### - -FILES_${PN}-conf = "/etc/altboot*cfg" - -###################################################################################### - -MACHINE_DIR = "${MACHINE}" -MACHINE_DIR_nslu2be = "nslu2le" - do_install() { install -d ${D}/sbin install -d ${D}/etc/altboot-menu @@ -99,23 +57,17 @@ do_install() { fi } -###################################################################################### - do_configure() { cat ${S}/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}-${PR}\"/" > ${S}/init.altboot_ mv ${S}/init.altboot_ ${S}/init.altboot } -###################################################################################### - pkg_postinst_${PN}() { test -L /linuxrc && update-alternatives --install /linuxrc linuxrc /sbin/init.altboot 55 update-alternatives --install /sbin/init init /sbin/init.altboot 55 } -###################################################################################### - pkg_postrm_${PN}() { test -L /linuxrc && update_alternatives --remove linuxrc /sbin/init.altboot diff --git a/packages/altboot/altboot_svn.bb b/packages/altboot/altboot_svn.bb index 6de92bf420..0d3c869482 100644 --- a/packages/altboot/altboot_svn.bb +++ b/packages/altboot/altboot_svn.bb @@ -1,52 +1,10 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 -# License: MIT (see COPYING.MIT) -# -# Filename: altboot_1.0.5-rc2.bb -# Date: 21-Feb-06 - -DESCRIPTION = "The altboot bootmanager" -MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "GPL" - -###################################################################################### - -RRECOMMENDS_${PN} = "e2fsprogs-e2fsck dosfstools" -RRECOMMENDS_${PN}_append_akita = " kexec-tools" -RRECOMMENDS_${PN}_append_spitz = " kexec-tools kernel-module-jffs2" -RRECOMMENDS_${PN}_append_c7x0 = " kexec-tools" - -RDEPENDS_${PN} = "${PN}-conf" -RDEPENDS_${PN}-conf = "${PN}" - -###################################################################################### +require altboot.inc PV = "1.1.1+wip-${SRCDATE}" PR = "r2" -###################################################################################### - -PACKAGES = "${PN}-conf ${PN}-doc ${PN}" - -PACKAGE_ARCH_${PN} = "${MACHINE}" -PACKAGE_ARCH_${PN}-doc = "all" -PACKAGE_ARCH_${PN}-conf = "${MACHINE}" - SRC_URI = "svn://hentges.net/public/altboot;module=trunk;proto=svn" -S = "${WORKDIR}/trunk/" - -###################################################################################### - -FILES_${PN}-conf = "/etc/altboot*cfg" - -###################################################################################### - -MACHINE_DIR = "${MACHINE}" -MACHINE_DIR_nslu2be = "nslu2le" - do_install() { install -d ${D}/sbin install -d ${D}/etc/altboot-menu @@ -98,23 +56,17 @@ do_install() { fi } -###################################################################################### - do_configure() { cat ${S}/init.altboot | sed "s/^VERSION=.*/VERSION=\"${PV}-${PR}\"/" > ${S}/init.altboot_ mv ${S}/init.altboot_ ${S}/init.altboot } -###################################################################################### - pkg_postinst_${PN}() { test -L /linuxrc && update-alternatives --install /linuxrc linuxrc /sbin/init.altboot 55 update-alternatives --install /sbin/init init /sbin/init.altboot 55 } -###################################################################################### - pkg_postrm_${PN}() { test -L /linuxrc && update_alternatives --remove linuxrc /sbin/init.altboot diff --git a/packages/angstrom/angstrom-console-image.bb b/packages/angstrom/angstrom-console-image.bb index ebded64b24..da467561b1 100644 --- a/packages/angstrom/angstrom-console-image.bb +++ b/packages/angstrom/angstrom-console-image.bb @@ -1,10 +1,10 @@ #Angstrom bootstrap image LICENSE = "MIT" -PR = "r6" +PR = "r7" ANGSTROM_EXTRA_INSTALL ?= "" -DEPENDS = "task-base \ +DEPENDS = "task-base-extended \ ${@base_contains("MACHINE_FEATURES", "screen", "psplash-zap", "",d)} \ " diff --git a/packages/angstrom/angstrom-e-image.bb b/packages/angstrom/angstrom-e-image.bb index 4c9bb83507..6db89788ce 100644 --- a/packages/angstrom/angstrom-e-image.bb +++ b/packages/angstrom/angstrom-e-image.bb @@ -21,7 +21,7 @@ export IMAGE_BASENAME = "e-image" DEPENDS = "task-base" RDEPENDS = "\ ${XSERVER} \ - task-base \ + task-base-extended \ angstrom-e-base-depends \ angstrom-e-depends \ angstrom-gpe-task-settings \ diff --git a/packages/angstrom/angstrom-x11-image.bb b/packages/angstrom/angstrom-x11-image.bb index 4fe6468e0e..2bf37db5dc 100644 --- a/packages/angstrom/angstrom-x11-image.bb +++ b/packages/angstrom/angstrom-x11-image.bb @@ -1,6 +1,6 @@ #Angstrom X11 image LICENSE = "MIT" -PR = "r10" +PR = "r11" PREFERRED_PROVIDER_libgpewidget ?= "libgpewidget" PREFERRED_PROVIDER_tslib ?= "tslib" @@ -18,8 +18,7 @@ export IMAGE_BASENAME = "x11-image" DEPENDS = "task-base" RDEPENDS = "\ ${XSERVER} \ - task-base \ - task-base-wifi \ + task-base-extended \ angstrom-x11-base-depends \ angstrom-gpe-task-base \ angstrom-gpe-task-settings \ diff --git a/packages/anthy/anthy-native_7811.bb b/packages/anthy/anthy-native_7811.bb index 138abe87c8..38305ddf84 100644 --- a/packages/anthy/anthy-native_7811.bb +++ b/packages/anthy/anthy-native_7811.bb @@ -1,4 +1,9 @@ require anthy_${PV}.bb -PACKAGES = "" + DEPENDS = "" +PACKAGES = "" +PR = "r1" + +S = "${WORKDIR}/anthy-${PV}" + inherit native diff --git a/packages/apex/apex_1.2.19.bb b/packages/apex/apex_1.2.19.bb deleted file mode 100644 index 027dfaa194..0000000000 --- a/packages/apex/apex_1.2.19.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "APEX Boot Loader" -SECTION = "" -PRIORITY = "optional" -HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" -LICENSE = "GPL" -PR = "r0" - -SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \ - file://defconfig" - -EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" - -oe_runmake() { - #FIXME: /home/slug/openslug/tmp/cross/bin/armeb-linux- is incorrect, but - # the cross bin directory should be on the PATH - oenote make ${PARALLEL_MAKE} CROSS_COMPILE=/home/slug/openslug/tmp/cross/bin/armeb-linux- "$@" - make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=/home/slug/openslug/tmp/cross/bin/armeb-linux- "$@" || die "oe_runmake failed" -} - -do_configure() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config - oe_runmake oldconfig -} - -do_populate_staging() { - install -d ${STAGING_LOADER_DIR} - install -m 0755 src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex.bin -} diff --git a/packages/apex/apex_1.4.7.bb b/packages/apex/apex_1.4.7.bb deleted file mode 100644 index 713cc833fd..0000000000 --- a/packages/apex/apex_1.4.7.bb +++ /dev/null @@ -1,58 +0,0 @@ -DESCRIPTION = "APEX Boot Loader" -SECTION = "" -PRIORITY = "optional" -HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" -LICENSE = "GPL" -PR = "r1" - -SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \ - file://defconfig" - -EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" - -oe_runmake() { - oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" - make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed" -} - -# FIXME - make this the same as the distro kernel compilation -CMDLINE="console=ttyS0,115200 rootfstype=jffs2 root=/dev/mtdblock4 rw init=/linuxrc noirqdebug" - -# Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head -# of the .config file and remove any settings in defconfig then append -# defconfig to .config -do_configure() { - rm -f ${S}/.config - . ${CONFIG_SITE} - if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then - sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \ - -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \ - -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE}\"|' \ - ${WORKDIR}/defconfig > ${S}/.config - elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then - sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \ - -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \ - -e 's/.*CONFIG_ENV_REGION_KERNEL_SWAP.*/CONFIG_ENV_REGION_KERNEL_SWAP=y/' \ - -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE}\"|' \ - ${WORKDIR}/defconfig > ${S}/.config - else - oefatal do_configure cannot determine endianess - fi - oe_runmake oldconfig -} - -DEPENDS += "devio-native" - -do_populate_staging() { - install -d ${STAGING_LOADER_DIR} - . ${CONFIG_SITE} - if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then - # FIXME - arch-arm should not be hard-coded - cp src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex.bin - elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then - # FIXME - arch-arm should not be hard-coded - devio '<<'src/arch-arm/rom/apex.bin >${STAGING_LOADER_DIR}/apex.bin 'xp $,4' - else - oefatal do_populate_staging cannot determine endianess - fi -} diff --git a/packages/apex/apex_1.4.11.bb b/packages/apex/apex_1.5.6.bb index 713cc833fd..ccf08ca9a0 100644 --- a/packages/apex/apex_1.4.11.bb +++ b/packages/apex/apex_1.5.6.bb @@ -3,11 +3,22 @@ SECTION = "" PRIORITY = "optional" HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" LICENSE = "GPL" -PR = "r1" +# PR = "r1" + +# Note that this recipe only works for the NSLU2 at the moment. +# Patches to make it more generic are welcome. SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \ file://defconfig" +CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}" + +CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2 rw" + +CMDLINE_ROOT_nslu2 = "root=/dev/mtdblock4 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_dsmg600 = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_nas100d = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" + EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" oe_runmake() { @@ -15,9 +26,6 @@ oe_runmake() { make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed" } -# FIXME - make this the same as the distro kernel compilation -CMDLINE="console=ttyS0,115200 rootfstype=jffs2 root=/dev/mtdblock4 rw init=/linuxrc noirqdebug" - # Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head # of the .config file and remove any settings in defconfig then append # defconfig to .config @@ -27,13 +35,15 @@ do_configure() { if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \ -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \ - -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE}\"|' \ + -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2 (big endian)\"/' \ + -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ ${WORKDIR}/defconfig > ${S}/.config elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \ -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \ -e 's/.*CONFIG_ENV_REGION_KERNEL_SWAP.*/CONFIG_ENV_REGION_KERNEL_SWAP=y/' \ - -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE}\"|' \ + -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2 (little endian)\"/' \ + -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \ ${WORKDIR}/defconfig > ${S}/.config else oefatal do_configure cannot determine endianess diff --git a/packages/apex/nslu2/defconfig b/packages/apex/nslu2/defconfig index ccec463e98..cc92ce16dd 100644 --- a/packages/apex/nslu2/defconfig +++ b/packages/apex/nslu2/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: -# Tue Jan 9 22:31:18 2007 +# Fri Jun 1 17:35:34 2007 # CONFIG_ARM=y CONFIG_CPU_ARMV5=y @@ -17,6 +17,7 @@ CONFIG_EXPERIMENTAL=y # # General Setup # +CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2 (bigendian)" CONFIG_CROSS_COMPILE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_CC_OPTIMIZE_FOR_SPEED is not set @@ -70,6 +71,7 @@ CONFIG_DEL_IS_BS=y CONFIG_ANSI_KEYS=y CONFIG_COMMAND_HISTORY=y CONFIG_COMMAND_EDITING=y +# CONFIG_TIME_COMMANDS is not set CONFIG_CMD_ALIAS=y CONFIG_CMD_CHECKSUM=y CONFIG_CMD_COPY=y @@ -85,7 +87,8 @@ CONFIG_CMD_INFO=y # CONFIG_CMD_PAUSE is not set CONFIG_CMD_WAIT=y CONFIG_CMD_XRECEIVE=y -# CONFIG_CMD_MEMLIMIT is not set +CONFIG_CMD_MEMLIMIT=y +CONFIG_CMD_MEMSCAN=y # # Generic Drivers @@ -97,6 +100,10 @@ CONFIG_DRIVER_FIS=y CONFIG_DRIVER_FIS_BLOCKDEVICE="nor:0x7e0000+4k" CONFIG_DRIVER_NOR_CFI=y # CONFIG_DRIVER_NOR_CFI_NO_BUFFERED is not set +# CONFIG_DRIVER_NOR_CFI_USE_CACHE is not set +CONFIG_DRIVER_NOR_CFI_TYPE_INTEL=y +# CONFIG_DRIVER_NOR_CFI_TYPE_SPANSION is not set +# CONFIG_DRIVER_ONENAND is not set # CONFIG_DRIVER_IXP4XX_NPE_ETH is not set CONFIG_USES_NOR_CFI=y CONFIG_USES_PATHNAME_PARSER=y @@ -106,15 +113,16 @@ CONFIG_USES_IXP4XX_NPE_ETH=y # Environment # CONFIG_ENV=y -CONFIG_ENV_MUTABLE=y CONFIG_ENV_LINK=y -CONFIG_ENV_REGION="nor:0x7fc000+15k" +CONFIG_ENV_MUTABLE=y +CONFIG_ENV_REGION="nor:0x7f8000+16k" +# CONFIG_ENV_SAVEATONCE is not set CONFIG_ENV_CHECK_LEN=1024 -CONFIG_VARIATIONS=y -CONFIG_VARIATION_SUFFIX="-alt" +# CONFIG_VARIATIONS is not set # CONFIG_NO_BOOTSTRAP is not set CONFIG_NOR_BOOT=y # CONFIG_NAND_BOOT is not set +# CONFIG_ONENAND_BOOT is not set # CONFIG_COMPANION_EVT1_BOOT is not set # CONFIG_COMPANION_EVT2_BOOT is not set @@ -130,16 +138,16 @@ CONFIG_ENV_STARTUP_KERNEL_COPY=y # Regions # CONFIG_ENV_REGION_KERNEL="fis://kernel" -# CONFIG_ENV_REGION_KERNEL_ALT_P is not set # # Overrides # CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y -CONFIG_ENV_DEFAULT_CMDLINE="console=ttyS0,115200 rootfstype=jffs2 root=/dev/mtdblock4 rw init=/linuxrc noirqdebug" -# CONFIG_ENV_DEFAULT_CMDLINE_ALT_P is not set +CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200" # CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set -# CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set CONFIG_USES_NOR_BOOTFLASH=y +CONFIG_RELOCATE_SIMPLE=y +# CONFIG_BIGENDIAN is not set +# CONFIG_LITTLEENDIAN is not set CONFIG_CLEAR_STACKS=y CONFIG_ALIASES=y diff --git a/packages/apmd/apmd-3.2.2/unlinux.patch b/packages/apmd/apmd-3.2.2/unlinux.patch new file mode 100644 index 0000000000..f7eec6eb03 --- /dev/null +++ b/packages/apmd/apmd-3.2.2/unlinux.patch @@ -0,0 +1,12 @@ +--- apmd-3.2.2.orig/Makefile ++++ apmd-3.2.2/Makefile +@@ -43,8 +43,7 @@ + + CC=gcc + CFLAGS=-O -g +-XTRACFLAGS=-Wall -pipe -I. -I/usr/src/linux/include \ +- -I/usr/src/linux-2.2/include -I /usr/src/linux-2.0/include \ ++XTRACFLAGS=-Wall -pipe -I. \ + -DVERSION=\"$(VERSION)\" \ + -DDEFAULT_PROXY_NAME=\"$(PROXY_DIR)/apmd_proxy\" + LDFLAGS= diff --git a/packages/apmd/apmd_3.2.2.bb b/packages/apmd/apmd_3.2.2.bb index 4313115c91..5402e67632 100644 --- a/packages/apmd/apmd_3.2.2.bb +++ b/packages/apmd/apmd_3.2.2.bb @@ -9,6 +9,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.orig.tar.gz; \ file://debian.patch;patch=1 \ file://workaround.patch;patch=1 \ file://zaurus24.patch;patch=1 \ + file://unlinux.patch;patch=1 \ file://init \ file://default \ file://apmd_proxy \ diff --git a/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb deleted file mode 100644 index 339f663e25..0000000000 --- a/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb +++ /dev/null @@ -1,77 +0,0 @@ -DESCRIPTION = "ARM Kernel Shim" -SECTION = "" -PRIORITY = "optional" -HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" -LICENSE = "GPL" -PR = "r5" - -COMPATIBLE_MACHINE = "(ixp4xx|nslu2)" - -SRC_URI = "ftp://ftp.buici.com/pub/arm/arm-kernel-shim/arm-kernel-shim-${PV}.tar.gz \ - file://passthrough-atags.patch;patch=1 \ - file://cmdline_if_none.patch;patch=1 \ - file://config-nslu2.h \ - file://config-nas100d.h \ - file://config-dsmg600.h \ - file://config-fsg3.h" - -S = ${WORKDIR}/arm-kernel-shim-${PV}/${PV} - -EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" - -oe_runmake() { - mv ${S}/config.h ${S}/config.h.orig - # NSLU2 - if [ ${SITEINFO_ENDIANESS} == "be" ] ; then - sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ - ${WORKDIR}/config-nslu2.h > ${S}/config.h - else - sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ - ${WORKDIR}/config-nslu2.h > ${S}/config.h - fi - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 - make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 || die "oe_runmake failed" - # NAS100d - if [ ${SITEINFO_ENDIANESS} == "be" ] ; then - sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ - ${WORKDIR}/config-nas100d.h > ${S}/config.h - else - sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ - ${WORKDIR}/config-nas100d.h > ${S}/config.h - fi - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d - make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d || die "oe_runmake failed" - # DSMG-600 - if [ ${SITEINFO_ENDIANESS} == "be" ] ; then - sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ - ${WORKDIR}/config-dsmg600.h > ${S}/config.h - else - sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ - ${WORKDIR}/config-dsmg600.h > ${S}/config.h - fi - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 - make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 || die "oe_runmake failed" - # FSG-3 - if [ ${SITEINFO_ENDIANESS} == "be" ] ; then - sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \ - ${WORKDIR}/config-fsg3.h > ${S}/config.h - else - sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \ - ${WORKDIR}/config-fsg3.h > ${S}/config.h - fi - rm -f ${S}/main.o - oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 - make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 || die "oe_runmake failed" - mv ${S}/config.h.orig ${S}/config.h -} - -do_populate_staging() { - install -d ${STAGING_LOADER_DIR} - cp ${S}/arm-kernel-shim-nslu2.bin ${STAGING_LOADER_DIR}/ - cp ${S}/arm-kernel-shim-nas100d.bin ${STAGING_LOADER_DIR}/ - cp ${S}/arm-kernel-shim-dsmg600.bin ${STAGING_LOADER_DIR}/ - cp ${S}/arm-kernel-shim-fsg3.bin ${STAGING_LOADER_DIR}/ -} diff --git a/packages/arm-kernel-shim/arm-kernel-shim_1.4.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.5.bb index 2b285f3b90..4bdf7a86e3 100644 --- a/packages/arm-kernel-shim/arm-kernel-shim_1.4.bb +++ b/packages/arm-kernel-shim/arm-kernel-shim_1.5.bb @@ -3,26 +3,24 @@ SECTION = "" PRIORITY = "optional" HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" LICENSE = "GPL" -PR = "r2" +# PR = "r1" COMPATIBLE_MACHINE = "(ixp4xx|nslu2)" SRC_URI = "ftp://ftp.buici.com/pub/arm/arm-kernel-shim/arm-kernel-shim-${PV}.tar.gz \ - file://passthrough-atags.patch;patch=1 \ - file://cmdline_if_none.patch;patch=1 \ file://config-nslu2.h \ file://config-nas100d.h \ file://config-dsmg600.h \ file://config-fsg3.h" -S = ${WORKDIR}/arm-kernel-shim-${PV}/1.3 +S = ${WORKDIR}/arm-kernel-shim-${PV} CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}" -CMDLINE_ROOT_DSMG600 = "root=/dev/mtdblock2 rootfstype=jffs2 rw" -CMDLINE_ROOT_NAS100D = "root=/dev/mtdblock2 rootfstype=jffs2 rw" -CMDLINE_ROOT_NSLU2 = "root=/dev/mtdblock4 rootfstype=jffs2 rw" -CMDLINE_ROOT_FSG3 = "root=/dev/mtdblock2 rootfstype=jffs2 rw" +CMDLINE_ROOT_DSMG600 = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_NAS100D = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_NSLU2 = "root=/dev/mtdblock4 rootfstype=jffs2 rw init=/linuxrc" +CMDLINE_ROOT_FSG3 = "root=/dev/mtdblock2 rootfstype=jffs2 rw init=/linuxrc" EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}" diff --git a/packages/arm-kernel-shim/files/cmdline_if_none.patch b/packages/arm-kernel-shim/files/cmdline_if_none.patch deleted file mode 100644 index 460f7be090..0000000000 --- a/packages/arm-kernel-shim/files/cmdline_if_none.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- arm-kernel-shim-1.3/main.c.orig 2007-02-14 19:05:35.000000000 -0600 -+++ arm-kernel-shim-1.3/main.c 2007-02-14 22:48:06.000000000 -0600 -@@ -153,6 +153,42 @@ - p->hdr.tag = ATAG_NONE; - p->hdr.size = 0; - -+#else -+ -+#ifdef CMDLINE_IF_NONE -+ -+ /* Walk over the ATAG list, we need to find the end of the list. -+ * If we find a command line tag, stash away the pointer to the -+ * actual command line itself. Note that the implementation -+ * below assumes a single ATAG_CMDLINE passed in from the -+ * bootloader, which may not be a good assumption in all cases. -+ */ -+ { -+ char *c = 0; -+ for_each_tag(p, (struct tag*) PHYS_PARAMS) -+ if (p->hdr.tag == ATAG_CMDLINE) c = p->u.cmdline.cmdline; -+ -+ /* p -> final tag (ATAG_NONE), and c -> command line if found */ -+ /* if no ATAG_CMDLINE, or command line is empty, add the default one. */ -+ -+ if ((c == 0) || (*c == 0)) { -+ p->hdr.tag = ATAG_CMDLINE; -+ p->hdr.size = tag_size (tag_cmdline) -+ + (sizeof (cmdline)+3)/4 - 1; -+ { -+ const char* sz = cmdline + offset; -+ int i; -+ for (i = 0; i < sizeof (cmdline); ++i) -+ p->u.cmdline.cmdline[i] = sz[i]; -+ } -+ p = tag_next (p); -+ p->hdr.tag = ATAG_NONE; -+ p->hdr.size = 0; -+ } -+ } -+ -+#endif -+ - #endif - - /* Pass control to the kernel */ diff --git a/packages/arm-kernel-shim/files/config-dsmg600.h b/packages/arm-kernel-shim/files/config-dsmg600.h index c320dc1b3b..eda1e9c264 100644 --- a/packages/arm-kernel-shim/files/config-dsmg600.h +++ b/packages/arm-kernel-shim/files/config-dsmg600.h @@ -18,12 +18,6 @@ #define MACH_TYPE 964 -/* The DSM-G600 RedBoot sets up the ATAGs correctly */ -#define PASSTHROUGH_ATAGS - -/* but if the command line passed in is empty, use the default. */ -#define CMDLINE_IF_NONE - /* Uncomment one of these to switch the CPU into a specific mode. */ //#define FORCE_LITTLEENDIAN //#define FORCE_BIGENDIAN diff --git a/packages/arm-kernel-shim/files/config-fsg3.h b/packages/arm-kernel-shim/files/config-fsg3.h index fa894e89ac..9b88462e89 100644 --- a/packages/arm-kernel-shim/files/config-fsg3.h +++ b/packages/arm-kernel-shim/files/config-fsg3.h @@ -21,6 +21,8 @@ #define MACH_TYPE 1091 +#define CREATE_ATAGS + /* Uncomment one of these to switch the CPU into a specific mode. */ //#define FORCE_LITTLEENDIAN //#define FORCE_BIGENDIAN diff --git a/packages/arm-kernel-shim/files/config-nas100d.h b/packages/arm-kernel-shim/files/config-nas100d.h index 90f5520e7d..99bc91fb7a 100644 --- a/packages/arm-kernel-shim/files/config-nas100d.h +++ b/packages/arm-kernel-shim/files/config-nas100d.h @@ -21,6 +21,10 @@ #define MACH_TYPE 865 +#define CREATE_ATAGS + +#define GUARANTEE_ATAG_CMDLINE + /* Uncomment one of these to switch the CPU into a specific mode. */ //#define FORCE_LITTLEENDIAN //#define FORCE_BIGENDIAN diff --git a/packages/arm-kernel-shim/files/config-nslu2.h b/packages/arm-kernel-shim/files/config-nslu2.h index 73566d061d..c751d84a44 100644 --- a/packages/arm-kernel-shim/files/config-nslu2.h +++ b/packages/arm-kernel-shim/files/config-nslu2.h @@ -21,6 +21,10 @@ #define MACH_TYPE 597 +#define CREATE_ATAGS + +#define GUARANTEE_ATAG_CMDLINE + /* Uncomment one of these to switch the CPU into a specific mode. */ //#define FORCE_LITTLEENDIAN //#define FORCE_BIGENDIAN diff --git a/packages/arm-kernel-shim/files/passthrough-atags.patch b/packages/arm-kernel-shim/files/passthrough-atags.patch deleted file mode 100644 index 194279df89..0000000000 --- a/packages/arm-kernel-shim/files/passthrough-atags.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- arm-kernel-shim-1.3/main.c~ 2007-02-11 05:52:32.000000000 +1030 -+++ arm-kernel-shim-1.3/main.c 2007-02-14 16:39:40.000000000 +1030 -@@ -100,6 +100,8 @@ - : "+r" (offset) - :: "lr", "cc"); - -+#if !defined (PASSTHROUGH_ATAGS) -+ - p = (struct tag*) PHYS_PARAMS; - - /* Always start with the CORE tag */ -@@ -151,6 +153,8 @@ - p->hdr.tag = ATAG_NONE; - p->hdr.size = 0; - -+#endif -+ - /* Pass control to the kernel */ - boot (0, MACH_TYPE, PHYS_PARAMS); - } diff --git a/packages/base-files/base-files_3.0.14.bb b/packages/base-files/base-files_3.0.14.bb index 37068780fd..74c4c33711 100644 --- a/packages/base-files/base-files_3.0.14.bb +++ b/packages/base-files/base-files_3.0.14.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Miscellaneous files for the base system." SECTION = "base" PRIORITY = "required" -PR = "r66" +PR = "r68" LICENSE = "GPL" SRC_URI = " \ @@ -80,9 +80,11 @@ do_install () { echo ${hostname} > ${D}${sysconfdir}/hostname fi + install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir} + if [ -n "${DISTRO_NAME}" ]; then - echo -n "${DISTRO_NAME} " > ${D}${sysconfdir}/issue - echo -n "${DISTRO_NAME} " > ${D}${sysconfdir}/issue.net + echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue + echo -n "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net if [ -n "${DISTRO_VERSION}" ]; then echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue echo -n "${DISTRO_VERSION} " >> ${D}${sysconfdir}/issue.net diff --git a/packages/clamav/clamav-0.90.2/.mtn2git_empty b/packages/billiardz/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/clamav/clamav-0.90.2/.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/avr32-config.sub.patch b/packages/binutils/binutils-2.17/avr32-config.sub.patch new file mode 100644 index 0000000000..f4166e9423 --- /dev/null +++ b/packages/binutils/binutils-2.17/avr32-config.sub.patch @@ -0,0 +1,11 @@ +--- /tmp/config.sub 2007-06-01 15:29:41.000000000 +0200 ++++ binutils-2.17/config.sub 2007-06-01 15:37:19.885251000 +0200 +@@ -305,7 +305,7 @@ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* \ ++ | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ 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/bluez/bluez-libs_3.11.bb b/packages/bluez/bluez-libs_3.11.bb new file mode 100644 index 0000000000..6ddf62a4fb --- /dev/null +++ b/packages/bluez/bluez-libs_3.11.bb @@ -0,0 +1 @@ +require bluez-libs.inc diff --git a/packages/bluez/bluez-utils_3.10.1.bb b/packages/bluez/bluez-utils_3.11.bb index 44827dc2d0..6ac6c8f977 100644 --- a/packages/bluez/bluez-utils_3.10.1.bb +++ b/packages/bluez/bluez-utils_3.11.bb @@ -8,7 +8,7 @@ SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \ file://hcid.conf \ file://02dtl1_cs.sh \ " -PR = "r3" +PR = "r0" EXTRA_OECONF = " \ --enable-bccmd \ diff --git a/packages/boost-asio/boost-asio_0.3.7.bb b/packages/boost-asio/boost-asio_0.3.7.bb index 45b7e22eb1..947f89cae2 100644 --- a/packages/boost-asio/boost-asio_0.3.7.bb +++ b/packages/boost-asio/boost-asio_0.3.7.bb @@ -1,6 +1,5 @@ DESCRIPTION = "Asio 0.3.7 for work with boost, should be moved into boost package once integrated into the boost distribution." HOMEPAGE = "http://asio.sf.net/" -MAINTAINER = "Martin Dietze <dietze@4g-systems.com>" SECTION = "libs" PRIORITY = "optional" LICENSE = "Boost Software License" diff --git a/packages/elfutils/elfutils-0.108/.mtn2git_empty b/packages/busybox/busybox-static-1.2.1/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/elfutils/elfutils-0.108/.mtn2git_empty +++ b/packages/busybox/busybox-static-1.2.1/.mtn2git_empty diff --git a/packages/busybox/busybox-static_1.2.1.bb b/packages/busybox/busybox-static_1.2.1.bb new file mode 100644 index 0000000000..f3bff07530 --- /dev/null +++ b/packages/busybox/busybox-static_1.2.1.bb @@ -0,0 +1,6 @@ +require busybox_${PV}.bb +PR = "r0" + +S = "${WORKDIR}/busybox-1.2.1" + +export CFLAGS:="${CFLAGS} -static" diff --git a/packages/busybox/slingbox-1.3.1/fdisk-readhex.patch b/packages/busybox/slingbox-1.3.1/fdisk-readhex.patch new file mode 100644 index 0000000000..d8e32c40e7 --- /dev/null +++ b/packages/busybox/slingbox-1.3.1/fdisk-readhex.patch @@ -0,0 +1,20 @@ +--- busybox-1.3.1/util-linux/fdisk.c.orig 2007-06-06 21:18:45.000000000 -0500 ++++ busybox-1.3.1/util-linux/fdisk.c 2007-06-06 21:17:20.000000000 -0500 +@@ -331,13 +331,16 @@ + read_hex(const struct systypes *sys) + { + unsigned long v; ++ char *e; + while (1) { + read_nonempty(_("Hex code (type L to list codes): ")); + if (*line_ptr == 'l' || *line_ptr == 'L') { + list_types(sys); + continue; + } +- v = bb_strtoul(line_ptr, NULL, 16); ++ v = bb_strtoul(line_ptr, &e, 16); ++ /* Clear out EINVAL code if it's because of the trailing \n */ ++ if ((errno == EINVAL) && (*e == '\n')) errno = 0; + if (errno || v > 0xff) continue; + return v; + } diff --git a/packages/busybox/slingbox_1.3.1.bb b/packages/busybox/slingbox_1.3.1.bb index 89b189e325..62d150a9fe 100644 --- a/packages/busybox/slingbox_1.3.1.bb +++ b/packages/busybox/slingbox_1.3.1.bb @@ -4,7 +4,7 @@ HOMEPAGE = "http://www.busybox.net" LICENSE = "GPL" SECTION = "base" PRIORITY = "required" -PR = "r0" +PR = "r1" COMPATIBLE_MACHINE = "nslu2" SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \ @@ -12,12 +12,11 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \ file://shadow_h_is_required.patch;patch=1 \ file://df_rootfs.patch;patch=1 \ file://lazy_umount.patch;patch=1 \ - file://halt.patch;patch=1" \ + file://halt.patch;patch=1 \ + file://fdisk-readhex.patch;patch=1 \ file://slingbox_name.patch;patch=1 \ file://slingbox.patch;patch=1" -# file://wget-long-options.patch;patch=1 \ - S = "${WORKDIR}/busybox-${PV}" export EXTRA_CFLAGS = "${CFLAGS}" diff --git a/packages/c3110x/cx3110x_1.1.bb b/packages/c3110x/cx3110x_1.1.bb index b3a9ce87e3..15cf51427d 100644 --- a/packages/c3110x/cx3110x_1.1.bb +++ b/packages/c3110x/cx3110x_1.1.bb @@ -1,18 +1,30 @@ -DESCRIPTION = "cx3110x wifi support as found in the Nokia 770/800" -SECTION = "kernel/modules" -LICENSE = "GPL" -PR = "r0" - -export KERNEL_SRC_DIR = ${STAGING_KERNEL_DIR} -export LDFLAGS = "" - -SRC_URI = "https://garage.maemo.org/frs/download.php/939/cx3110x-1.1.tar.gz" - -S = "${WORKDIR}/cx3110x-${PV}" - -inherit module - -do_compile() { - oe_runmake modules -} - +DESCRIPTION = "cx3110x wifi support as found in the Nokia 770/800"
+SECTION = "kernel/modules"
+LICENSE = "GPL"
+PR = "r4"
+
+COMPATIBLE_MACHINE = "(nokia770|nokia800)"
+
+export KERNEL_SRC_DIR = ${STAGING_KERNEL_DIR}
+export LDFLAGS = ""
+
+SRC_URI = "https://garage.maemo.org/frs/download.php/939/cx3110x-1.1.tar.gz \
+ file://umac_binary.patch;patch=1 \
+ http://use.the.umac.ko.from.your.own.nokia800/umac.ko"
+
+S = "${WORKDIR}/cx3110x-${PV}"
+
+inherit module
+
+do_compile() {
+ cp ${WORKDIR}/umac.ko ${S}/src/binary_umac.o
+ ${OBJCOPY} ${S}/src/binary_umac.o -R __ksymtab
+ ${OBJCOPY} ${S}/src/binary_umac.o -R __ksymtab_strings
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .gnu.linkonce.this_module
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .modinfo
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .init.text
+ ${OBJCOPY} ${S}/src/binary_umac.o -R .exit.text
+
+ oe_runmake modules
+}
+
diff --git a/packages/gcc/gcc-4.2-20060513/.mtn2git_empty b/packages/c3110x/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gcc/gcc-4.2-20060513/.mtn2git_empty +++ b/packages/c3110x/files/.mtn2git_empty diff --git a/packages/c3110x/files/umac_binary.patch b/packages/c3110x/files/umac_binary.patch new file mode 100644 index 0000000000..bffe69bca5 --- /dev/null +++ b/packages/c3110x/files/umac_binary.patch @@ -0,0 +1,69 @@ + src/Makefile.k26 | 4 ++--
+ src/dummy_umac.c | 38 ++------------------------------------
+ 2 files changed, 4 insertions(+), 38 deletions(-)
+
+Index: cx3110x-1.1/src/Makefile.k26
+===================================================================
+--- cx3110x-1.1.orig/src/Makefile.k26 2007-05-25 17:51:15.000000000 +0100
++++ cx3110x-1.1/src/Makefile.k26 2007-05-25 22:44:36.000000000 +0100
+@@ -8,8 +8,8 @@ cx3110x-objs = $(SM_OBJECTS) $(SM_UMAC_O
+ #MTUM module
+ cx3110x_mt-objs = $(SM_OBJECTS) $(SM_MTUM_OBJECTS)
+
+-umac-objs = dummy_umac.o
+-mtum-objs = dummy_umac.o
++umac-objs = dummy_umac.o binary_umac.o
++mtum-objs = dummy_umac.o binary_umac.o
+
+ obj-$(CONFIG_CX3110X_STA) += cx3110x.o umac.o
+ obj-$(CONFIG_CX3110X_PROD) += cx3110x_mt.o mtum.o
+Index: cx3110x-1.1/src/dummy_umac.c
+===================================================================
+--- cx3110x-1.1.orig/src/dummy_umac.c 2007-05-25 17:51:15.000000000 +0100
++++ cx3110x-1.1/src/dummy_umac.c 2007-05-25 22:50:59.000000000 +0100
+@@ -15,43 +15,9 @@
+ */
+ #include <linux/module.h>
+ #include "softmac2.h"
++#include "sm_drv.h"
+
+-SM_API int32_t SM_FDECL prism_softmac_parse_bra(const uint8_t* bra,
+- struct s_sm_initdata *data) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_describe(struct s_sm_descr *descr,
+- struct s_sm_initdata *data) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_create(uint32_t *context,
+- struct s_sm_setup *setup,
+- struct s_pda *pda,
+- struct s_sm_initdata *data) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_destroy(uint32_t *context) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_conf( uint32_t *context, struct s_sm_conf *conf ){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_trap( uint32_t *context, struct s_sm_conf *conf ){ return 0; }
+-
+-SM_API int32_t SM_FDECL prism_softmac_frame_tx(uint32_t *context, struct s_sm_frame *frame){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_frame_tx_done(uint32_t *context, struct s_sm_frame **frame){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_frame_rx(uint32_t *context, struct s_sm_frame **frame){ return 0; }
+-SM_API int32_t SM_FDECL prism_softmac_service(uint32_t *context) { return 0; }
+-
+-SM_API int32_t SM_FDECL prism_interconnect_message_query(uint32_t *context,
+- uint32_t mask,
+- struct s_ic_msg **msg){ return 0; }
+-SM_API int32_t SM_FDECL prism_interconnect_message_handle(uint32_t *context, struct s_ic_msg *msg){ return 0; }
+-SM_API int32_t SM_FDECL prism_interconnect_trigger(uint32_t *context){ return 0;}
+-
+-void prism_driver_free(uint32_t *context, void *buffer){}
+-void prism_driver_frame_free(uint32_t *context, struct s_sm_frame *frame){}
+-
+-int sm_net_device;
+-void sm_drv_get_device(void) {}
+-void frame_skb_alloc(void) {}
+-void frame_skb_free(void) {}
+-void frame_to_skb(void) {}
+-void skb_to_frame(void) {}
++extern int sm_net_device;
+
+ EXPORT_SYMBOL(prism_driver_free);
+ EXPORT_SYMBOL(prism_driver_frame_free);
diff --git a/packages/cairo/cairo_1.4.8.bb b/packages/cairo/cairo_1.4.8.bb new file mode 100644 index 0000000000..845e14fc29 --- /dev/null +++ b/packages/cairo/cairo_1.4.8.bb @@ -0,0 +1,6 @@ +require cairo.inc + +SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz" + +PR = "r0" + 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/classpath/classpath-gtk_0.90.bb b/packages/classpath/classpath-gtk_0.90.bb deleted file mode 100644 index b83d23d9c0..0000000000 --- a/packages/classpath/classpath-gtk_0.90.bb +++ /dev/null @@ -1,16 +0,0 @@ -require classpath.inc - -DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" -RDEPENDS_${PBN}-gtk = "${PBN}-common (>= ${PV})" -RCONFLICTS_${PBN}-gtk = "${PBN}-minimal" - -EXTRA_OECONF = "--with-jikes" - -PACKAGES = "${PBN}-dev ${PBN}-doc ${PBN}-common ${PBN}-examples ${PBN}-tools ${PN}" - -FILES_${PBN}-doc = "${datadir}/info" -FILES_${PBN}-dev = "${includedir}" -FILES_${PN} = "${libdir}" -FILES_${PBN}-common = "${datadir}/${PBN}/glibj.zip" -FILES_${PBN}-examples = "${datadir}/${PBN}/examples" -FILES_${PBN}-tools = "${datadir}/${PBN}/tools" diff --git a/packages/classpath/classpath-gtk_0.93.bb b/packages/classpath/classpath-gtk_0.93.bb new file mode 100644 index 0000000000..137ee8ffb2 --- /dev/null +++ b/packages/classpath/classpath-gtk_0.93.bb @@ -0,0 +1,18 @@ +require classpath.inc + +DEPENDS = "glib-2.0 gtk+ cairo gconf libart-lgpl pango libxtst jikes-native zip-native" +RDEPENDS_${PN} = "classpath-common (>= ${PV})" +RCONFLICTS_${PN} = "classpath-minimal" + +SRC_URI += "file://gconf_version.patch;patch=1" + +EXTRA_OECONF = "--with-jikes --disable-plugin --disable-dssi" + +PACKAGES = "classpath-dev classpath-doc classpath-common classpath-examples classpath-tools ${PN}" + +FILES_classpath-doc = "${datadir}/info" +FILES_classpath-dev = "${includedir}" +FILES_${PN} = "${libdir} ${bindir}" +FILES_classpath-common = "${datadir}/classpath/glibj.zip" +FILES_classpath-examples = "${datadir}/classpath/examples" +FILES_classpath-tools = "${datadir}/classpath/tools.zip" diff --git a/packages/classpath/classpath-gtk_cvs.bb b/packages/classpath/classpath-gtk_cvs.bb new file mode 100644 index 0000000000..53f494ab15 --- /dev/null +++ b/packages/classpath/classpath-gtk_cvs.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "GNU Classpath standard Java libraries" +HOMEPAGE = "http://www.gnu.org/software/classpath/" +LICENSE = "Classpath" +PRIORITY = "optional" +SECTION = "libs" +PR = "r1" + +SRCDATE_${PN} ?= "20070501" +PV = "0.93+cvs${SRCDATE}" + +DEPENDS = "glib-2.0 gtk+ cairo gconf ecj-native zip-native" +RDEPENDS_${PN} = "classpath-common (>= ${PV})" +RCONFLICTS_${PN} = "classpath-minimal" + +SRC_URI = "cvs://anonymous@cvs.savannah.gnu.org/sources/classpath;module=classpath \ + file://disable-automake-checks-v2.patch;patch=1" + +S = "${WORKDIR}/classpath" + +inherit autotools + +EXTRA_OECONF = "--with-ecj=${STAGING_BINDIR_NATIVE}/ecj --with-ecj-jar=${STAGING_BINDIR_NATIVE}/ecj.jar --disable-plugin --disable-dssi --disable-alsa" + +PACKAGES = "classpath-dev classpath-doc classpath-common classpath-examples classpath-tools ${PN}" + +FILES_classpath-doc = "${datadir}/info ${datadir}/man" +FILES_classpath-dev = "${includedir}" +FILES_${PN} = "${libdir} ${bindir}" +FILES_classpath-common = "${datadir}/classpath/glibj.zip" +FILES_classpath-examples = "${datadir}/classpath/examples" +FILES_classpath-tools = "${datadir}/classpath/tools.zip" + +do_stage() { + install -d ${STAGING_INCDIR}/classpath + install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ + install -d ${STAGING_DATADIR}/classpath + install -m 0755 lib/glibj.zip ${STAGING_DATADIR}/classpath/ +} + +do_install() { + autotools_do_install + mv ${D}${libdir}/security ${D}${libdir}/${PN} +} + +PROVIDES = "classpath" +RPROVIDES = "classpath" diff --git a/packages/classpath/classpath-minimal-native_0.93.bb b/packages/classpath/classpath-minimal-native_0.93.bb new file mode 100644 index 0000000000..8a08a6c1ce --- /dev/null +++ b/packages/classpath/classpath-minimal-native_0.93.bb @@ -0,0 +1,20 @@ +require classpath.inc + +DEPENDS = "glib-2.0 libart-lgpl pango libxtst jikes-native zip-native" + +SRC_URI += "file://gconf_version.patch;patch=1" + +inherit native + +EXTRA_OECONF = "--with-jikes --disable-gconf-peer --disable-gtk-peer --disable-plugin --disable-dssi --disable-examples" + +do_stage() { + install -d ${STAGING_INCDIR}/classpath + install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ + install -d ${STAGING_DATADIR}/classpath + install -m 0755 lib/glibj.zip ${STAGING_DATADIR}/classpath/ +} + +do_install() { + : +} diff --git a/packages/classpath/classpath.inc b/packages/classpath/classpath.inc index 303c286d4e..e66f5d7456 100644 --- a/packages/classpath/classpath.inc +++ b/packages/classpath/classpath.inc @@ -1,17 +1,15 @@ DESCRIPTION = "GNU Classpath standard Java libraries" HOMEPAGE = "http://www.gnu.org/software/classpath/" -LICENSE = "Classpath" -PRIORITY = "optional" SECTION = "libs" +PRIORITY = "optional" +LICENSE = "Classpath" +PROVIDES = "classpath" +RPROVIDES = "classpath" -PBN = "classpath" - -SRC_URI = "${GNU_MIRROR}/classpath/${PBN}-${PV}.tar.gz \ +SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz \ file://disable-automake-checks.patch;patch=1 \ file://fix-endian-arm-floats.patch;patch=1" -S = "${WORKDIR}/${PBN}-${PV}" - inherit autotools do_stage() { @@ -21,8 +19,11 @@ do_stage() { do_install() { autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PBN} + mv ${D}${libdir}/security ${D}${libdir}/${PN} } -PROVIDES = "classpath" -RPROVIDES = "classpath" +PACKAGES =+ "classpath-common classpath-examples classpath-tools" +FILES_classpath-common += "${datadir}/classpath/glibj.zip" +FILES_classpath-examples += "${datadir}/classpath/examples" +FILES_classpath-tools += "${datadir}/classpath/tools.zip ${datadir}/classpath/tools" +FILES_classpath-dev += "${libdir}/*.so" diff --git a/packages/classpath/classpath_0.14.bb b/packages/classpath/classpath_0.14.bb index 439d973cc8..e4d73bbd3a 100644 --- a/packages/classpath/classpath_0.14.bb +++ b/packages/classpath/classpath_0.14.bb @@ -1,32 +1,10 @@ -DESCRIPTION = "GNU Classpath standard Java libraries" -HOMEPAGE = "http://www.gnu.org/software/classpath/" -LICENSE = "Classpath" -PRIORITY = "optional" -SECTION = "libs" -PR = "r1" +require classpath.inc DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" RDEPENDS_${PN} = "${PN}-common (${PV})" +PR = "r2" SRC_URI = "${GNU_MIRROR}/${PN}/${P}.tar.gz \ file://disable-automake-checks.patch;patch=1" -inherit autotools - EXTRA_OECONF = "--with-jikes" - -PACKAGES += " ${PN}-common ${PN}-examples" - -FILES_${PN} = "${libdir}/${PN}" -FILES_${PN}-common = "${datadir}/${PN}/glibj.zip" -FILES_${PN}-examples = "${datadir}/${PN}/examples" - -do_stage() { - install -d ${STAGING_INCDIR}/classpath - install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ -} - -do_install() { - autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PN} -} diff --git a/packages/classpath/classpath_0.15.bb b/packages/classpath/classpath_0.15.bb index 439d973cc8..e4d73bbd3a 100644 --- a/packages/classpath/classpath_0.15.bb +++ b/packages/classpath/classpath_0.15.bb @@ -1,32 +1,10 @@ -DESCRIPTION = "GNU Classpath standard Java libraries" -HOMEPAGE = "http://www.gnu.org/software/classpath/" -LICENSE = "Classpath" -PRIORITY = "optional" -SECTION = "libs" -PR = "r1" +require classpath.inc DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" RDEPENDS_${PN} = "${PN}-common (${PV})" +PR = "r2" SRC_URI = "${GNU_MIRROR}/${PN}/${P}.tar.gz \ file://disable-automake-checks.patch;patch=1" -inherit autotools - EXTRA_OECONF = "--with-jikes" - -PACKAGES += " ${PN}-common ${PN}-examples" - -FILES_${PN} = "${libdir}/${PN}" -FILES_${PN}-common = "${datadir}/${PN}/glibj.zip" -FILES_${PN}-examples = "${datadir}/${PN}/examples" - -do_stage() { - install -d ${STAGING_INCDIR}/classpath - install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ -} - -do_install() { - autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PN} -} diff --git a/packages/classpath/classpath_0.17.bb b/packages/classpath/classpath_0.17.bb index a28591ac0d..e4d73bbd3a 100644 --- a/packages/classpath/classpath_0.17.bb +++ b/packages/classpath/classpath_0.17.bb @@ -1,32 +1,10 @@ -DESCRIPTION = "GNU Classpath standard Java libraries" -HOMEPAGE = "http://www.gnu.org/software/classpath/" -LICENSE = "Classpath" -PRIORITY = "optional" -SECTION = "libs" -PR = "r1" +require classpath.inc DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" RDEPENDS_${PN} = "${PN}-common (${PV})" +PR = "r2" SRC_URI = "${GNU_MIRROR}/${PN}/${P}.tar.gz \ file://disable-automake-checks.patch;patch=1" -inherit autotools - EXTRA_OECONF = "--with-jikes" - -PACKAGES += " ${PN}-common ${PN}-examples" - -FILES_${PN} = "${libdir}/${PN}" -FILES_${PN}-common = "${datadir}/${PN}/glibj.zip" -FILES_${PN}-examples = "${datadir}/${PN}/examples" - -do_stage() { - install -d ${STAGING_INCDIR}/classpath - install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ -} - -do_install() { - autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PN} -} diff --git a/packages/classpath/classpath_0.18.bb b/packages/classpath/classpath_0.18.bb index a9a2b2cd2d..9b9e8c3451 100644 --- a/packages/classpath/classpath_0.18.bb +++ b/packages/classpath/classpath_0.18.bb @@ -1,31 +1,10 @@ -DESCRIPTION = "GNU Classpath standard Java libraries" -HOMEPAGE = "http://www.gnu.org/software/classpath/" -LICENSE = "Classpath" -PRIORITY = "optional" -SECTION = "libs" +require classpath.inc DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" +PR = "r1" SRC_URI = "${GNU_MIRROR}/${PN}/${P}.tar.gz \ file://disable-automake-checks.patch;patch=1" -inherit autotools - EXTRA_OECONF = "--with-jikes" - -PACKAGES += " ${PN}-common ${PN}-examples" - -FILES_${PN} = "${libdir}/${PN}" -FILES_${PN}-common = "${datadir}/${PN}/glibj.zip" -FILES_${PN}-examples = "${datadir}/${PN}/examples" - -do_stage() { - install -d ${STAGING_INCDIR}/classpath - install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ -} - -do_install() { - autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PN} -} diff --git a/packages/classpath/classpath_0.19.bb b/packages/classpath/classpath_0.19.bb index a9a2b2cd2d..9b9e8c3451 100644 --- a/packages/classpath/classpath_0.19.bb +++ b/packages/classpath/classpath_0.19.bb @@ -1,31 +1,10 @@ -DESCRIPTION = "GNU Classpath standard Java libraries" -HOMEPAGE = "http://www.gnu.org/software/classpath/" -LICENSE = "Classpath" -PRIORITY = "optional" -SECTION = "libs" +require classpath.inc DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" +PR = "r1" SRC_URI = "${GNU_MIRROR}/${PN}/${P}.tar.gz \ file://disable-automake-checks.patch;patch=1" -inherit autotools - EXTRA_OECONF = "--with-jikes" - -PACKAGES += " ${PN}-common ${PN}-examples" - -FILES_${PN} = "${libdir}/${PN}" -FILES_${PN}-common = "${datadir}/${PN}/glibj.zip" -FILES_${PN}-examples = "${datadir}/${PN}/examples" - -do_stage() { - install -d ${STAGING_INCDIR}/classpath - install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ -} - -do_install() { - autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PN} -} diff --git a/packages/classpath/classpath_0.20.bb b/packages/classpath/classpath_0.20.bb index a9a2b2cd2d..9b9e8c3451 100644 --- a/packages/classpath/classpath_0.20.bb +++ b/packages/classpath/classpath_0.20.bb @@ -1,31 +1,10 @@ -DESCRIPTION = "GNU Classpath standard Java libraries" -HOMEPAGE = "http://www.gnu.org/software/classpath/" -LICENSE = "Classpath" -PRIORITY = "optional" -SECTION = "libs" +require classpath.inc DEPENDS = "glib-2.0 gtk+ libart-lgpl pango libxtst jikes-native zip-native" RDEPENDS_${PN} = "${PN}-common (>= ${PV})" +PR = "r1" SRC_URI = "${GNU_MIRROR}/${PN}/${P}.tar.gz \ file://disable-automake-checks.patch;patch=1" -inherit autotools - EXTRA_OECONF = "--with-jikes" - -PACKAGES += " ${PN}-common ${PN}-examples" - -FILES_${PN} = "${libdir}/${PN}" -FILES_${PN}-common = "${datadir}/${PN}/glibj.zip" -FILES_${PN}-examples = "${datadir}/${PN}/examples" - -do_stage() { - install -d ${STAGING_INCDIR}/classpath - install -m 0755 include/jni* ${STAGING_INCDIR}/classpath/ -} - -do_install() { - autotools_do_install - mv ${D}${libdir}/security ${D}${libdir}/${PN} -} diff --git a/packages/classpath/files/disable-automake-checks-v2.patch b/packages/classpath/files/disable-automake-checks-v2.patch new file mode 100644 index 0000000000..0c1df1acae --- /dev/null +++ b/packages/classpath/files/disable-automake-checks-v2.patch @@ -0,0 +1,11 @@ +--- sablevm-classpath-1.1.7/configure.ac.orig 2004-11-26 00:23:01.000000000 +0100 ++++ sablevm-classpath-1.1.7/configure.ac 2004-11-26 00:23:46.000000000 +0100 +@@ -34,7 +34,7 @@ + AC_SUBST(CLASSPATH_MODULE) + + AC_PREREQ(2.59) +-AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar -Wno-portability]) ++AM_INIT_AUTOMAKE + AC_CONFIG_HEADERS([include/config.h]) + AC_PREFIX_DEFAULT(/usr/local) + diff --git a/packages/classpath/files/gconf_version.patch b/packages/classpath/files/gconf_version.patch new file mode 100644 index 0000000000..b1be1209a2 --- /dev/null +++ b/packages/classpath/files/gconf_version.patch @@ -0,0 +1,11 @@ +--- classpath-0.93/configure.ac~ 2007-03-29 15:52:30.000000000 -0500 ++++ classpath-0.93/configure.ac 2007-03-29 15:52:30.000000000 -0500 +@@ -496,7 +496,7 @@ + + dnl gconf-peer + if test "x${COMPILE_GCONF_PEER}" = xyes; then +- PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.11.2) ++ PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.6.0) + AC_SUBST(GCONF_CFLAGS) + AC_SUBST(GCONF_LIBS) + dnl we also need gdk for locking diff --git a/packages/clish/clish_0.7.1.bb b/packages/clish/clish_0.7.1.bb index 2fc7020a4c..90757de6dc 100644 --- a/packages/clish/clish_0.7.1.bb +++ b/packages/clish/clish_0.7.1.bb @@ -1,10 +1,14 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) DESCRIPTION = "modular framework for implementing a CISCO-like CLI on a *NIX system" LICENSE = "GPL" SECTION = "console/utils" -PR="r0" +PR="r1" SRC_URI = "${SOURCEFORGE_MIRROR}/clish/clish-0.7.1.tar.gz" +PARALLEL_MAKE="" + S = "${WORKDIR}/clish-${PV}" inherit autotools diff --git a/packages/curl/curl_7.15.1.bb b/packages/curl/curl_7.15.1.bb index 38050a71f1..5af2dfa7e1 100644 --- a/packages/curl/curl_7.15.1.bb +++ b/packages/curl/curl_7.15.1.bb @@ -1,8 +1,8 @@ DESCRIPTION = "Command line tool and library for client-side URL transfers." LICENSE = "MIT" -DEPENDS = "zlib" +DEPENDS = "zlib gnutls" SECTION = "console/network" -PR = "r3" +PR = "r4" SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2" S = "${WORKDIR}/curl-${PV}" @@ -12,7 +12,9 @@ inherit autotools pkgconfig binconfig EXTRA_OECONF = "--with-zlib=${STAGING_LIBDIR}/../ \ --without-ssl \ --with-random=/dev/urandom \ - --without-idn" + --without-idn \ + --enable-crypto-auth \ + " do_stage () { install -d ${STAGING_INCDIR}/curl diff --git a/packages/debianutils/debianutils_2.19.bb b/packages/debianutils/debianutils_2.19.bb new file mode 100644 index 0000000000..30beb5d4ed --- /dev/null +++ b/packages/debianutils/debianutils_2.19.bb @@ -0,0 +1,5 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) + +require debianutils.inc +PR="r0" diff --git a/packages/display-brightness/display-brightness.sh b/packages/display-brightness/display-brightness.sh index 5e1a0e97d4..a82c748309 100644 --- a/packages/display-brightness/display-brightness.sh +++ b/packages/display-brightness/display-brightness.sh @@ -28,6 +28,8 @@ if [ "$1" = "up" ]; then if [ $ACTUAL_BRIGHTNESS -eq $MAX_BRIGHTNESS ]; then exit 0 else + + test -x /usr/bin/bl && bl on test "$STEP" -gt "$MAX_BRIGHTNESS" -o "$STEP" -eq "$MAX_BRIGHTNESS" && STEP=1 let CURRENT_BRIGHTNESS=$ACTUAL_BRIGHTNESS+$STEP echo $CURRENT_BRIGHTNESS >> $BRIGHTNESS_FILE diff --git a/packages/display-brightness/display-brightness_1.0.0.bb b/packages/display-brightness/display-brightness_1.0.0.bb index aa3c0995e9..bc46c16631 100644 --- a/packages/display-brightness/display-brightness_1.0.0.bb +++ b/packages/display-brightness/display-brightness_1.0.0.bb @@ -2,7 +2,7 @@ DESCRIPTION = "display brightness utility" AUTHOR = "Patrick Steiner <patrick.steiner@a1.net>" DEPENDS = "" PRIORITY = "optional" -PR = "r2" +PR = "r3" LICENSE = "GPLv2" SRC_URI = "file://display-brightness.sh" diff --git a/packages/e17/e-wm_0.16.999.037.bb b/packages/e17/e-wm_0.16.999.038.bb index 0ccd0c67f2..cf25ad08e8 100644 --- a/packages/e17/e-wm_0.16.999.037.bb +++ b/packages/e17/e-wm_0.16.999.038.bb @@ -1,5 +1,5 @@ DESCRIPTION = "E17 - the Enlightenment Window Mananger" -DEPENDS = "evas-x11 ecore-x11 edje eet embryo" +DEPENDS = "evas-x11 ecore-x11 edje eet embryo efreet" LICENSE = "MIT" PR = "r5" diff --git a/packages/gspcav1/gspcav1-20070110/.mtn2git_empty b/packages/e17/entrance-0.9.0.009/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/gspcav1/gspcav1-20070110/.mtn2git_empty +++ b/packages/e17/entrance-0.9.0.009/.mtn2git_empty diff --git a/packages/e17/entrance-0.9.0.009/Xserver.patch b/packages/e17/entrance-0.9.0.009/Xserver.patch new file mode 100644 index 0000000000..296a7bccf4 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/Xserver.patch @@ -0,0 +1,22 @@ +--- entrance/src/daemon/Entranced.h.~1.7.~ 2004-05-19 21:02:09.000000000 -0700 ++++ entrance/src/daemon/Entranced.h 2005-08-13 02:00:02.000000000 -0700 +@@ -18,7 +18,7 @@ + + #define ENTRANCED_DEBUG 1 + +-#define X_SERVER "/usr/X11R6/bin/X -quiet" ++#define X_SERVER "/etc/X11/Xserver" + //#define X_SERVER "/usr/X11R6/bin/Xnest -full" + #define X_DISP ":0" /* only used if DISPLAY variable is NOT set */ + #define ENTRANCE PREFIX "/bin/entrance_wrapper" +--- entrance/src/daemon/spawner.c.~1.25.~ 2005-05-28 02:31:14.000000000 -0700 ++++ entrance/src/daemon/spawner.c 2005-08-13 02:20:13.000000000 -0700 +@@ -155,7 +155,7 @@ + sigaction(SIGUSR1, &_entrance_x_sa, NULL); + /* FIXME: need to parse command and NOT go thru /bin/sh!!!! */ + /* why? some /bin/sh's wont pass on this SIGUSR1 thing... */ +- execl("/bin/sh", "/bin/sh", "-c", x_cmd, NULL); ++ execl("/bin/bash", "/bin/bash", "-c", x_cmd, NULL); + syslog(LOG_WARNING, "Could not execute X server."); + exit(1); + default: diff --git a/packages/e17/entrance-0.9.0.009/allow-missing-xsession.patch b/packages/e17/entrance-0.9.0.009/allow-missing-xsession.patch new file mode 100644 index 0000000000..74289ad3c8 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/allow-missing-xsession.patch @@ -0,0 +1,19 @@ +Index: entrance-0.9.0.009/configure.in +=================================================================== +--- entrance-0.9.0.009.orig/configure.in ++++ entrance-0.9.0.009/configure.in +@@ -184,10 +184,10 @@ AC_ARG_WITH(xsession, + fi + ] + ) +-if test ! -x "$xsession" ; then +- AC_MSG_WARN([** $xsession does not exist or is not executable **]) +- AC_MSG_WARN([** Please consider overriding with --with-xsession **]) +-fi ++#if test ! -x "$xsession" ; then ++# AC_MSG_WARN([** $xsession does not exist or is not executable **]) ++# AC_MSG_WARN([** Please consider overriding with --with-xsession **]) ++#fi + + AC_DEFINE_UNQUOTED(ENTRANCE_XSESSION, "$xsession", [Xsession script]) + AC_SUBST(xsession) diff --git a/packages/e17/entrance-0.9.0.009/config-db.patch b/packages/e17/entrance-0.9.0.009/config-db.patch new file mode 100644 index 0000000000..aecbfb6867 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/config-db.patch @@ -0,0 +1,119 @@ +Index: entrance-0.9.0.009/data/config/build_config.sh.in +=================================================================== +--- entrance-0.9.0.009.orig/data/config/build_config.sh.in ++++ entrance-0.9.0.009/data/config/build_config.sh.in +@@ -1,45 +1,45 @@ + #!/bin/sh -e + +-usage() { +- cat <<-EOF +- Usage: $0 [options] +- +- Options: +- -d, --dir Session directory to scan +- -c, --file Config file (default: $DB) +- -h, --help This help output :p +- EOF +- +- if [ "$1" = "1" ] ; then +- echo "" +- echo "ERROR: $2" +- fi +- +- exit $1 +-} +- +-SESSION_DIR="" +-DB="./entrance_config.cfg" +- +-while [ -n "$1" ] ; do +- case $1 in +- -d) shift; SESSION_DIR=$1;; +- -c) shift; DB=$1;; +- -h) usage 0;; +- *) usage 1 "Unknown option: $1";; +- esac +- shift +-done +- +-if [ -z "$DB" ] || [ -d "$DB" ] ; then +- usage 1 "Invalid DB argument" +-fi +- +-FROM=$SESSION_DIR +-if [ -z "$FROM" ] ; then +- FROM="defaults" +-fi +-echo "Generating config file '$DB' from '$FROM' ..." ++#usage() { ++# cat <<-EOF ++# Usage: $0 [options] ++# ++# Options: ++# -d, --dir Session directory to scan ++# -c, --file Config file (default: $DB) ++# -h, --help This help output :p ++# EOF ++# ++# if [ "$1" = "1" ] ; then ++# echo "" ++# echo "ERROR: $2" ++# fi ++# ++# exit $1 ++#} ++# ++#SESSION_DIR="" ++#DB="./entrance_config.cfg" ++# ++#while [ -n "$1" ] ; do ++# case $1 in ++# -d) shift; SESSION_DIR=$1;; ++# -c) shift; DB=$1;; ++# -h) usage 0;; ++# *) usage 1 "Unknown option: $1";; ++# esac ++# shift ++#done ++# ++#if [ -z "$DB" ] || [ -d "$DB" ] ; then ++# usage 1 "Invalid DB argument" ++#fi ++# ++#FROM=$SESSION_DIR ++#if [ -z "$FROM" ] ; then ++# FROM="defaults" ++#fi ++#echo "Generating config file '$DB' from '$FROM' ..." + + rm -f $DB || exit 1 + +@@ -59,10 +59,10 @@ ecore_config -c $DB -k /entrance/time_fo + #ecore_config -c $DB -k /entrance/fonts/0/-s -s "/usr/share/fonts/truetype/" + #ecore_config -c $DB -k /entrance/fonts/1/-s -s "/usr/X11R6/lib/X11/fonts/Truetype/" + ecore_config -c $DB -k /entrance/greeting/before -s "Welcome to" +-ecore_config -c $DB -k /entrance/greeting/after -s "" ++ecore_config -c $DB -k /entrance/greeting/after -s " e17/OE" + + count=0 +-ecore_config -c $DB -k /entrance/session/0/session -s "default" ++ecore_config -c $DB -k /entrance/session/0/session -s "/etc/X11/Sessions/Enlightenment" + ecore_config -c $DB -k /entrance/session/0/title -s "Default" + ecore_config -c $DB -k /entrance/session/0/icon -s "default.png" + #if [ -z "$SESSION_DIR" ] ; then +@@ -92,7 +92,7 @@ ecore_config -c $DB -k /entrance/session + # done + #fi + count=`(expr $count + 1)` +-ecore_config -c $DB -k /entrance/session/$count/session -s "failsafe" ++ecore_config -c $DB -k /entrance/session/$count/session -s "/etc/X11/Sessions/Enlightenment" + ecore_config -c $DB -k /entrance/session/$count/title -s "Failsafe" + ecore_config -c $DB -k /entrance/session/$count/icon -s "failsafe.png" + count=`(expr $count + 1)` +@@ -107,5 +107,5 @@ ecore_config -c $DB -k /entrance/autolog + ecore_config -c $DB -k /entrance/presel/mode -i 1 + + # for Entranced +-ecore_config -c $DB -k /entranced/xserver -s "@xbin@/X -quiet -nolisten tcp@ENTRANCE_VT_ARG@" ++ecore_config -c $DB -k /entranced/xserver -s "/etc/X11/Xserver" + ecore_config -c $DB -k /entranced/attempts -i 5 diff --git a/packages/e17/entrance-0.9.0.009/disable-autodetect.patch b/packages/e17/entrance-0.9.0.009/disable-autodetect.patch new file mode 100644 index 0000000000..a0412b3706 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/disable-autodetect.patch @@ -0,0 +1,8 @@ +diff -Nur entrance-0.9.0.007~/Makefile.am entrance-0.9.0.007/Makefile.am +--- entrance-0.9.0.007~/Makefile.am 2006-05-11 12:18:07.000000000 -0700 ++++ entrance-0.9.0.007/Makefile.am 2006-05-11 13:01:41.000000000 -0700 +@@ -23,4 +23,3 @@ + fi + + install-data-am: +- sh data/config/autodetect.sh || : diff --git a/packages/e17/entrance-0.9.0.009/fix-auth-mode.patch b/packages/e17/entrance-0.9.0.009/fix-auth-mode.patch new file mode 100644 index 0000000000..46e530b256 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/fix-auth-mode.patch @@ -0,0 +1,13 @@ +Index: entrance-0.9.0.009/data/config/build_config.sh.in +=================================================================== +--- entrance-0.9.0.009.orig/data/config/build_config.sh.in ++++ entrance-0.9.0.009/data/config/build_config.sh.in +@@ -44,7 +44,7 @@ + rm -f $DB || exit 1 + + # set auth to 1 for pam, 2 for shadow +-ecore_config -c $DB -k /entrance/auth -i @auth_mode@ ++ecore_config -c $DB -k /entrance/auth -i 0 + + # uncomment the below to enable experimental OpenGL hardware acceleration + #ecore_config -c $DB -k /entrance/engine -i 1 diff --git a/packages/e17/entrance-0.9.0.009/run-Xinit.patch b/packages/e17/entrance-0.9.0.009/run-Xinit.patch new file mode 100644 index 0000000000..1d6c2307f7 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/run-Xinit.patch @@ -0,0 +1,17 @@ +--- entrance/src/daemon/entrance_wrapper.in.~1.1.~ 2003-01-31 13:57:06.000000000 -0800 ++++ entrance/src/daemon/entrance_wrapper.in 2005-08-15 20:13:57.000000000 -0700 +@@ -5,8 +5,13 @@ + + test -f /etc/profile && . /etc/profile + ++if [ -x /etc/X11/Xinit.d/99gpe-login ]; then ++ chmod -x /etc/X11/Xinit.d/99gpe-login ++fi ++ ++/etc/X11/Xinit ++ + exec @prefix@/bin/entrance "$@" + + #fallback + exec entrance "$@" +- diff --git a/packages/e17/entrance-0.9.0.009/set-display-env.patch b/packages/e17/entrance-0.9.0.009/set-display-env.patch new file mode 100644 index 0000000000..37bfc1c2c8 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/set-display-env.patch @@ -0,0 +1,11 @@ +diff -Nur entrance~/src/daemon/spawner.c entrance/src/daemon/spawner.c +--- entrance~/src/daemon/spawner.c 2005-09-02 14:00:29.000000000 -0700 ++++ entrance/src/daemon/spawner.c 2005-09-02 15:53:31.000000000 -0700 +@@ -199,6 +199,7 @@ + free(d->client.homedir); + d->client.homedir = NULL; + ++ setenv("DISPLAY", d->name, 1); + snprintf(entrance_cmd, PATH_MAX, "%s -d %s", ENTRANCE, d->name); + if (d->config) + snprintf(entrance_cmd, PATH_MAX, "%s -d %s -c \"%s\" -z %d", diff --git a/packages/e17/entrance-0.9.0.009/use-bash.patch b/packages/e17/entrance-0.9.0.009/use-bash.patch new file mode 100644 index 0000000000..7dfab83711 --- /dev/null +++ b/packages/e17/entrance-0.9.0.009/use-bash.patch @@ -0,0 +1,57 @@ +Index: entrance-0.9.0.009/src/client/entrance_session.c +=================================================================== +--- entrance-0.9.0.009.orig/src/client/entrance_session.c ++++ entrance-0.9.0.009/src/client/entrance_session.c +@@ -854,7 +854,7 @@ _entrance_session_execute_in_shell(char + if (shell && (strlen(shell) > 0)) + shell_cmd = shell; + else +- shell_cmd = strdup("/bin/sh"); ++ shell_cmd = strdup("/bin/bash"); + + if (session_name) + snprintf(buf, sizeof(buf), "%s %s", session_cmd, session_name); +@@ -869,9 +869,9 @@ _entrance_session_execute_in_shell(char + if (res == -1) + /* TODO: should actually hit the user in the face with this message */ + syslog(LOG_NOTICE, +- "Neither '%s' or '/bin/sh' are working login shells for user '%s'. Your session may not function properly. ", ++ "Neither '%s' or '/bin/bash' are working login shells for user '%s'. Your session may not function properly. ", + shell, user); +- shell_cmd = strdup("/bin/sh"); ++ shell_cmd = strdup("/bin/bash"); + + res = execlp(shell_cmd, shell_cmd, "-c", buf, NULL); + +Index: entrance-0.9.0.009/src/client/main.c +=================================================================== +--- entrance-0.9.0.009.orig/src/client/main.c ++++ entrance-0.9.0.009/src/client/main.c +@@ -453,7 +453,7 @@ reboot_cb(void *data, Evas_Object * o, c + { + case 0: + if (execl +- ("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -r now", NULL)) ++ ("/bin/bash", "/bin/bash", "-c", "/sbin/shutdown -r now", NULL)) + { + syslog(LOG_CRIT, + "Reboot failed: Unable to execute /sbin/shutdown"); +@@ -495,7 +495,7 @@ shutdown_cb(void *data, Evas_Object * o, + { + case 0: + if (execl +- ("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -h now", NULL)) ++ ("/bin/bash", "/bin/bash", "-c", "/sbin/shutdown -h now", NULL)) + { + syslog(LOG_CRIT, + "Shutdown failed: Unable to execute /sbin/shutdown"); +Index: entrance-0.9.0.009/src/daemon/entrance_wrapper.in +=================================================================== +--- entrance-0.9.0.009.orig/src/daemon/entrance_wrapper.in ++++ entrance-0.9.0.009/src/daemon/entrance_wrapper.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/bash + # Wrapper script to set up login environment: + # Load up all the junk in /etc/profile first, and then + # pass control to entrance proper. diff --git a/packages/e17/entrance_0.9.0.009.bb b/packages/e17/entrance_0.9.0.009.bb new file mode 100644 index 0000000000..6e21926860 --- /dev/null +++ b/packages/e17/entrance_0.9.0.009.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "Entrance is the Enlightenment login manager" +LICENSE = "MIT" +# can also use pam and crypt +DEPENDS = "evas-x11 ecore-x11 edje esmart-x11 bash keylaunch xserver-common login-manager" +RDEPENDS += "bash keylaunch xserver-common glibc-gconv-iso8859-1 login-manager entrance-themes" +HOMEPAGE = "http://www.enlightenment.org" +PR = "r1" + +DEFAULT_PREFERENCE = "-1" + +inherit e + +SRC_URI = "${E_URI}/entrance-${PV}.tar.gz \ + file://config-db.patch;patch=1 \ + file://allow-missing-xsession.patch;patch=1 \ + file://run-Xinit.patch;patch=1 \ + file://fix-auth-mode.patch;patch=1 \ + file://use-bash.patch;patch=1 \ + file://Sessions" +# file://disable-autodetect.patch;patch=1 \ +# file://set-display-env.patch;patch=1 \ + +S = "${WORKDIR}/entrance-${PV}" + +EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ + --with-xsession=/etc/X11/Xsession \ + --with-auth-mode=0" + +FILES_${PN}-dbg += "${libexecdir}/entrance/.debug" +FILES_${PN} += "${bindir} ${sbindir} /etc ${datadir} ${libexecdir}" + +do_install_append() { + install -d ${D}/etc/X11/Xsession.d + install -d ${D}/etc/X11/Sessions + + install -m 755 ${WORKDIR}/Sessions/* ${D}/etc/X11/Sessions + + install -d ${D}/etc/X11/login-managers/ + mv ${D}/etc/init.d/entrance ${D}/etc/X11/login-managers/entrance +} diff --git a/packages/efl/ecore-fb_0.9.9.037.bb b/packages/efl/ecore-fb_0.9.9.038.bb index b856d38bd9..b856d38bd9 100644 --- a/packages/efl/ecore-fb_0.9.9.037.bb +++ b/packages/efl/ecore-fb_0.9.9.038.bb diff --git a/packages/efl/ecore-native_0.9.9.037.bb b/packages/efl/ecore-native_0.9.9.038.bb index 7d7ed2370a..7d7ed2370a 100644 --- a/packages/efl/ecore-native_0.9.9.037.bb +++ b/packages/efl/ecore-native_0.9.9.038.bb diff --git a/packages/efl/ecore-x11_0.9.9.037.bb b/packages/efl/ecore-x11_0.9.9.038.bb index 1deb641326..1deb641326 100644 --- a/packages/efl/ecore-x11_0.9.9.037.bb +++ b/packages/efl/ecore-x11_0.9.9.038.bb diff --git a/packages/efl/ecore.inc b/packages/efl/ecore.inc index 7d89435598..60c18cacc3 100644 --- a/packages/efl/ecore.inc +++ b/packages/efl/ecore.inc @@ -10,10 +10,10 @@ PROVIDES += "virtual/ecore" inherit efl SRC_URI = "http://enlightenment.freedesktop.org/files/ecore-${PV}.tar.gz \ - file://configure.patch;patch=1 \ - file://fix-tslib-configure.patch;patch=1 \ file://ecore_kernel_input_header.patch;patch=1 \ - ${E_CVS};module=e17/libs/ecore/m4;date=20060101" + ${E_CVS};module=e17/libs/ecore/m4;date=20070501" +# file://fix-tslib-configure.patch;patch=1 \ +# file://configure.patch;patch=1 \ S = "${WORKDIR}/ecore-${PV}" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ecore" @@ -39,7 +39,8 @@ do_stage_append() { oe_libinstall -C src/lib/$dir lib$dir ${STAGING_LIBDIR}/ done install -m 0644 ${S}/src/lib/ecore/Ecore_Data.h ${STAGING_INCDIR}/ - install -m 0644 ${S}/ecore.m4 ${STAGING_DATADIR}/aclocal/ +# install -m 0644 ${S}/ecore.m4 ${STAGING_DATADIR}/aclocal/ } -FILES_${PN} += "${libdir}/libecore*.so* ${libdir}/ecore_config_ipc_ecore.so" +FILES_${PN} += "${libdir}/ecore_config_ipc_ecore.so.*" +FILES_${PN}-dev += "${libdir}/ecore_config_ipc_ecore.so" diff --git a/packages/efl/ecore/configure-abstract-sockets.patch b/packages/efl/ecore/configure-abstract-sockets.patch index cdd30695e1..359203b163 100644 --- a/packages/efl/ecore/configure-abstract-sockets.patch +++ b/packages/efl/ecore/configure-abstract-sockets.patch @@ -1,14 +1,16 @@ ---- ecore-0.9.9.036/configure.in~ 2006-11-13 14:05:24.000000000 -0800 -+++ ecore-0.9.9.036/configure.in 2006-11-13 14:18:22.000000000 -0800 -@@ -886,10 +886,7 @@ - ) +Index: ecore-0.9.9.038/configure.in +=================================================================== +--- ecore-0.9.9.038.orig/configure.in ++++ ecore-0.9.9.038/configure.in +@@ -541,10 +541,7 @@ AC_ARG_ENABLE(abstract-sockets, + [ want_abstract_sockets="yes"] + ) + if test "x$want_abstract_sockets" = "xyes"; then +- AC_ABSTRACT_SOCKET_TEST( +- [AC_DEFINE(HAVE_ABSTRACT_SOCKETS, 1, [Have abstract sockets namespace])], +- [] +- ) ++ HAVE_ABSTRACT_SOCKETS = 1 fi --AC_ABSTRACT_SOCKET_TEST( -- [AC_DEFINE(HAVE_ABSTRACT_SOCKETS, 1, [Have abstract socket namespace])], -- [] --) -+HAVE_ABSTRACT_SOCKETS = 1 - - want_ecore_ipc="yes"; - have_ecore_ipc="no"; + ECORE_CHECK_MODULE([Con], [yes]) diff --git a/packages/efl/edje-native_0.5.0.037.bb b/packages/efl/edje-native_0.5.0.038.bb index 4e878ab204..4e878ab204 100644 --- a/packages/efl/edje-native_0.5.0.037.bb +++ b/packages/efl/edje-native_0.5.0.038.bb diff --git a/packages/efl/edje-utils_0.5.0.037.bb b/packages/efl/edje-utils_0.5.0.038.bb index f8eb917e4d..f8eb917e4d 100644 --- a/packages/efl/edje-utils_0.5.0.037.bb +++ b/packages/efl/edje-utils_0.5.0.038.bb diff --git a/packages/efl/edje_0.5.0.037.bb b/packages/efl/edje_0.5.0.038.bb index d51dd119e4..d51dd119e4 100644 --- a/packages/efl/edje_0.5.0.037.bb +++ b/packages/efl/edje_0.5.0.038.bb diff --git a/packages/efl/eet-native_0.9.10.037.bb b/packages/efl/eet-native_0.9.10.038.bb index 9e2426ca9f..9e2426ca9f 100644 --- a/packages/efl/eet-native_0.9.10.037.bb +++ b/packages/efl/eet-native_0.9.10.038.bb diff --git a/packages/efl/eet_0.9.10.037.bb b/packages/efl/eet_0.9.10.038.bb index 6e6032e098..6e6032e098 100644 --- a/packages/efl/eet_0.9.10.037.bb +++ b/packages/efl/eet_0.9.10.038.bb diff --git a/packages/efl/efreet-native_0.0.3.002.bb b/packages/efl/efreet-native_0.0.3.002.bb new file mode 100644 index 0000000000..470d9e2dab --- /dev/null +++ b/packages/efl/efreet-native_0.0.3.002.bb @@ -0,0 +1,3 @@ +require efreet_${PV}.bb +inherit native +DEPENDS = "ecore-native" diff --git a/packages/efl/efreet_0.0.3.002.bb b/packages/efl/efreet_0.0.3.002.bb new file mode 100644 index 0000000000..2ef049eed7 --- /dev/null +++ b/packages/efl/efreet_0.0.3.002.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "An implementation of freedesktop.org specs for the EFL" +DEPENDS = "virtual/ecore" +LICENSE = "BSD" +PR = "r0" + +inherit efl + +headers += "efreet_base.h efreet_desktop.h efreet_icon.h efreet_ini.h efreet_menu.h efreet_private.h efreet_utils.h efreet_xml.h" diff --git a/packages/efl/embryo-native_0.9.1.037.bb b/packages/efl/embryo-native_0.9.1.038.bb index 76fe80fe3d..76fe80fe3d 100644 --- a/packages/efl/embryo-native_0.9.1.037.bb +++ b/packages/efl/embryo-native_0.9.1.038.bb diff --git a/packages/efl/embryo-utils_0.9.1.037.bb b/packages/efl/embryo-utils_0.9.1.038.bb index d507c53cce..d507c53cce 100644 --- a/packages/efl/embryo-utils_0.9.1.037.bb +++ b/packages/efl/embryo-utils_0.9.1.038.bb diff --git a/packages/efl/embryo_0.9.1.037.bb b/packages/efl/embryo_0.9.1.038.bb index 0009c0a149..0009c0a149 100644 --- a/packages/efl/embryo_0.9.1.037.bb +++ b/packages/efl/embryo_0.9.1.038.bb diff --git a/packages/efl/epeg_0.9.0.007.bb b/packages/efl/epeg_0.9.0.008.bb index c35ec63606..c35ec63606 100644 --- a/packages/efl/epeg_0.9.0.007.bb +++ b/packages/efl/epeg_0.9.0.008.bb diff --git a/packages/efl/epsilon_0.3.0.007.bb b/packages/efl/epsilon_0.3.0.008.bb index efadecbf90..1fd7c88744 100644 --- a/packages/efl/epsilon_0.3.0.007.bb +++ b/packages/efl/epsilon_0.3.0.008.bb @@ -8,8 +8,8 @@ inherit efl PR = "r1" SRC_URI += "file://compile-fix.patch;patch=1 \ - file://server-is-not-client.patch;patch=1 \ ${E_CVS};module=e17/libs/epsilon/m4;date=20060101" +# file://server-is-not-client.patch;patch=1 \ do_configure_prepend() { install -d "${S}/m4" diff --git a/packages/efl/esmart-fb_0.9.0.007.bb b/packages/efl/esmart-fb_0.9.0.008.bb index a2fab3ca09..a2fab3ca09 100644 --- a/packages/efl/esmart-fb_0.9.0.007.bb +++ b/packages/efl/esmart-fb_0.9.0.008.bb diff --git a/packages/efl/esmart-x11_0.9.0.007.bb b/packages/efl/esmart-x11_0.9.0.008.bb index 7b80b581a1..7b80b581a1 100644 --- a/packages/efl/esmart-x11_0.9.0.007.bb +++ b/packages/efl/esmart-x11_0.9.0.008.bb diff --git a/packages/efl/evas-fb_0.9.9.037.bb b/packages/efl/evas-fb_0.9.9.038.bb index 4acc857982..4acc857982 100644 --- a/packages/efl/evas-fb_0.9.9.037.bb +++ b/packages/efl/evas-fb_0.9.9.038.bb diff --git a/packages/efl/evas-native_0.9.9.037.bb b/packages/efl/evas-native_0.9.9.038.bb index 68dacbc809..68dacbc809 100644 --- a/packages/efl/evas-native_0.9.9.037.bb +++ b/packages/efl/evas-native_0.9.9.038.bb diff --git a/packages/efl/evas-x11_0.9.9.037.bb b/packages/efl/evas-x11_0.9.9.038.bb index 765a8b73d4..765a8b73d4 100644 --- a/packages/efl/evas-x11_0.9.9.037.bb +++ b/packages/efl/evas-x11_0.9.9.038.bb diff --git a/packages/efl/evas.inc b/packages/efl/evas.inc index 5e34bb3014..f708200071 100644 --- a/packages/efl/evas.inc +++ b/packages/efl/evas.inc @@ -13,8 +13,8 @@ export FREETYPE_CONFIG = "${STAGING_BINDIR_CROSS}/freetype-config" SRC_URI = "http://enlightenment.freedesktop.org/files/evas-${PV}.tar.gz \ file://fix-configure.patch;patch=1 \ - file://pagesize.patch;patch=1 \ ${E_CVS};module=e17/libs/evas/m4;date=20060101" +# file://pagesize.patch;patch=1 \ S = "${WORKDIR}/evas-${PV}" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/evas" diff --git a/packages/efl/ewl_0.0.4.007.bb b/packages/efl/ewl_0.5.1.008.bb index 3a9313cb59..3a9313cb59 100644 --- a/packages/efl/ewl_0.0.4.007.bb +++ b/packages/efl/ewl_0.5.1.008.bb diff --git a/packages/efl/imlib2-fb_1.2.2.001.bb b/packages/efl/imlib2-fb_1.3.0.001.bb index f2ee48f5d9..f2ee48f5d9 100644 --- a/packages/efl/imlib2-fb_1.2.2.001.bb +++ b/packages/efl/imlib2-fb_1.3.0.001.bb diff --git a/packages/efl/imlib2-native_1.2.2.001.bb b/packages/efl/imlib2-native_1.3.0.001.bb index 65c5b672b2..65c5b672b2 100644 --- a/packages/efl/imlib2-native_1.2.2.001.bb +++ b/packages/efl/imlib2-native_1.3.0.001.bb diff --git a/packages/efl/imlib2-x11_1.2.2.001.bb b/packages/efl/imlib2-x11_1.3.0.001.bb index 67ed947e08..67ed947e08 100644 --- a/packages/efl/imlib2-x11_1.2.2.001.bb +++ b/packages/efl/imlib2-x11_1.3.0.001.bb diff --git a/packages/ipkg-utils/ipkg-utils-native/.mtn2git_empty b/packages/elfutils/elfutils-0.127/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/ipkg-utils/ipkg-utils-native/.mtn2git_empty +++ b/packages/elfutils/elfutils-0.127/.mtn2git_empty diff --git a/packages/elfutils/elfutils-0.108/warnings.patch b/packages/elfutils/elfutils-0.127/warnings.patch index 9de027ee26..c2e7fc2f3d 100644 --- a/packages/elfutils/elfutils-0.108/warnings.patch +++ b/packages/elfutils/elfutils-0.127/warnings.patch @@ -2,7 +2,7 @@ Index: elfutils-0.108/configure.ac =================================================================== --- elfutils-0.108.orig/configure.ac 2006-04-10 19:18:34.000000000 +0100 +++ elfutils-0.108/configure.ac 2006-04-10 19:19:33.000000000 +0100 -@@ -49,6 +49,10 @@ +@@ -55,6 +55,10 @@ dnl Add all the languages for which translations are available. ALL_LINGUAS= @@ -17,7 +17,7 @@ Index: elfutils-0.108/lib/Makefile.am =================================================================== --- elfutils-0.108.orig/lib/Makefile.am 2006-04-10 19:18:34.000000000 +0100 +++ elfutils-0.108/lib/Makefile.am 2006-04-10 19:19:33.000000000 +0100 -@@ -21,7 +21,7 @@ +@@ -30,7 +30,7 @@ else AM_CFLAGS = endif @@ -28,15 +28,16 @@ Index: elfutils-0.108/lib/Makefile.am noinst_LIBRARIES = libeu.a Index: elfutils-0.108/libasm/Makefile.am =================================================================== ---- elfutils-0.108.orig/libasm/Makefile.am 2006-04-10 19:18:34.000000000 +0100 -+++ elfutils-0.108/libasm/Makefile.am 2006-04-10 19:19:33.000000000 +0100 -@@ -18,7 +18,7 @@ +--- elfutils-0.127.orig/libasm/Makefile.am 2006-04-10 19:18:34.000000000 +0100 ++++ elfutils-0.127/libasm/Makefile.am 2006-04-10 19:19:33.000000000 +0100 +@@ -30,7 +30,7 @@ else AM_CFLAGS = endif --AM_CFLAGS += -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 -+AM_CFLAGS += -Wshadow -Wunused -Wformat=2 - INCLUDES = -I. -I$(srcdir) -I.. -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \ +-AM_CFLAGS += -std=gnu99 -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 ++AM_CFLAGS += -std=gnu99 -Wshadow -Wunused -Wformat=2 + INCLUDES = -I. -I$(srcdir) -I.. \ + -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl -I$(top_srcdir)/libdw\ -I$(top_srcdir)/lib GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) Index: elfutils-0.108/libcpu/Makefile.am @@ -91,28 +92,6 @@ Index: elfutils-0.108/libelf/Makefile.am $($(*F)_CFLAGS) INCLUDES = -I$(srcdir) -I$(top_srcdir)/lib -I.. GCC_INCLUDE = -I$(shell $(CC) -print-file-name=include) -Index: elfutils-0.108/src/Makefile.am -=================================================================== ---- elfutils-0.108.orig/src/Makefile.am 2006-04-10 19:18:34.000000000 +0100 -+++ elfutils-0.108/src/Makefile.am 2006-04-10 19:20:19.000000000 +0100 -@@ -15,14 +15,12 @@ - DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H $(YYDEBUG) \ - -DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\" - if MUDFLAP --AM_CFLAGS = -Wall -Wshadow -Wunused -Wextra -std=gnu99 -fmudflap \ -+AM_CFLAGS = -Wshadow -Wunused -std=gnu99 -fmudflap \ - $(native_ld_cflags) $(if $($(*F)_no_Wunused),,-Wunused) \ - $(if $($(*F)_no_Wformat),,-Wformat=2) - else --AM_CFLAGS = -Wall -Wshadow -std=gnu99 $(native_ld_cflags) \ -- $(if $($(*F)_no_Werror),,-Werror) \ -- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ -- $(if $($(*F)_no_Wformat),,-Wformat=2) -+AM_CFLAGS = -Wshadow -std=gnu99 $(native_ld_cflags) \ -+ $(if $($(*F)_no_Werror),,-Werror) - endif - if MUDFLAP - libmudflap = -lmudflap Index: elfutils-0.108/tests/Makefile.am =================================================================== --- elfutils-0.108.orig/tests/Makefile.am 2006-04-10 19:18:34.000000000 +0100 @@ -121,12 +100,13 @@ Index: elfutils-0.108/tests/Makefile.am ## DEFS = -DHAVE_CONFIG_H -D_GNU_SOURCE if MUDFLAP --AM_CFLAGS = -Wall -Werror -std=gnu99 -fmudflap\ +-AM_CFLAGS = -Wall -Werror -Wextra -std=gnu99 -fmudflap\ +AM_CFLAGS = -std=gnu99 -fmudflap\ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) + BUILD_RPATH = \$$ORIGIN/../backends else --AM_CFLAGS = -Wall -Werror -std=gnu99 \ +-AM_CFLAGS = -Wall -Werror -Wextra -std=gnu99 \ +AM_CFLAGS = -std=gnu99 \ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) - AM_LDFLAGS = -Wl,-rpath,\$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../libebl:\$$ORIGIN/../libelf + BUILT_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf endif diff --git a/packages/elfutils/elfutils_0.108.bb b/packages/elfutils/elfutils_0.108.bb deleted file mode 100644 index 83acc7dccb..0000000000 --- a/packages/elfutils/elfutils_0.108.bb +++ /dev/null @@ -1,36 +0,0 @@ -SECTION = "base" -LICENSE = "OSL" -DESCRIPTION = "A collection of utilities and DSOs to handle compiled objects." -DEPENDS = "libtool" - -SRC_URI = "http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/elfutils-${PV}.tar.gz \ - file://warnings.patch;patch=1" - -inherit autotools - -SOV = "${PV}" -do_stage () { - install -m 0644 libelf/libelf.a ${STAGING_LIBDIR}/libelf.a - install -m 0755 libelf/libelf.so.1 ${STAGING_LIBDIR}/libelf-${SOV}.so - ln -sf libelf-${SOV}.so ${STAGING_LIBDIR}/libelf.so.1 - ln -sf libelf.so.1 ${STAGING_LIBDIR}/libelf.so - install -m 0644 libasm/libasm.a ${STAGING_LIBDIR}/libasm.a - install -m 0755 libasm/libasm.so.1 ${STAGING_LIBDIR}/libasm-${SOV}.so - ln -sf libasm-${SOV}.so ${STAGING_LIBDIR}/libasm.so.1 - ln -sf libasm.so.1 ${STAGING_LIBDIR}/libasm.so - install -m 0644 libdw/libdw.a ${STAGING_LIBDIR}/libdw.a - install -m 0755 libdw/libdw.so.1 ${STAGING_LIBDIR}/libdw-${SOV}.so - ln -sf libdw-${SOV}.so ${STAGING_LIBDIR}/libdw.so.1 - ln -sf libdw.so.1 ${STAGING_LIBDIR}/libdw.so - install -m 0644 libebl/libebl.a ${STAGING_LIBDIR}/libebl.a - install -d ${STAGING_LIBDIR}/elfutils/ - install -m 0755 libebl/libebl_*.so ${STAGING_LIBDIR}/elfutils/ - - install -m 0644 ${S}/libelf/libelf.h ${STAGING_INCDIR}/ - install -m 0644 ${S}/libelf/gelf.h ${STAGING_INCDIR}/ - install -m 0644 ${S}/libelf/nlist.h ${STAGING_INCDIR}/ - install -d ${STAGING_INCDIR}/elfutils - install -m 0644 ${S}/libebl/libebl.h ${STAGING_INCDIR}/elfutils/ - install -m 0644 ${S}/libdw/libdw.h ${STAGING_INCDIR}/elfutils/ - install -m 0644 ${S}/libasm/libasm.h ${STAGING_INCDIR}/elfutils/ -} diff --git a/packages/elfutils/elfutils_0.127.bb b/packages/elfutils/elfutils_0.127.bb new file mode 100644 index 0000000000..22f3b0ae46 --- /dev/null +++ b/packages/elfutils/elfutils_0.127.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "A collection of utilities and DSOs to handle compiled objects." +SECTION = "base" +LICENSE = "OSL" +DEPENDS = "libtool" + +SRC_URI = "http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/elfutils-${PV}.tar.gz \ + file://warnings.patch;patch=1" + +inherit autotools + +do_stage () { + autotools_stage_all +} + + 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/fbreader/fbreader_0.8.2a.bb b/packages/fbreader/fbreader_0.8.2a.bb index b21aa7f930..3a0dc543e8 100644 --- a/packages/fbreader/fbreader_0.8.2a.bb +++ b/packages/fbreader/fbreader_0.8.2a.bb @@ -8,7 +8,7 @@ PR = "r3" # The RESOLUTION is defined at compile time which makes # this package MACHINE specific. -PACKAGE_ARCH_${PN} = "${MACHINE}" +PACKAGE_ARCH_${PN} = "${MACHINE_ARCH}" SRC_URI = "http://only.mawhrin.net/fbreader/fbreader-sources-${PV}.tgz \ file://fbreader-0.8.2a_buildsys_oe.patch;patch=1 \ @@ -21,11 +21,11 @@ READER_GUI = "gpe" READER_STATUS = "release" # Set device specific overrides -RESOLUTION_fic-gta01 = "480x640" +READER_RESOLUTION_fic-gta01 = "480x640" FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary" -CFLAGS_append = " RESOLUTION=${RESOLUTION} INSTALLDIR=/usr" +CFLAGS_append = " RESOLUTION=${READER_RESOLUTION} INSTALLDIR=/usr" EXTRA_OEMAKE = "CC='${CXX}' LD='${CXX}' OE_CFLAGS='${CXXFLAGS}' INCPATH='${STAGING_INCDIR}' LIBPATH='${STAGING_LIBDIR}'" inherit pkgconfig @@ -45,6 +45,6 @@ do_configure() { } do_install () { - cd fbreader/${READER_ARCH}; oe_runmake .builddir RESOLUTION=${RESOLUTION} + cd fbreader/${READER_ARCH}; oe_runmake .builddir RESOLUTION=${READER_RESOLUTION} cp -r data/* ${D} } diff --git a/packages/ftpd-topfield/ftpd-topfield_0.7.3.bb b/packages/ftpd-topfield/ftpd-topfield_0.7.4.bb index f86524b8cf..75d963f6da 100755 --- a/packages/ftpd-topfield/ftpd-topfield_0.7.3.bb +++ b/packages/ftpd-topfield/ftpd-topfield_0.7.4.bb @@ -4,8 +4,8 @@ HOMEPAGE = "http://sourceforge.net/projects/puppy" SECTION = "net" LICENSE = "MIT" -SRC_URI = "cvs://anonymous@puppy.cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=ftpd-topfield;tag=FTPD_TOPFIELD_0_7_3 \ - cvs://anonymous@puppy.cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=libtopfield;tag=FTPD_TOPFIELD_0_7_3 \ +SRC_URI = "cvs://anonymous@puppy.cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=ftpd-topfield;tag=FTPD_TOPFIELD_0_7_4 \ + cvs://anonymous@puppy.cvs.sourceforge.net/cvsroot/puppy;method=pserver;module=libtopfield;tag=FTPD_TOPFIELD_0_7_4 \ file://init" # The source will end up in the subdirectory 'ftpd-topfield' - no release name diff --git a/packages/gaim/pidgin.inc b/packages/gaim/pidgin.inc index 37fa996b53..072100fdf0 100644 --- a/packages/gaim/pidgin.inc +++ b/packages/gaim/pidgin.inc @@ -3,7 +3,7 @@ DESCRIPTION = "multi-protocol instant messaging client" LICENSE = "GPL" DEPENDS = "gtk+ ncurses gnutls virtual/libintl gstreamer dbus" -RRECOMMENDS_${PN} = "libpurple-protocol-irc libpurple-protocol-jabber" +RRECOMMENDS_${PN} = "libpurple-protocol-irc libpurple-protocol-xmpp" EXTRA_OECONF = " \ --disable-audio \ @@ -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.1.bb index a39e7aeaf9..df982a9bf4 100644 --- a/packages/gaim/pidgin_2.0.0.bb +++ b/packages/gaim/pidgin_2.0.1.bb @@ -5,4 +5,4 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \ file://gconf-no-errors.patch;patch=1 \ " - +PR = "r1" diff --git a/packages/gcc/gcc-4.0.2/gcc-4.0.2-atmel.0.99.2.patch b/packages/gcc/gcc-4.0.2/gcc-4.0.2-atmel.0.99.2.patch new file mode 100644 index 0000000000..273846f565 --- /dev/null +++ b/packages/gcc/gcc-4.0.2/gcc-4.0.2-atmel.0.99.2.patch @@ -0,0 +1,21330 @@ +diff -Nrup --ignore-space-change gcc-4.0.2/config.sub gcc-4.0.2-atmel.0.99.2/config.sub +--- gcc-4.0.2/config.sub 2005-04-25 12:36:56.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/config.sub 2005-06-07 14:59:22.000000000 +0200 +@@ -1,9 +1,9 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +-timestamp='2005-04-22' ++timestamp='2005-06-07' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -70,7 +70,7 @@ Report bugs and patches to <config-patch + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO +@@ -230,8 +230,7 @@ case $basic_machine in + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ +- | bfin \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ +@@ -263,8 +262,7 @@ case $basic_machine in + | pyramid \ + | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b \ ++ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ +@@ -299,8 +297,8 @@ case $basic_machine in + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* \ +- | bfin-* | bs2000-* \ ++ | avr-* | avr32-* \ ++ | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ +@@ -338,8 +336,7 @@ case $basic_machine in + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ +- | sparclite-* \ ++ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +diff -Nrup --ignore-space-change gcc-4.0.2/configure gcc-4.0.2-atmel.0.99.2/configure +--- gcc-4.0.2/configure 2005-09-13 09:01:28.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/configure 2006-01-20 14:31:15.000000000 +0100 +@@ -1284,6 +1284,9 @@ case "${target}" in + arm-*-riscix*) + noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" + ;; ++ avr32-*-*) ++ noconfigdirs="$noconfigdirs target-libiberty target-libmudflap target-libffi ${libgcj}" ++ ;; + avr-*-*) + noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + ;; +@@ -1804,7 +1807,7 @@ else + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1808: checking for $ac_word" >&5 ++echo "configure:1811: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1834,7 +1837,7 @@ if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. + set dummy cc; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1838: checking for $ac_word" >&5 ++echo "configure:1841: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1885,7 +1888,7 @@ fi + # Extract the first word of "cl", so it can be a program name with args. + set dummy cl; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:1889: checking for $ac_word" >&5 ++echo "configure:1892: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1917,7 +1920,7 @@ fi + fi + + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +-echo "configure:1921: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ++echo "configure:1924: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + + ac_ext=c + # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +@@ -1928,12 +1931,12 @@ cross_compiling=$ac_cv_prog_cc_cross + + cat > conftest.$ac_ext << EOF + +-#line 1932 "configure" ++#line 1935 "configure" + #include "confdefs.h" + + main(){return(0);} + EOF +-if { (eval echo configure:1937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:1940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then +@@ -1959,12 +1962,12 @@ if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } + fi + echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +-echo "configure:1963: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 ++echo "configure:1966: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 + echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 + cross_compiling=$ac_cv_prog_cc_cross + + echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +-echo "configure:1968: checking whether we are using GNU C" >&5 ++echo "configure:1971: checking whether we are using GNU C" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -1973,7 +1976,7 @@ else + yes; + #endif + EOF +-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1977: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes + else + ac_cv_prog_gcc=no +@@ -1992,7 +1995,7 @@ ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +-echo "configure:1996: checking whether ${CC-cc} accepts -g" >&5 ++echo "configure:1999: checking whether ${CC-cc} accepts -g" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2059,7 +2062,7 @@ fi + # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args. + set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2063: checking for $ac_word" >&5 ++echo "configure:2066: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2091,7 +2094,7 @@ if test -n "$ac_tool_prefix"; then + # Extract the first word of "gnatbind", so it can be a program name with args. + set dummy gnatbind; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2095: checking for $ac_word" >&5 ++echo "configure:2098: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2124,7 +2127,7 @@ fi + fi + + echo $ac_n "checking whether compiler driver understands Ada""... $ac_c" 1>&6 +-echo "configure:2128: checking whether compiler driver understands Ada" >&5 ++echo "configure:2131: checking whether compiler driver understands Ada" >&5 + if eval "test \"`echo '$''{'acx_cv_cc_gcc_supports_ada'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2156,7 +2159,7 @@ else + fi + + echo $ac_n "checking how to compare bootstrapped objects""... $ac_c" 1>&6 +-echo "configure:2160: checking how to compare bootstrapped objects" >&5 ++echo "configure:2163: checking how to compare bootstrapped objects" >&5 + if eval "test \"`echo '$''{'gcc_cv_prog_cmp_skip'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2254,9 +2257,9 @@ saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $gmpinc" + # Check GMP actually works + echo $ac_n "checking for correct version of gmp.h""... $ac_c" 1>&6 +-echo "configure:2258: checking for correct version of gmp.h" >&5 ++echo "configure:2261: checking for correct version of gmp.h" >&5 + cat > conftest.$ac_ext <<EOF +-#line 2260 "configure" ++#line 2263 "configure" + #include "confdefs.h" + #include "gmp.h" + int main() { +@@ -2267,7 +2270,7 @@ choke me + + ; return 0; } + EOF +-if { (eval echo configure:2271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++if { (eval echo configure:2274: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 + else +@@ -2280,12 +2283,12 @@ rm -f conftest* + + if test x"$have_gmp" = xyes; then + echo $ac_n "checking for MPFR""... $ac_c" 1>&6 +-echo "configure:2284: checking for MPFR" >&5 ++echo "configure:2287: checking for MPFR" >&5 + + saved_LIBS="$LIBS" + LIBS="$LIBS $gmplibs" + cat > conftest.$ac_ext <<EOF +-#line 2289 "configure" ++#line 2292 "configure" + #include "confdefs.h" + #include <gmp.h> + #include <mpfr.h> +@@ -2293,7 +2296,7 @@ int main() { + mpfr_t n; mpfr_init(n); + ; return 0; } + EOF +-if { (eval echo configure:2297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++if { (eval echo configure:2300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 + else +@@ -2789,7 +2792,7 @@ do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2793: checking for $ac_word" >&5 ++echo "configure:2796: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_BISON'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2824,7 +2827,7 @@ do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2828: checking for $ac_word" >&5 ++echo "configure:2831: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_YACC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2859,7 +2862,7 @@ do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2863: checking for $ac_word" >&5 ++echo "configure:2866: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_M4'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2894,7 +2897,7 @@ do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2898: checking for $ac_word" >&5 ++echo "configure:2901: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_FLEX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2929,7 +2932,7 @@ do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2933: checking for $ac_word" >&5 ++echo "configure:2936: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_LEX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -2964,7 +2967,7 @@ do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:2968: checking for $ac_word" >&5 ++echo "configure:2971: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_MAKEINFO'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3611,7 +3614,7 @@ test -n "$target_alias" && ncn_target_to + # Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args. + set dummy ${ncn_tool_prefix}ar; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3615: checking for $ac_word" >&5 ++echo "configure:3618: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3644,7 +3647,7 @@ if test -z "$ac_cv_prog_AR" ; then + # Extract the first word of "ar", so it can be a program name with args. + set dummy ar; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3648: checking for $ac_word" >&5 ++echo "configure:3651: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3683,7 +3686,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args. + set dummy ${ncn_tool_prefix}as; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3687: checking for $ac_word" >&5 ++echo "configure:3690: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3716,7 +3719,7 @@ if test -z "$ac_cv_prog_AS" ; then + # Extract the first word of "as", so it can be a program name with args. + set dummy as; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3720: checking for $ac_word" >&5 ++echo "configure:3723: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3755,7 +3758,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args. + set dummy ${ncn_tool_prefix}dlltool; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3759: checking for $ac_word" >&5 ++echo "configure:3762: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3788,7 +3791,7 @@ if test -z "$ac_cv_prog_DLLTOOL" ; then + # Extract the first word of "dlltool", so it can be a program name with args. + set dummy dlltool; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3792: checking for $ac_word" >&5 ++echo "configure:3795: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3827,7 +3830,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args. + set dummy ${ncn_tool_prefix}ld; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3831: checking for $ac_word" >&5 ++echo "configure:3834: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3860,7 +3863,7 @@ if test -z "$ac_cv_prog_LD" ; then + # Extract the first word of "ld", so it can be a program name with args. + set dummy ld; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3864: checking for $ac_word" >&5 ++echo "configure:3867: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3899,7 +3902,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args. + set dummy ${ncn_tool_prefix}nm; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3903: checking for $ac_word" >&5 ++echo "configure:3906: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3932,7 +3935,7 @@ if test -z "$ac_cv_prog_NM" ; then + # Extract the first word of "nm", so it can be a program name with args. + set dummy nm; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3936: checking for $ac_word" >&5 ++echo "configure:3939: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -3971,7 +3974,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args. + set dummy ${ncn_tool_prefix}ranlib; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:3975: checking for $ac_word" >&5 ++echo "configure:3978: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4004,7 +4007,7 @@ if test -z "$ac_cv_prog_RANLIB" ; then + # Extract the first word of "ranlib", so it can be a program name with args. + set dummy ranlib; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4008: checking for $ac_word" >&5 ++echo "configure:4011: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4043,7 +4046,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args. + set dummy ${ncn_tool_prefix}windres; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4047: checking for $ac_word" >&5 ++echo "configure:4050: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4076,7 +4079,7 @@ if test -z "$ac_cv_prog_WINDRES" ; then + # Extract the first word of "windres", so it can be a program name with args. + set dummy windres; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4080: checking for $ac_word" >&5 ++echo "configure:4083: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4115,7 +4118,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args. + set dummy ${ncn_tool_prefix}objcopy; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4119: checking for $ac_word" >&5 ++echo "configure:4122: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4148,7 +4151,7 @@ if test -z "$ac_cv_prog_OBJCOPY" ; then + # Extract the first word of "objcopy", so it can be a program name with args. + set dummy objcopy; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4152: checking for $ac_word" >&5 ++echo "configure:4155: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4187,7 +4190,7 @@ fi + # Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args. + set dummy ${ncn_tool_prefix}objdump; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4191: checking for $ac_word" >&5 ++echo "configure:4194: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4220,7 +4223,7 @@ if test -z "$ac_cv_prog_OBJDUMP" ; then + # Extract the first word of "objdump", so it can be a program name with args. + set dummy objdump; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4224: checking for $ac_word" >&5 ++echo "configure:4227: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4266,7 +4269,7 @@ fi + # Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}ar; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4270: checking for $ac_word" >&5 ++echo "configure:4273: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_AR_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4299,7 +4302,7 @@ if test -z "$ac_cv_prog_CONFIGURED_AR_FO + # Extract the first word of "ar", so it can be a program name with args. + set dummy ar; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4303: checking for $ac_word" >&5 ++echo "configure:4306: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_AR_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4338,7 +4341,7 @@ fi + # Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}as; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4342: checking for $ac_word" >&5 ++echo "configure:4345: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_AS_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4371,7 +4374,7 @@ if test -z "$ac_cv_prog_CONFIGURED_AS_FO + # Extract the first word of "as", so it can be a program name with args. + set dummy as; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4375: checking for $ac_word" >&5 ++echo "configure:4378: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_AS_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4410,7 +4413,7 @@ fi + # Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4414: checking for $ac_word" >&5 ++echo "configure:4417: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4443,7 +4446,7 @@ if test -z "$ac_cv_prog_CONFIGURED_DLLTO + # Extract the first word of "dlltool", so it can be a program name with args. + set dummy dlltool; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4447: checking for $ac_word" >&5 ++echo "configure:4450: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4482,7 +4485,7 @@ fi + # Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}ld; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4486: checking for $ac_word" >&5 ++echo "configure:4489: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_LD_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4515,7 +4518,7 @@ if test -z "$ac_cv_prog_CONFIGURED_LD_FO + # Extract the first word of "ld", so it can be a program name with args. + set dummy ld; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4519: checking for $ac_word" >&5 ++echo "configure:4522: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_LD_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4554,7 +4557,7 @@ fi + # Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}nm; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4558: checking for $ac_word" >&5 ++echo "configure:4561: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_NM_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4587,7 +4590,7 @@ if test -z "$ac_cv_prog_CONFIGURED_NM_FO + # Extract the first word of "nm", so it can be a program name with args. + set dummy nm; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4591: checking for $ac_word" >&5 ++echo "configure:4594: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_NM_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4626,7 +4629,7 @@ fi + # Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4630: checking for $ac_word" >&5 ++echo "configure:4633: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_RANLIB_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4659,7 +4662,7 @@ if test -z "$ac_cv_prog_CONFIGURED_RANLI + # Extract the first word of "ranlib", so it can be a program name with args. + set dummy ranlib; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4663: checking for $ac_word" >&5 ++echo "configure:4666: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_RANLIB_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4698,7 +4701,7 @@ fi + # Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}windres; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4702: checking for $ac_word" >&5 ++echo "configure:4705: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_WINDRES_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4731,7 +4734,7 @@ if test -z "$ac_cv_prog_CONFIGURED_WINDR + # Extract the first word of "windres", so it can be a program name with args. + set dummy windres; ac_word=$2 + echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +-echo "configure:4735: checking for $ac_word" >&5 ++echo "configure:4738: checking for $ac_word" >&5 + if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_WINDRES_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4816,7 +4819,7 @@ RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${ + NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} + + echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +-echo "configure:4820: checking whether to enable maintainer-specific portions of Makefiles" >&5 ++echo "configure:4823: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. + if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" +@@ -4863,7 +4866,7 @@ esac + # gcc for stageN-gcc and stagePREV-gcc for stage(N-1). In case this is not + # possible, however, we can resort to mv. + echo $ac_n "checking if symbolic links between directories work""... $ac_c" 1>&6 +-echo "configure:4867: checking if symbolic links between directories work" >&5 ++echo "configure:4870: checking if symbolic links between directories work" >&5 + if eval "test \"`echo '$''{'gcc_cv_prog_ln_s_dir'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 + else +@@ -4997,15 +5000,34 @@ trap 'rm -f $CONFIG_STATUS conftest*; ex + # Transform confdefs.h into DEFS. + # Protect against shell expansion while executing Makefile rules. + # Protect against Makefile macro expansion. +-cat > conftest.defs <<\EOF +-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +-s%\[%\\&%g +-s%\]%\\&%g +-s%\$%$$%g +-EOF +-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +-rm -f conftest.defs ++# ++# If the first sed substitution is executed (which looks for macros that ++# take arguments), then we branch to the quote section. Otherwise, ++# look for a macro that doesn't take arguments. ++cat >confdef2opt.sed <<\_ACEOF ++t clear ++: clear ++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g ++t quote ++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g ++t quote ++d ++: quote ++s,[ `~#$^&*(){}\\|;'"<>?],\\&,g ++s,\[,\\&,g ++s,\],\\&,g ++s,\$,$$,g ++p ++_ACEOF ++# We use echo to avoid assuming a particular line-breaking character. ++# The extra dot is to prevent the shell from consuming trailing ++# line-breaks from the sub-command output. A line-break within ++# single-quotes doesn't work because, if this script is created in a ++# platform that uses two characters for line-breaks (e.g., DOS), tr ++# would break. ++ac_LF_and_DOT=`echo; echo .` ++DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` ++rm -f confdef2opt.sed + + + # Without the "./", some shells look in PATH for config.status. +diff -Nrup --ignore-space-change gcc-4.0.2/configure.in gcc-4.0.2-atmel.0.99.2/configure.in +--- gcc-4.0.2/configure.in 2005-09-13 09:01:28.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/configure.in 2006-01-20 14:31:15.000000000 +0100 +@@ -493,6 +493,9 @@ case "${target}" in + arm-*-riscix*) + noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" + ;; ++ avr32-*-*) ++ noconfigdirs="$noconfigdirs target-libiberty target-libmudflap target-libffi ${libgcj}" ++ ;; + avr-*-*) + noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + ;; +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/ada/s-tpopsp-rtems.adb gcc-4.0.2-atmel.0.99.2/gcc/ada/s-tpopsp-rtems.adb +--- gcc-4.0.2/gcc/ada/s-tpopsp-rtems.adb 2005-01-27 12:56:57.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/ada/s-tpopsp-rtems.adb 2005-07-15 16:26:03.000000000 +0200 +@@ -7,7 +7,7 @@ + -- -- + -- B o d y -- + -- -- +--- $Revision: 1.2 $ ++-- $Revision: 3484 $ + -- -- + -- Copyright (C) 1991-2003, Florida State University -- + -- -- +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/builtins.c gcc-4.0.2-atmel.0.99.2/gcc/builtins.c +--- gcc-4.0.2/gcc/builtins.c 2005-08-28 13:08:55.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/builtins.c 2006-03-23 13:29:00.000000000 +0100 +@@ -8387,7 +8387,7 @@ validate_arglist (tree arglist, ...) + + do + { +- code = va_arg (ap, enum tree_code); ++ code = va_arg (ap, int); + switch (code) + { + case 0: +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/calls.c gcc-4.0.2-atmel.0.99.2/gcc/calls.c +--- gcc-4.0.2/gcc/calls.c 2005-07-25 18:36:33.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/calls.c 2006-03-23 13:29:00.000000000 +0100 +@@ -3353,7 +3353,7 @@ emit_library_call_value_1 (int retval, r + for (; count < nargs; count++) + { + rtx val = va_arg (p, rtx); +- enum machine_mode mode = va_arg (p, enum machine_mode); ++ enum machine_mode mode = va_arg (p, int); + + /* We cannot convert the arg value to the mode the library wants here; + must do it earlier where we know the signedness of the arg. */ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/avr32.c gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32.c +--- gcc-4.0.2/gcc/config/avr32/avr32.c 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32.c 2006-11-24 17:13:09.000000000 +0100 +@@ -0,0 +1,7276 @@ ++/* ++ Target hooks and helper functions for AVR32. ++ Copyright 2003-2006 Atmel Corporation. ++ ++ Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++ Initial porting by Anders dland. ++ ++ This file is part of GCC. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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 program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++#include "config.h" ++#include "system.h" ++#include "coretypes.h" ++#include "tm.h" ++#include "rtl.h" ++#include "tree.h" ++#include "obstack.h" ++#include "regs.h" ++#include "hard-reg-set.h" ++#include "real.h" ++#include "insn-config.h" ++#include "conditions.h" ++#include "output.h" ++#include "insn-attr.h" ++#include "flags.h" ++#include "reload.h" ++#include "function.h" ++#include "expr.h" ++#include "optabs.h" ++#include "toplev.h" ++#include "recog.h" ++#include "ggc.h" ++#include "except.h" ++#include "c-pragma.h" ++#include "integrate.h" ++#include "tm_p.h" ++#include "langhooks.h" ++ ++#include "target.h" ++#include "target-def.h" ++ ++#include <ctype.h> ++ ++/* Forward definitions of types. */ ++typedef struct minipool_node Mnode; ++typedef struct minipool_fixup Mfix; ++ ++/* Obstack for minipool constant handling. */ ++static struct obstack minipool_obstack; ++static char *minipool_startobj; ++static rtx minipool_vector_label; ++ ++/* True if we are currently building a constant table. */ ++int making_const_table; ++ ++/* Some forward function declarations */ ++static unsigned long avr32_isr_value (tree); ++static unsigned long avr32_compute_func_type (void); ++static tree avr32_handle_isr_attribute (tree *, tree, tree, int, bool *); ++static tree avr32_handle_acall_attribute (tree *, tree, tree, int, bool *); ++static tree avr32_handle_fndecl_attribute (tree * node, tree name, tree args, ++ int flags, bool * no_add_attrs); ++static void avr32_reorg (void); ++bool avr32_return_in_msb (tree type); ++bool avr32_vector_mode_supported (enum machine_mode mode); ++static void avr32_init_libfuncs (void); ++void avr32_load_pic_register (void); ++ ++ ++static void ++avr32_add_gc_roots (void) ++{ ++ gcc_obstack_init (&minipool_obstack); ++ minipool_startobj = (char *) obstack_alloc (&minipool_obstack, 0); ++} ++ ++ ++/* List of all known AVR32 parts */ ++static const struct part_type_s avr32_part_types[] = { ++ /* name, part_type, architecture type, macro */ ++ {"none", PART_TYPE_AVR32_NONE, ARCH_TYPE_AVR32_AP, "__AVR32__"}, ++ {"ap7000", PART_TYPE_AVR32_AP7000, ARCH_TYPE_AVR32_AP, "__AVR32_AP7000__"}, ++ {"ap7010", PART_TYPE_AVR32_AP7010, ARCH_TYPE_AVR32_AP, "__AVR32_AP7010__"}, ++ {"ap7020", PART_TYPE_AVR32_AP7020, ARCH_TYPE_AVR32_AP, "__AVR32_AP7020__"}, ++ {"uc3a0256", PART_TYPE_AVR32_UC3A0256, ARCH_TYPE_AVR32_UC, "__AVR32_UC3A0256__"}, ++ {"uc3a0512", PART_TYPE_AVR32_UC3A0512, ARCH_TYPE_AVR32_UC, "__AVR32_UC3A0512__"}, ++ {"uc3a1128", PART_TYPE_AVR32_UC3A1128, ARCH_TYPE_AVR32_UC, "__AVR32_UC3A1128__"}, ++ {"uc3a1256", PART_TYPE_AVR32_UC3A1256, ARCH_TYPE_AVR32_UC, "__AVR32_UC3A1256__"}, ++ {"uc3a1512", PART_TYPE_AVR32_UC3A1512, ARCH_TYPE_AVR32_UC, "__AVR32_UC3A1512__"}, ++ {NULL, 0, 0, NULL} ++}; ++ ++/* List of all known AVR32 architectures */ ++static const struct arch_type_s avr32_arch_types[] = { ++ /* name, architecture type, microarchitecture type, feature flags, macro */ ++ {"ap", ARCH_TYPE_AVR32_AP, UARCH_TYPE_AVR32B, FLAG_AVR32_HAS_DSP | ++ FLAG_AVR32_HAS_SIMD | FLAG_AVR32_HAS_UNALIGNED_WORD | ++ FLAG_AVR32_HAS_BRANCH_PRED, "__AVR32_AP__"}, ++ {"uc", ARCH_TYPE_AVR32_UC, UARCH_TYPE_AVR32A, ++ FLAG_AVR32_HAS_DSP | FLAG_AVR32_HAS_RMW, "__AVR32_UC__"}, ++ {NULL, 0, 0, 0, NULL} ++}; ++ ++/* Default arch name */ ++const char *avr32_arch_name = "ap"; ++const char *avr32_part_name = "none"; ++ ++const struct part_type_s *avr32_part; ++const struct arch_type_s *avr32_arch; ++ ++ ++/* Override command line options */ ++void ++avr32_override_options (void) ++{ ++ const struct part_type_s *part; ++ const struct arch_type_s *arch; ++ ++ /* Check if part type is set. */ ++ for (part = avr32_part_types; part->name; part++) ++ if (strcmp (part->name, avr32_part_name) == 0) ++ break; ++ ++ avr32_part = part; ++ ++ if (!part->name) ++ { ++ fprintf (stderr, "Unknown part `%s' specified\nKnown part names:\n", ++ avr32_part_name); ++ for (part = avr32_part_types; part->name; part++) ++ fprintf (stderr, "\t%s\n", part->name); ++ avr32_part = &avr32_part_types[PART_TYPE_AVR32_NONE]; ++ } ++ ++ avr32_arch = &avr32_arch_types[avr32_part->arch_type]; ++ ++ /* If part was set to "none" then check if arch was set. */ ++ if (strcmp (avr32_part->name, "none") == 0) ++ { ++ /* Check if arch type is set. */ ++ for (arch = avr32_arch_types; arch->name; arch++) ++ if (strcmp (arch->name, avr32_arch_name) == 0) ++ break; ++ ++ avr32_arch = arch; ++ ++ if (!arch->name) ++ { ++ fprintf (stderr, "Unknown arch `%s' specified\nKnown arch names:\n", ++ avr32_arch_name); ++ for (arch = avr32_arch_types; arch->name; arch++) ++ fprintf (stderr, "\t%s\n", arch->name); ++ avr32_arch = &avr32_arch_types[ARCH_TYPE_AVR32_AP]; ++ } ++ } ++ ++ /* If optimization level is two or greater, then align start of loops to a ++ word boundary since this will allow folding the first insn of the loop. ++ Do this only for targets supporting branch prediction. */ ++ if (optimize >= 2 && TARGET_BRANCH_PRED) ++ align_loops = 2; ++ ++ if (AVR32_ALWAYS_PIC) ++ flag_pic = 1; ++ ++ if (target_flags & AVR32_FLAG_NO_PIC) ++ flag_pic = 0; ++ ++ avr32_add_gc_roots (); ++} ++ ++ ++/* ++If defined, a function that outputs the assembler code for entry to a ++function. The prologue is responsible for setting up the stack frame, ++initializing the frame pointer register, saving registers that must be ++saved, and allocating size additional bytes of storage for the ++local variables. size is an integer. file is a stdio ++stream to which the assembler code should be output. ++ ++The label for the beginning of the function need not be output by this ++macro. That has already been done when the macro is run. ++ ++To determine which registers to save, the macro can refer to the array ++regs_ever_live: element r is nonzero if hard register ++r is used anywhere within the function. This implies the function ++prologue should save register r, provided it is not one of the ++call-used registers. (TARGET_ASM_FUNCTION_EPILOGUE must likewise use ++regs_ever_live.) ++ ++On machines that have ``register windows'', the function entry code does ++not save on the stack the registers that are in the windows, even if ++they are supposed to be preserved by function calls; instead it takes ++appropriate steps to ``push'' the register stack, if any non-call-used ++registers are used in the function. ++ ++On machines where functions may or may not have frame-pointers, the ++function entry code must vary accordingly; it must set up the frame ++pointer if one is wanted, and not otherwise. To determine whether a ++frame pointer is in wanted, the macro can refer to the variable ++frame_pointer_needed. The variable's value will be 1 at run ++time in a function that needs a frame pointer. (see Elimination). ++ ++The function entry code is responsible for allocating any stack space ++required for the function. This stack space consists of the regions ++listed below. In most cases, these regions are allocated in the ++order listed, with the last listed region closest to the top of the ++stack (the lowest address if STACK_GROWS_DOWNWARD is defined, and ++the highest address if it is not defined). You can use a different order ++for a machine if doing so is more convenient or required for ++compatibility reasons. Except in cases where required by standard ++or by a debugger, there is no reason why the stack layout used by GCC ++need agree with that used by other compilers for a machine. ++*/ ++ ++#undef TARGET_ASM_FUNCTION_PROLOGUE ++#define TARGET_ASM_FUNCTION_PROLOGUE avr32_target_asm_function_prologue ++ ++ ++#undef TARGET_DEFAULT_SHORT_ENUMS ++#define TARGET_DEFAULT_SHORT_ENUMS hook_bool_void_false ++ ++#undef TARGET_PROMOTE_FUNCTION_ARGS ++#define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_tree_true ++ ++#undef TARGET_PROMOTE_FUNCTION_RETURN ++#define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true ++ ++#undef TARGET_PROMOTE_PROTOTYPES ++#define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true ++ ++#undef TARGET_MUST_PASS_IN_STACK ++#define TARGET_MUST_PASS_IN_STACK avr32_must_pass_in_stack ++ ++#undef TARGET_PASS_BY_REFERENCE ++#define TARGET_PASS_BY_REFERENCE avr32_pass_by_reference ++ ++#undef TARGET_STRICT_ARGUMENT_NAMING ++#define TARGET_STRICT_ARGUMENT_NAMING avr32_strict_argument_naming ++ ++#undef TARGET_VECTOR_MODE_SUPPORTED_P ++#define TARGET_VECTOR_MODE_SUPPORTED_P avr32_vector_mode_supported ++ ++#undef TARGET_RETURN_IN_MEMORY ++#define TARGET_RETURN_IN_MEMORY avr32_return_in_memory ++ ++#undef TARGET_RETURN_IN_MSB ++#define TARGET_RETURN_IN_MSB avr32_return_in_msb ++ ++#undef TARGET_ARG_PARTIAL_BYTES ++#define TARGET_ARG_PARTIAL_BYTES avr32_arg_partial_bytes ++ ++#undef TARGET_STRIP_NAME_ENCODING ++#define TARGET_STRIP_NAME_ENCODING avr32_strip_name_encoding ++ ++#define streq(string1, string2) (strcmp (string1, string2) == 0) ++ ++#undef TARGET_ATTRIBUTE_TABLE ++#define TARGET_ATTRIBUTE_TABLE avr32_attribute_table ++ ++#undef TARGET_COMP_TYPE_ATTRIBUTES ++#define TARGET_COMP_TYPE_ATTRIBUTES avr32_comp_type_attributes ++ ++ ++#undef TARGET_RTX_COSTS ++#define TARGET_RTX_COSTS avr32_rtx_costs ++ ++#undef TARGET_CANNOT_FORCE_CONST_MEM ++#define TARGET_CANNOT_FORCE_CONST_MEM avr32_cannot_force_const_mem ++ ++#undef TARGET_ASM_INTEGER ++#define TARGET_ASM_INTEGER avr32_assemble_integer ++ ++/* ++ * Switches to the appropriate section for output of constant pool ++ * entry x in mode. You can assume that x is some kind of constant in ++ * RTL. The argument mode is redundant except in the case of a ++ * const_int rtx. Select the section by calling readonly_data_ section ++ * or one of the alternatives for other sections. align is the ++ * constant alignment in bits. ++ * ++ * The default version of this function takes care of putting symbolic ++ * constants in flag_ pic mode in data_section and everything else in ++ * readonly_data_section. ++ */ ++#undef TARGET_ASM_SELECT_RTX_SECTION ++#define TARGET_ASM_SELECT_RTX_SECTION avr32_select_rtx_section ++ ++ ++/* ++ * If non-null, this hook performs a target-specific pass over the ++ * instruction stream. The compiler will run it at all optimization ++ * levels, just before the point at which it normally does ++ * delayed-branch scheduling. ++ * ++ * The exact purpose of the hook varies from target to target. Some ++ * use it to do transformations that are necessary for correctness, ++ * such as laying out in-function constant pools or avoiding hardware ++ * hazards. Others use it as an opportunity to do some ++ * machine-dependent optimizations. ++ * ++ * You need not implement the hook if it has nothing to do. The ++ * default definition is null. ++ */ ++#undef TARGET_MACHINE_DEPENDENT_REORG ++#define TARGET_MACHINE_DEPENDENT_REORG avr32_reorg ++ ++/* Target hook for assembling integer objects. ++ Need to handle integer vectors */ ++static bool ++avr32_assemble_integer (rtx x, unsigned int size, int aligned_p) ++{ ++ if (avr32_vector_mode_supported (GET_MODE (x))) ++ { ++ int i, units; ++ ++ if (GET_CODE (x) != CONST_VECTOR) ++ abort (); ++ ++ units = CONST_VECTOR_NUNITS (x); ++ ++ switch (GET_MODE (x)) ++ { ++ case V2HImode: ++ size = 2; ++ break; ++ case V4QImode: ++ size = 1; ++ break; ++ default: ++ abort (); ++ } ++ ++ for (i = 0; i < units; i++) ++ { ++ rtx elt; ++ ++ elt = CONST_VECTOR_ELT (x, i); ++ assemble_integer (elt, size, i == 0 ? 32 : size * BITS_PER_UNIT, 1); ++ } ++ ++ return true; ++ } ++ ++ return default_assemble_integer (x, size, aligned_p); ++} ++ ++/* ++ * This target hook describes the relative costs of RTL expressions. ++ * ++ * The cost may depend on the precise form of the expression, which is ++ * available for examination in x, and the rtx code of the expression ++ * in which it is contained, found in outer_code. code is the ++ * expression code--redundant, since it can be obtained with GET_CODE ++ * (x). ++ * ++ * In implementing this hook, you can use the construct COSTS_N_INSNS ++ * (n) to specify a cost equal to n fast instructions. ++ * ++ * On entry to the hook, *total contains a default estimate for the ++ * cost of the expression. The hook should modify this value as ++ * necessary. Traditionally, the default costs are COSTS_N_INSNS (5) ++ * for multiplications, COSTS_N_INSNS (7) for division and modulus ++ * operations, and COSTS_N_INSNS (1) for all other operations. ++ * ++ * When optimizing for code size, i.e. when optimize_size is non-zero, ++ * this target hook should be used to estimate the relative size cost ++ * of an expression, again relative to COSTS_N_INSNS. ++ * ++ * The hook returns true when all subexpressions of x have been ++ * processed, and false when rtx_cost should recurse. ++ */ ++ ++/* Worker routine for avr32_rtx_costs. */ ++static inline int ++avr32_rtx_costs_1 (rtx x, enum rtx_code code ATTRIBUTE_UNUSED, ++ enum rtx_code outer ATTRIBUTE_UNUSED) ++{ ++ enum machine_mode mode = GET_MODE (x); ++ ++ switch (GET_CODE (x)) ++ { ++ case MEM: ++ /* Using pre decrement / post increment memory operations on the ++ avr32_uc architecture means that two writebacks must be performed ++ and hence two cycles are needed. */ ++ if (!optimize_size ++ && GET_MODE_SIZE (mode) <= 2 * UNITS_PER_WORD ++ && avr32_arch->arch_type == ARCH_TYPE_AVR32_UC ++ && (GET_CODE (XEXP (x, 0)) == PRE_DEC ++ || GET_CODE (XEXP (x, 0)) == POST_INC)) ++ return COSTS_N_INSNS (4); ++ ++ /* Memory costs quite a lot for the first word, but subsequent words ++ load at the equivalent of a single insn each. */ ++ if (GET_MODE_SIZE (mode) > UNITS_PER_WORD) ++ return COSTS_N_INSNS (2 + (GET_MODE_SIZE (mode) / UNITS_PER_WORD)); ++ ++ return COSTS_N_INSNS (3); ++ case SYMBOL_REF: ++ case CONST: ++ /* These are valid for the pseudo insns: lda.w and call which operates ++ on direct addresses. We assume that the cost of a lda.w is the same ++ as the cost of a ld.w insn. */ ++ return (outer == SET) ? COSTS_N_INSNS (3) : COSTS_N_INSNS (1); ++ case DIV: ++ case MOD: ++ case UDIV: ++ case UMOD: ++ return optimize_size ? COSTS_N_INSNS (1) : COSTS_N_INSNS (16); ++ ++ case ROTATE: ++ case ROTATERT: ++ if (mode == TImode) ++ return COSTS_N_INSNS (100); ++ ++ if (mode == DImode) ++ return COSTS_N_INSNS (10); ++ return COSTS_N_INSNS (4); ++ case ASHIFT: ++ case LSHIFTRT: ++ case ASHIFTRT: ++ case NOT: ++ if (mode == TImode) ++ return COSTS_N_INSNS (10); ++ ++ if (mode == DImode) ++ return COSTS_N_INSNS (4); ++ return COSTS_N_INSNS (1); ++ case PLUS: ++ case MINUS: ++ case NEG: ++ case COMPARE: ++ case ABS: ++ if (GET_MODE_CLASS (mode) == MODE_FLOAT) ++ return COSTS_N_INSNS (100); ++ ++ if (mode == TImode) ++ return COSTS_N_INSNS (50); ++ ++ if (mode == DImode) ++ return COSTS_N_INSNS (2); ++ return COSTS_N_INSNS (1); ++ ++ case MULT: ++ { ++ if (GET_MODE_CLASS (mode) == MODE_FLOAT) ++ return COSTS_N_INSNS (300); ++ ++ if (mode == TImode) ++ return COSTS_N_INSNS (16); ++ ++ if (mode == DImode) ++ return COSTS_N_INSNS (4); ++ ++ if (mode == HImode) ++ return COSTS_N_INSNS (2); ++ ++ return COSTS_N_INSNS (3); ++ } ++ case IF_THEN_ELSE: ++ if (GET_CODE (XEXP (x, 1)) == PC || GET_CODE (XEXP (x, 2)) == PC) ++ return COSTS_N_INSNS (4); ++ return COSTS_N_INSNS (1); ++ case SIGN_EXTEND: ++ case ZERO_EXTEND: ++ /* Sign/Zero extensions of registers cost quite much since these ++ instrcutions only take one register operand which means that gcc ++ often must insert some move instrcutions */ ++ if (mode == QImode || mode == HImode) ++ return (COSTS_N_INSNS (GET_CODE (XEXP (x, 0)) == MEM ? 0 : 1)); ++ return COSTS_N_INSNS (4); ++ case UNSPEC: ++ /* divmod operations */ ++ if (XINT (x, 1) == UNSPEC_UDIVMODSI4_INTERNAL ++ || XINT (x, 1) == UNSPEC_DIVMODSI4_INTERNAL) ++ { ++ return optimize_size ? COSTS_N_INSNS (1) : COSTS_N_INSNS (16); ++ } ++ /* Fallthrough */ ++ default: ++ return COSTS_N_INSNS (1); ++ } ++} ++ ++static bool ++avr32_rtx_costs (rtx x, int code, int outer_code, int *total) ++{ ++ *total = avr32_rtx_costs_1 (x, code, outer_code); ++ return true; ++} ++ ++ ++bool ++avr32_cannot_force_const_mem (rtx x ATTRIBUTE_UNUSED) ++{ ++ /* Do not want symbols in the constant pool when compiling pic or if using ++ address pseudo instructions. */ ++ return ((flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS) ++ && avr32_find_symbol (x) != NULL_RTX); ++} ++ ++ ++/* Table of machine attributes. */ ++const struct attribute_spec avr32_attribute_table[] = { ++ /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */ ++ /* Interrupt Service Routines have special prologue and epilogue ++ requirements. */ ++ {"isr", 0, 1, false, false, false, avr32_handle_isr_attribute}, ++ {"interrupt", 0, 1, false, false, false, avr32_handle_isr_attribute}, ++ {"acall", 0, 1, false, true, true, avr32_handle_acall_attribute}, ++ {"naked", 0, 0, true, false, false, avr32_handle_fndecl_attribute}, ++ {NULL, 0, 0, false, false, false, NULL} ++}; ++ ++ ++typedef struct ++{ ++ const char *const arg; ++ const unsigned long return_value; ++} ++isr_attribute_arg; ++ ++static const isr_attribute_arg isr_attribute_args[] = { ++ {"FULL", AVR32_FT_ISR_FULL}, ++ {"full", AVR32_FT_ISR_FULL}, ++ {"HALF", AVR32_FT_ISR_HALF}, ++ {"half", AVR32_FT_ISR_HALF}, ++ {"NONE", AVR32_FT_ISR_NONE}, ++ {"none", AVR32_FT_ISR_NONE}, ++ {"UNDEF", AVR32_FT_ISR_NONE}, ++ {"undef", AVR32_FT_ISR_NONE}, ++ {"SWI", AVR32_FT_ISR_NONE}, ++ {"swi", AVR32_FT_ISR_NONE}, ++ {NULL, AVR32_FT_ISR_NONE} ++}; ++ ++/* Returns the (interrupt) function type of the current ++ function, or AVR32_FT_UNKNOWN if the type cannot be determined. */ ++ ++static unsigned long ++avr32_isr_value (tree argument) ++{ ++ const isr_attribute_arg *ptr; ++ const char *arg; ++ ++ /* No argument - default to ISR_NONE. */ ++ if (argument == NULL_TREE) ++ return AVR32_FT_ISR_NONE; ++ ++ /* Get the value of the argument. */ ++ if (TREE_VALUE (argument) == NULL_TREE ++ || TREE_CODE (TREE_VALUE (argument)) != STRING_CST) ++ return AVR32_FT_UNKNOWN; ++ ++ arg = TREE_STRING_POINTER (TREE_VALUE (argument)); ++ ++ /* Check it against the list of known arguments. */ ++ for (ptr = isr_attribute_args; ptr->arg != NULL; ptr++) ++ if (streq (arg, ptr->arg)) ++ return ptr->return_value; ++ ++ /* An unrecognized interrupt type. */ ++ return AVR32_FT_UNKNOWN; ++} ++ ++ ++ ++/* ++These hooks specify assembly directives for creating certain kinds ++of integer object. The TARGET_ASM_BYTE_OP directive creates a ++byte-sized object, the TARGET_ASM_ALIGNED_HI_OP one creates an ++aligned two-byte object, and so on. Any of the hooks may be ++NULL, indicating that no suitable directive is available. ++ ++The compiler will print these strings at the start of a new line, ++followed immediately by the object's initial value. In most cases, ++the string should contain a tab, a pseudo-op, and then another tab. ++*/ ++#undef TARGET_ASM_BYTE_OP ++#define TARGET_ASM_BYTE_OP "\t.byte\t" ++#undef TARGET_ASM_ALIGNED_HI_OP ++#define TARGET_ASM_ALIGNED_HI_OP "\t.align 1\n\t.short\t" ++#undef TARGET_ASM_ALIGNED_SI_OP ++#define TARGET_ASM_ALIGNED_SI_OP "\t.align 2\n\t.int\t" ++#undef TARGET_ASM_ALIGNED_DI_OP ++#define TARGET_ASM_ALIGNED_DI_OP NULL ++#undef TARGET_ASM_ALIGNED_TI_OP ++#define TARGET_ASM_ALIGNED_TI_OP NULL ++#undef TARGET_ASM_UNALIGNED_HI_OP ++#define TARGET_ASM_UNALIGNED_HI_OP "\t.short\t" ++#undef TARGET_ASM_UNALIGNED_SI_OP ++#define TARGET_ASM_UNALIGNED_SI_OP "\t.int\t" ++#undef TARGET_ASM_UNALIGNED_DI_OP ++#define TARGET_ASM_UNALIGNED_DI_OP NULL ++#undef TARGET_ASM_UNALIGNED_TI_OP ++#define TARGET_ASM_UNALIGNED_TI_OP NULL ++ ++#undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE ++#define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE avr32_sched_use_dfa_pipeline_interface ++ ++#undef TARGET_ASM_OUTPUT_MI_THUNK ++#define TARGET_ASM_OUTPUT_MI_THUNK avr32_output_mi_thunk ++ ++ ++static void ++avr32_output_mi_thunk (FILE * file, ++ tree thunk ATTRIBUTE_UNUSED, ++ HOST_WIDE_INT delta, ++ HOST_WIDE_INT vcall_offset, tree function) ++{ ++ int mi_delta = delta; ++ int this_regno = ++ (avr32_return_in_memory (DECL_RESULT (function), TREE_TYPE (function)) ? ++ INTERNAL_REGNUM (11) : INTERNAL_REGNUM (12)); ++ ++ ++ if (!avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21") ++ || vcall_offset) ++ { ++ fprintf (file, "\tpushm\tr10\n"); ++ } ++ ++ ++ if (mi_delta != 0) ++ { ++ if (avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21")) ++ { ++ fprintf (file, "\tsub\t%s, -0x%x\n", reg_names[this_regno], ++ mi_delta); ++ } ++ else ++ { ++ /* Immediate is larger than k21 we must make us a temp register by ++ pushing a register to the stack. */ ++ fprintf (file, "\tmov\tr10, lo(%x)\n", mi_delta); ++ fprintf (file, "\torh\tr10, hi(%x)\n", mi_delta); ++ fprintf (file, "\tadd\t%s, r10\n", reg_names[this_regno]); ++ } ++ } ++ ++ ++ if (vcall_offset != 0) ++ { ++ fprintf (file, "\tld.w\tr10, %s[0]\n", reg_names[this_regno]); ++ fprintf (file, "\tld.w\tr10, r10[%i]\n", (int) vcall_offset); ++ fprintf (file, "\tadd\t%s, r10\n", reg_names[this_regno]); ++ } ++ ++ ++ if (!avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21") ++ || vcall_offset) ++ { ++ fprintf (file, "\tpopm\tr10\n"); ++ } ++ ++ if (flag_pic) ++ { ++ /* Don't know how we should do this!!! For now we'll just use an ++ extended branch instruction and hope that the function will be ++ reached. */ ++ fprintf (file, "\tbral\t"); ++ assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); ++ fputc ('\n', file); ++ } ++ else ++ { ++ fprintf (file, "\tlddpc\tpc, 0f\n"); ++ fprintf (file, "\t.align 2\n"); ++ fputs ("0:\t.long\t", file); ++ assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0)); ++ fputc ('\n', file); ++ } ++} ++ ++/* Implements target hook vector_mode_supported. */ ++bool ++avr32_vector_mode_supported (enum machine_mode mode) ++{ ++ if ((mode == V2HImode) || (mode == V4QImode)) ++ return true; ++ ++ return false; ++} ++ ++ ++#undef TARGET_INIT_LIBFUNCS ++#define TARGET_INIT_LIBFUNCS avr32_init_libfuncs ++ ++#undef TARGET_INIT_BUILTINS ++#define TARGET_INIT_BUILTINS avr32_init_builtins ++ ++#undef TARGET_EXPAND_BUILTIN ++#define TARGET_EXPAND_BUILTIN avr32_expand_builtin ++ ++tree int_ftype_int, int_ftype_void, short_ftype_short, void_ftype_int_int, ++ void_ftype_ptr_int; ++tree void_ftype_int, void_ftype_void, int_ftype_ptr_int; ++tree short_ftype_short, int_ftype_int_short, int_ftype_short_short, ++ short_ftype_short_short; ++tree int_ftype_int_int, longlong_ftype_int_short, longlong_ftype_short_short; ++tree void_ftype_int_int_int_int_int, void_ftype_int_int_int; ++tree longlong_ftype_int_int, void_ftype_int_int_longlong; ++tree int_ftype_int_int_int, longlong_ftype_longlong_int_short; ++tree longlong_ftype_longlong_short_short, int_ftype_int_short_short; ++ ++#define def_builtin(NAME, TYPE, CODE) \ ++ lang_hooks.builtin_function ((NAME), (TYPE), (CODE), \ ++ BUILT_IN_MD, NULL, NULL_TREE) ++ ++#define def_mbuiltin(MASK, NAME, TYPE, CODE) \ ++ do \ ++ { \ ++ if ((MASK)) \ ++ lang_hooks.builtin_function ((NAME), (TYPE), (CODE), \ ++ BUILT_IN_MD, NULL, NULL_TREE); \ ++ } \ ++ while (0) ++ ++struct builtin_description ++{ ++ const unsigned int mask; ++ const enum insn_code icode; ++ const char *const name; ++ const int code; ++ const enum rtx_code comparison; ++ const unsigned int flag; ++ const tree *ftype; ++}; ++ ++static const struct builtin_description bdesc_2arg[] = { ++#define DSP_BUILTIN(code, builtin, ftype) \ ++ { 1, CODE_FOR_##code, "__builtin_" #code , \ ++ AVR32_BUILTIN_##builtin, 0, 0, ftype } ++ ++ DSP_BUILTIN (mulsathh_h, MULSATHH_H, &short_ftype_short_short), ++ DSP_BUILTIN (mulsathh_w, MULSATHH_W, &int_ftype_short_short), ++ DSP_BUILTIN (mulsatrndhh_h, MULSATRNDHH_H, &short_ftype_short_short), ++ DSP_BUILTIN (mulsatrndwh_w, MULSATRNDWH_W, &int_ftype_int_short), ++ DSP_BUILTIN (mulsatwh_w, MULSATWH_W, &int_ftype_int_short), ++ DSP_BUILTIN (satadd_h, SATADD_H, &short_ftype_short_short), ++ DSP_BUILTIN (satsub_h, SATSUB_H, &short_ftype_short_short), ++ DSP_BUILTIN (satadd_w, SATADD_W, &int_ftype_int_int), ++ DSP_BUILTIN (satsub_w, SATSUB_W, &int_ftype_int_int), ++ DSP_BUILTIN (mulwh_d, MULWH_D, &longlong_ftype_int_short), ++ DSP_BUILTIN (mulnwh_d, MULNWH_D, &longlong_ftype_int_short) ++}; ++ ++ ++void ++avr32_init_builtins (void) ++{ ++ unsigned int i; ++ const struct builtin_description *d; ++ tree endlink = void_list_node; ++ tree int_endlink = tree_cons (NULL_TREE, integer_type_node, endlink); ++ tree longlong_endlink = ++ tree_cons (NULL_TREE, long_long_integer_type_node, endlink); ++ tree short_endlink = ++ tree_cons (NULL_TREE, short_integer_type_node, endlink); ++ tree void_endlink = tree_cons (NULL_TREE, void_type_node, endlink); ++ ++ /* int func (int) */ ++ int_ftype_int = build_function_type (integer_type_node, int_endlink); ++ ++ /* short func (short) */ ++ short_ftype_short ++ = build_function_type (short_integer_type_node, short_endlink); ++ ++ /* short func (short, short) */ ++ short_ftype_short_short ++ = build_function_type (short_integer_type_node, ++ tree_cons (NULL_TREE, short_integer_type_node, ++ short_endlink)); ++ ++ /* long long func (long long, short, short) */ ++ longlong_ftype_longlong_short_short ++ = build_function_type (long_long_integer_type_node, ++ tree_cons (NULL_TREE, long_long_integer_type_node, ++ tree_cons (NULL_TREE, ++ short_integer_type_node, ++ short_endlink))); ++ ++ /* long long func (short, short) */ ++ longlong_ftype_short_short ++ = build_function_type (long_long_integer_type_node, ++ tree_cons (NULL_TREE, short_integer_type_node, ++ short_endlink)); ++ ++ /* int func (int, int) */ ++ int_ftype_int_int ++ = build_function_type (integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ int_endlink)); ++ ++ /* long long func (int, int) */ ++ longlong_ftype_int_int ++ = build_function_type (long_long_integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ int_endlink)); ++ ++ /* long long int func (long long, int, short) */ ++ longlong_ftype_longlong_int_short ++ = build_function_type (long_long_integer_type_node, ++ tree_cons (NULL_TREE, long_long_integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ short_endlink))); ++ ++ /* long long int func (int, short) */ ++ longlong_ftype_int_short ++ = build_function_type (long_long_integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ short_endlink)); ++ ++ /* int func (int, short, short) */ ++ int_ftype_int_short_short ++ = build_function_type (integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ tree_cons (NULL_TREE, ++ short_integer_type_node, ++ short_endlink))); ++ ++ /* int func (short, short) */ ++ int_ftype_short_short ++ = build_function_type (integer_type_node, ++ tree_cons (NULL_TREE, short_integer_type_node, ++ short_endlink)); ++ ++ /* int func (int, short) */ ++ int_ftype_int_short ++ = build_function_type (integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ short_endlink)); ++ ++ /* void func (int, int) */ ++ void_ftype_int_int ++ = build_function_type (void_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ int_endlink)); ++ ++ /* void func (int, int, int) */ ++ void_ftype_int_int_int ++ = build_function_type (void_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ int_endlink))); ++ ++ /* void func (int, int, long long) */ ++ void_ftype_int_int_longlong ++ = build_function_type (void_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ longlong_endlink))); ++ ++ /* void func (int, int, int, int, int) */ ++ void_ftype_int_int_int_int_int ++ = build_function_type (void_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ tree_cons (NULL_TREE, ++ integer_type_node, ++ tree_cons ++ (NULL_TREE, ++ integer_type_node, ++ int_endlink))))); ++ ++ /* void func (void *, int) */ ++ void_ftype_ptr_int ++ = build_function_type (void_type_node, ++ tree_cons (NULL_TREE, ptr_type_node, int_endlink)); ++ ++ /* void func (int) */ ++ void_ftype_int = build_function_type (void_type_node, int_endlink); ++ ++ /* void func (void) */ ++ void_ftype_void = build_function_type (void_type_node, void_endlink); ++ ++ /* int func (void) */ ++ int_ftype_void = build_function_type (integer_type_node, void_endlink); ++ ++ /* int func (void *, int) */ ++ int_ftype_ptr_int ++ = build_function_type (integer_type_node, ++ tree_cons (NULL_TREE, ptr_type_node, int_endlink)); ++ ++ /* int func (int, int, int) */ ++ int_ftype_int_int_int ++ = build_function_type (integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ tree_cons (NULL_TREE, integer_type_node, ++ int_endlink))); ++ ++ /* Initialize avr32 builtins. */ ++ def_builtin ("__builtin_mfsr", int_ftype_int, AVR32_BUILTIN_MFSR); ++ def_builtin ("__builtin_mtsr", void_ftype_int_int, AVR32_BUILTIN_MTSR); ++ def_builtin ("__builtin_mfdr", int_ftype_int, AVR32_BUILTIN_MFDR); ++ def_builtin ("__builtin_mtdr", void_ftype_int_int, AVR32_BUILTIN_MTDR); ++ def_builtin ("__builtin_cache", void_ftype_ptr_int, AVR32_BUILTIN_CACHE); ++ def_builtin ("__builtin_sync", void_ftype_int, AVR32_BUILTIN_SYNC); ++ def_builtin ("__builtin_tlbr", void_ftype_void, AVR32_BUILTIN_TLBR); ++ def_builtin ("__builtin_tlbs", void_ftype_void, AVR32_BUILTIN_TLBS); ++ def_builtin ("__builtin_tlbw", void_ftype_void, AVR32_BUILTIN_TLBW); ++ def_builtin ("__builtin_breakpoint", void_ftype_void, ++ AVR32_BUILTIN_BREAKPOINT); ++ def_builtin ("__builtin_xchg", int_ftype_ptr_int, AVR32_BUILTIN_XCHG); ++ def_builtin ("__builtin_ldxi", int_ftype_ptr_int, AVR32_BUILTIN_LDXI); ++ def_builtin ("__builtin_bswap_16", short_ftype_short, ++ AVR32_BUILTIN_BSWAP16); ++ def_builtin ("__builtin_bswap_32", int_ftype_int, AVR32_BUILTIN_BSWAP32); ++ def_builtin ("__builtin_cop", void_ftype_int_int_int_int_int, ++ AVR32_BUILTIN_COP); ++ def_builtin ("__builtin_mvcr_w", int_ftype_int_int, AVR32_BUILTIN_MVCR_W); ++ def_builtin ("__builtin_mvrc_w", void_ftype_int_int_int, ++ AVR32_BUILTIN_MVRC_W); ++ def_builtin ("__builtin_mvcr_d", longlong_ftype_int_int, ++ AVR32_BUILTIN_MVCR_D); ++ def_builtin ("__builtin_mvrc_d", void_ftype_int_int_longlong, ++ AVR32_BUILTIN_MVRC_D); ++ def_builtin ("__builtin_sats", int_ftype_int_int_int, AVR32_BUILTIN_SATS); ++ def_builtin ("__builtin_satu", int_ftype_int_int_int, AVR32_BUILTIN_SATU); ++ def_builtin ("__builtin_satrnds", int_ftype_int_int_int, ++ AVR32_BUILTIN_SATRNDS); ++ def_builtin ("__builtin_satrndu", int_ftype_int_int_int, ++ AVR32_BUILTIN_SATRNDU); ++ def_builtin ("__builtin_musfr", void_ftype_int, AVR32_BUILTIN_MUSFR); ++ def_builtin ("__builtin_mustr", int_ftype_void, AVR32_BUILTIN_MUSTR); ++ def_builtin ("__builtin_macsathh_w", int_ftype_int_short_short, ++ AVR32_BUILTIN_MACSATHH_W); ++ def_builtin ("__builtin_macwh_d", longlong_ftype_longlong_int_short, ++ AVR32_BUILTIN_MACWH_D); ++ def_builtin ("__builtin_machh_d", longlong_ftype_longlong_short_short, ++ AVR32_BUILTIN_MACHH_D); ++ ++ /* Add all builtins that are more or less simple operations on two ++ operands. */ ++ for (i = 0, d = bdesc_2arg; i < ARRAY_SIZE (bdesc_2arg); i++, d++) ++ { ++ /* Use one of the operands; the target can have a different mode for ++ mask-generating compares. */ ++ ++ if (d->name == 0) ++ continue; ++ ++ def_mbuiltin (d->mask, d->name, *(d->ftype), d->code); ++ } ++} ++ ++ ++/* Subroutine of avr32_expand_builtin to take care of binop insns. */ ++ ++static rtx ++avr32_expand_binop_builtin (enum insn_code icode, tree arglist, rtx target) ++{ ++ rtx pat; ++ tree arg0 = TREE_VALUE (arglist); ++ tree arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ rtx op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ rtx op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ enum machine_mode tmode = insn_data[icode].operand[0].mode; ++ enum machine_mode mode0 = insn_data[icode].operand[1].mode; ++ enum machine_mode mode1 = insn_data[icode].operand[2].mode; ++ ++ if (!target ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ ++ /* In case the insn wants input operands in modes different from the ++ result, abort. */ ++ if (!(*insn_data[icode].operand[1].predicate) (op0, mode0)) ++ { ++ /* If op0 is already a reg we must cast it to the correct mode. */ ++ if (REG_P (op0)) ++ op0 = convert_to_mode (mode0, op0, 1); ++ else ++ op0 = copy_to_mode_reg (mode0, op0); ++ } ++ if (!(*insn_data[icode].operand[2].predicate) (op1, mode1)) ++ { ++ /* If op1 is already a reg we must cast it to the correct mode. */ ++ if (REG_P (op1)) ++ op1 = convert_to_mode (mode1, op1, 1); ++ else ++ op1 = copy_to_mode_reg (mode1, op1); ++ } ++ pat = GEN_FCN (icode) (target, op0, op1); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return target; ++} ++ ++/* Expand an expression EXP that calls a built-in function, ++ with result going to TARGET if that's convenient ++ (and in mode MODE if that's convenient). ++ SUBTARGET may be used as the target for computing one of EXP's operands. ++ IGNORE is nonzero if the value is to be ignored. */ ++ ++rtx ++avr32_expand_builtin (tree exp, ++ rtx target, ++ rtx subtarget ATTRIBUTE_UNUSED, ++ enum machine_mode mode ATTRIBUTE_UNUSED, ++ int ignore ATTRIBUTE_UNUSED) ++{ ++ const struct builtin_description *d; ++ unsigned int i; ++ enum insn_code icode; ++ tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0); ++ tree arglist = TREE_OPERAND (exp, 1); ++ tree arg0, arg1, arg2; ++ rtx op0, op1, op2, pat; ++ enum machine_mode tmode, mode0, mode1; ++ enum machine_mode arg0_mode; ++ int fcode = DECL_FUNCTION_CODE (fndecl); ++ ++ switch (fcode) ++ { ++ default: ++ break; ++ ++ case AVR32_BUILTIN_SATS: ++ case AVR32_BUILTIN_SATU: ++ case AVR32_BUILTIN_SATRNDS: ++ case AVR32_BUILTIN_SATRNDU: ++ { ++ const char *fname; ++ switch (fcode) ++ { ++ default: ++ case AVR32_BUILTIN_SATS: ++ icode = CODE_FOR_sats; ++ fname = "sats"; ++ break; ++ case AVR32_BUILTIN_SATU: ++ icode = CODE_FOR_satu; ++ fname = "satu"; ++ break; ++ case AVR32_BUILTIN_SATRNDS: ++ icode = CODE_FOR_satrnds; ++ fname = "satrnds"; ++ break; ++ case AVR32_BUILTIN_SATRNDU: ++ icode = CODE_FOR_satrndu; ++ fname = "satrndu"; ++ break; ++ } ++ ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0); ++ ++ tmode = insn_data[icode].operand[0].mode; ++ ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, GET_MODE (op0))) ++ { ++ op0 = copy_to_mode_reg (insn_data[icode].operand[0].mode, op0); ++ } ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op1, SImode)) ++ { ++ error ("Parameter 2 to __builtin_%s should be a constant number.", ++ fname); ++ return NULL_RTX; ++ } ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op2, SImode)) ++ { ++ error ("Parameter 3 to __builtin_%s should be a constant number.", ++ fname); ++ return NULL_RTX; ++ } ++ ++ emit_move_insn (target, op0); ++ pat = GEN_FCN (icode) (target, op1, op2); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ ++ return target; ++ } ++ case AVR32_BUILTIN_MUSTR: ++ icode = CODE_FOR_mustr; ++ tmode = insn_data[icode].operand[0].mode; ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ pat = GEN_FCN (icode) (target); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return target; ++ ++ case AVR32_BUILTIN_MFSR: ++ icode = CODE_FOR_mfsr; ++ arg0 = TREE_VALUE (arglist); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ tmode = insn_data[icode].operand[0].mode; ++ mode0 = insn_data[icode].operand[1].mode; ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op0, mode0)) ++ { ++ error ("Parameter 1 to __builtin_mfsr must be a constant number"); ++ } ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ pat = GEN_FCN (icode) (target, op0); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return target; ++ case AVR32_BUILTIN_MTSR: ++ icode = CODE_FOR_mtsr; ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ mode0 = insn_data[icode].operand[0].mode; ++ mode1 = insn_data[icode].operand[1].mode; ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, mode0)) ++ { ++ error ("Parameter 1 to __builtin_mtsr must be a constant number"); ++ return gen_reg_rtx (mode0); ++ } ++ if (!(*insn_data[icode].operand[1].predicate) (op1, mode1)) ++ op1 = copy_to_mode_reg (mode1, op1); ++ pat = GEN_FCN (icode) (op0, op1); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ case AVR32_BUILTIN_MFDR: ++ icode = CODE_FOR_mfdr; ++ arg0 = TREE_VALUE (arglist); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ tmode = insn_data[icode].operand[0].mode; ++ mode0 = insn_data[icode].operand[1].mode; ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op0, mode0)) ++ { ++ error ("Parameter 1 to __builtin_mfdr must be a constant number"); ++ } ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ pat = GEN_FCN (icode) (target, op0); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return target; ++ case AVR32_BUILTIN_MTDR: ++ icode = CODE_FOR_mtdr; ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ mode0 = insn_data[icode].operand[0].mode; ++ mode1 = insn_data[icode].operand[1].mode; ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, mode0)) ++ { ++ error ("Parameter 1 to __builtin_mtdr must be a constant number"); ++ return gen_reg_rtx (mode0); ++ } ++ if (!(*insn_data[icode].operand[1].predicate) (op1, mode1)) ++ op1 = copy_to_mode_reg (mode1, op1); ++ pat = GEN_FCN (icode) (op0, op1); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ case AVR32_BUILTIN_CACHE: ++ icode = CODE_FOR_cache; ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ mode0 = insn_data[icode].operand[0].mode; ++ mode1 = insn_data[icode].operand[1].mode; ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op1, mode1)) ++ { ++ error ("Parameter 2 to __builtin_cache must be a constant number"); ++ return gen_reg_rtx (mode1); ++ } ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, mode0)) ++ op0 = copy_to_mode_reg (mode0, op0); ++ ++ pat = GEN_FCN (icode) (op0, op1); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ case AVR32_BUILTIN_SYNC: ++ case AVR32_BUILTIN_MUSFR: ++ { ++ const char *fname; ++ switch (fcode) ++ { ++ default: ++ case AVR32_BUILTIN_SYNC: ++ icode = CODE_FOR_sync; ++ fname = "sync"; ++ break; ++ case AVR32_BUILTIN_MUSFR: ++ icode = CODE_FOR_musfr; ++ fname = "musfr"; ++ break; ++ } ++ ++ arg0 = TREE_VALUE (arglist); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ mode0 = insn_data[icode].operand[0].mode; ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, mode0)) ++ { ++ if (icode == CODE_FOR_musfr) ++ op0 = copy_to_mode_reg (mode0, op0); ++ else ++ { ++ error ("Parameter to __builtin_%s is illegal.", fname); ++ return gen_reg_rtx (mode0); ++ } ++ } ++ pat = GEN_FCN (icode) (op0); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ } ++ case AVR32_BUILTIN_TLBR: ++ icode = CODE_FOR_tlbr; ++ pat = GEN_FCN (icode) (NULL_RTX); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ case AVR32_BUILTIN_TLBS: ++ icode = CODE_FOR_tlbs; ++ pat = GEN_FCN (icode) (NULL_RTX); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ case AVR32_BUILTIN_TLBW: ++ icode = CODE_FOR_tlbw; ++ pat = GEN_FCN (icode) (NULL_RTX); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ case AVR32_BUILTIN_BREAKPOINT: ++ icode = CODE_FOR_breakpoint; ++ pat = GEN_FCN (icode) (NULL_RTX); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return NULL_RTX; ++ case AVR32_BUILTIN_XCHG: ++ icode = CODE_FOR_xchg; ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ tmode = insn_data[icode].operand[0].mode; ++ mode0 = insn_data[icode].operand[1].mode; ++ mode1 = insn_data[icode].operand[3].mode; ++ ++ if (!(*insn_data[icode].operand[3].predicate) (op1, mode1)) ++ { ++ op1 = copy_to_mode_reg (mode1, op1); ++ } ++ ++ if (!(*insn_data[icode].operand[2].predicate) (op0, mode0)) ++ { ++ op0 = copy_to_mode_reg (mode0, op0); ++ } ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ pat = GEN_FCN (icode) (target, op0, op0, op1); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return target; ++ case AVR32_BUILTIN_LDXI: ++ icode = CODE_FOR_ldxi; ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0); ++ tmode = insn_data[icode].operand[0].mode; ++ mode0 = insn_data[icode].operand[1].mode; ++ mode1 = insn_data[icode].operand[2].mode; ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op0, mode0)) ++ { ++ op0 = copy_to_mode_reg (mode0, op0); ++ } ++ ++ if (!(*insn_data[icode].operand[2].predicate) (op1, mode1)) ++ { ++ op1 = copy_to_mode_reg (mode1, op1); ++ } ++ ++ if (!(*insn_data[icode].operand[3].predicate) (op2, SImode)) ++ { ++ error ++ ("Parameter 3 to __builtin_ldxi must be a valid extract shift operand: (0|8|16|24)"); ++ return gen_reg_rtx (mode0); ++ } ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ pat = GEN_FCN (icode) (target, op0, op1, op2); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return target; ++ case AVR32_BUILTIN_BSWAP16: ++ { ++ icode = CODE_FOR_bswap_16; ++ arg0 = TREE_VALUE (arglist); ++ arg0_mode = TYPE_MODE (TREE_TYPE (arg0)); ++ mode0 = insn_data[icode].operand[1].mode; ++ if (arg0_mode != mode0) ++ arg0 = build1 (NOP_EXPR, ++ (*lang_hooks.types.type_for_mode) (mode0, 0), arg0); ++ ++ op0 = expand_expr (arg0, NULL_RTX, HImode, 0); ++ tmode = insn_data[icode].operand[0].mode; ++ ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op0, mode0)) ++ { ++ op0 = copy_to_mode_reg (mode0, op0); ++ } ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ { ++ target = gen_reg_rtx (tmode); ++ } ++ ++ ++ pat = GEN_FCN (icode) (target, op0); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ ++ return target; ++ } ++ case AVR32_BUILTIN_BSWAP32: ++ { ++ icode = CODE_FOR_bswap_32; ++ arg0 = TREE_VALUE (arglist); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ tmode = insn_data[icode].operand[0].mode; ++ mode0 = insn_data[icode].operand[1].mode; ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op0, mode0)) ++ { ++ op0 = copy_to_mode_reg (mode0, op0); ++ } ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ ++ ++ pat = GEN_FCN (icode) (target, op0); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ ++ return target; ++ } ++ case AVR32_BUILTIN_MVCR_W: ++ case AVR32_BUILTIN_MVCR_D: ++ { ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ ++ if (fcode == AVR32_BUILTIN_MVCR_W) ++ icode = CODE_FOR_mvcrsi; ++ else ++ icode = CODE_FOR_mvcrdi; ++ ++ tmode = insn_data[icode].operand[0].mode; ++ ++ if (target == 0 ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op0, SImode)) ++ { ++ error ++ ("Parameter 1 to __builtin_cop is not a valid coprocessor number."); ++ error ("Number should be between 0 and 7."); ++ return NULL_RTX; ++ } ++ ++ if (!(*insn_data[icode].operand[2].predicate) (op1, SImode)) ++ { ++ error ++ ("Parameter 2 to __builtin_cop is not a valid coprocessor register number."); ++ error ("Number should be between 0 and 15."); ++ return NULL_RTX; ++ } ++ ++ pat = GEN_FCN (icode) (target, op0, op1); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ ++ return target; ++ } ++ case AVR32_BUILTIN_MACSATHH_W: ++ case AVR32_BUILTIN_MACWH_D: ++ case AVR32_BUILTIN_MACHH_D: ++ { ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0); ++ ++ icode = ((fcode == AVR32_BUILTIN_MACSATHH_W) ? CODE_FOR_macsathh_w : ++ (fcode == AVR32_BUILTIN_MACWH_D) ? CODE_FOR_macwh_d : ++ CODE_FOR_machh_d); ++ ++ tmode = insn_data[icode].operand[0].mode; ++ mode0 = insn_data[icode].operand[1].mode; ++ mode1 = insn_data[icode].operand[2].mode; ++ ++ ++ if (!target ++ || GET_MODE (target) != tmode ++ || !(*insn_data[icode].operand[0].predicate) (target, tmode)) ++ target = gen_reg_rtx (tmode); ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, tmode)) ++ { ++ /* If op0 is already a reg we must cast it to the correct mode. */ ++ if (REG_P (op0)) ++ op0 = convert_to_mode (tmode, op0, 1); ++ else ++ op0 = copy_to_mode_reg (tmode, op0); ++ } ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op1, mode0)) ++ { ++ /* If op1 is already a reg we must cast it to the correct mode. */ ++ if (REG_P (op1)) ++ op1 = convert_to_mode (mode0, op1, 1); ++ else ++ op1 = copy_to_mode_reg (mode0, op1); ++ } ++ ++ if (!(*insn_data[icode].operand[2].predicate) (op2, mode1)) ++ { ++ /* If op1 is already a reg we must cast it to the correct mode. */ ++ if (REG_P (op2)) ++ op2 = convert_to_mode (mode1, op2, 1); ++ else ++ op2 = copy_to_mode_reg (mode1, op2); ++ } ++ ++ emit_move_insn (target, op0); ++ ++ pat = GEN_FCN (icode) (target, op1, op2); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ return target; ++ } ++ case AVR32_BUILTIN_MVRC_W: ++ case AVR32_BUILTIN_MVRC_D: ++ { ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0); ++ ++ if (fcode == AVR32_BUILTIN_MVRC_W) ++ icode = CODE_FOR_mvrcsi; ++ else ++ icode = CODE_FOR_mvrcdi; ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, SImode)) ++ { ++ error ("Parameter 1 is not a valid coprocessor number."); ++ error ("Number should be between 0 and 7."); ++ return NULL_RTX; ++ } ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op1, SImode)) ++ { ++ error ("Parameter 2 is not a valid coprocessor register number."); ++ error ("Number should be between 0 and 15."); ++ return NULL_RTX; ++ } ++ ++ if (GET_CODE (op2) == CONST_INT ++ || GET_CODE (op2) == CONST ++ || GET_CODE (op2) == SYMBOL_REF || GET_CODE (op2) == LABEL_REF) ++ { ++ op2 = force_const_mem (insn_data[icode].operand[2].mode, op2); ++ } ++ ++ if (!(*insn_data[icode].operand[2].predicate) (op2, GET_MODE (op2))) ++ op2 = copy_to_mode_reg (insn_data[icode].operand[2].mode, op2); ++ ++ ++ pat = GEN_FCN (icode) (op0, op1, op2); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ ++ return NULL_RTX; ++ } ++ case AVR32_BUILTIN_COP: ++ { ++ rtx op3, op4; ++ tree arg3, arg4; ++ icode = CODE_FOR_cop; ++ arg0 = TREE_VALUE (arglist); ++ arg1 = TREE_VALUE (TREE_CHAIN (arglist)); ++ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist))); ++ arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist)))); ++ arg4 = ++ TREE_VALUE (TREE_CHAIN ++ (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))))); ++ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, 0); ++ op1 = expand_expr (arg1, NULL_RTX, VOIDmode, 0); ++ op2 = expand_expr (arg2, NULL_RTX, VOIDmode, 0); ++ op3 = expand_expr (arg3, NULL_RTX, VOIDmode, 0); ++ op4 = expand_expr (arg4, NULL_RTX, VOIDmode, 0); ++ ++ if (!(*insn_data[icode].operand[0].predicate) (op0, SImode)) ++ { ++ error ++ ("Parameter 1 to __builtin_cop is not a valid coprocessor number."); ++ error ("Number should be between 0 and 7."); ++ return NULL_RTX; ++ } ++ ++ if (!(*insn_data[icode].operand[1].predicate) (op1, SImode)) ++ { ++ error ++ ("Parameter 2 to __builtin_cop is not a valid coprocessor register number."); ++ error ("Number should be between 0 and 15."); ++ return NULL_RTX; ++ } ++ ++ if (!(*insn_data[icode].operand[2].predicate) (op2, SImode)) ++ { ++ error ++ ("Parameter 3 to __builtin_cop is not a valid coprocessor register number."); ++ error ("Number should be between 0 and 15."); ++ return NULL_RTX; ++ } ++ ++ if (!(*insn_data[icode].operand[3].predicate) (op3, SImode)) ++ { ++ error ++ ("Parameter 4 to __builtin_cop is not a valid coprocessor register number."); ++ error ("Number should be between 0 and 15."); ++ return NULL_RTX; ++ } ++ ++ if (!(*insn_data[icode].operand[4].predicate) (op4, SImode)) ++ { ++ error ++ ("Parameter 5 to __builtin_cop is not a valid coprocessor operation."); ++ error ("Number should be between 0 and 127."); ++ return NULL_RTX; ++ } ++ ++ pat = GEN_FCN (icode) (op0, op1, op2, op3, op4); ++ if (!pat) ++ return 0; ++ emit_insn (pat); ++ ++ return target; ++ } ++ } ++ ++ for (i = 0, d = bdesc_2arg; i < ARRAY_SIZE (bdesc_2arg); i++, d++) ++ if (d->code == fcode) ++ return avr32_expand_binop_builtin (d->icode, arglist, target); ++ ++ ++ /* @@@ Should really do something sensible here. */ ++ return NULL_RTX; ++} ++ ++ ++/* Handle an "interrupt" or "isr" attribute; ++ arguments as in struct attribute_spec.handler. */ ++ ++static tree ++avr32_handle_isr_attribute (tree * node, tree name, tree args, ++ int flags, bool * no_add_attrs) ++{ ++ if (DECL_P (*node)) ++ { ++ if (TREE_CODE (*node) != FUNCTION_DECL) ++ { ++ warning ("`%s' attribute only applies to functions", ++ IDENTIFIER_POINTER (name)); ++ *no_add_attrs = true; ++ } ++ /* FIXME: the argument if any is checked for type attributes; should it ++ be checked for decl ones? */ ++ } ++ else ++ { ++ if (TREE_CODE (*node) == FUNCTION_TYPE ++ || TREE_CODE (*node) == METHOD_TYPE) ++ { ++ if (avr32_isr_value (args) == AVR32_FT_UNKNOWN) ++ { ++ warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name)); ++ *no_add_attrs = true; ++ } ++ } ++ else if (TREE_CODE (*node) == POINTER_TYPE ++ && (TREE_CODE (TREE_TYPE (*node)) == FUNCTION_TYPE ++ || TREE_CODE (TREE_TYPE (*node)) == METHOD_TYPE) ++ && avr32_isr_value (args) != AVR32_FT_UNKNOWN) ++ { ++ *node = build_variant_type_copy (*node); ++ TREE_TYPE (*node) = build_type_attribute_variant ++ (TREE_TYPE (*node), ++ tree_cons (name, args, TYPE_ATTRIBUTES (TREE_TYPE (*node)))); ++ *no_add_attrs = true; ++ } ++ else ++ { ++ /* Possibly pass this attribute on from the type to a decl. */ ++ if (flags & ((int) ATTR_FLAG_DECL_NEXT ++ | (int) ATTR_FLAG_FUNCTION_NEXT ++ | (int) ATTR_FLAG_ARRAY_NEXT)) ++ { ++ *no_add_attrs = true; ++ return tree_cons (name, args, NULL_TREE); ++ } ++ else ++ { ++ warning ("`%s' attribute ignored", IDENTIFIER_POINTER (name)); ++ } ++ } ++ } ++ ++ return NULL_TREE; ++} ++ ++/* Handle an attribute requiring a FUNCTION_DECL; ++ arguments as in struct attribute_spec.handler. */ ++static tree ++avr32_handle_fndecl_attribute (tree * node, tree name, ++ tree args ATTRIBUTE_UNUSED, ++ int flags ATTRIBUTE_UNUSED, ++ bool * no_add_attrs) ++{ ++ if (TREE_CODE (*node) != FUNCTION_DECL) ++ { ++ warning ("%qs attribute only applies to functions", ++ IDENTIFIER_POINTER (name)); ++ *no_add_attrs = true; ++ } ++ ++ return NULL_TREE; ++} ++ ++ ++/* Handle an acall attribute; ++ arguments as in struct attribute_spec.handler. */ ++ ++static tree ++avr32_handle_acall_attribute (tree * node, tree name, ++ tree args ATTRIBUTE_UNUSED, ++ int flags ATTRIBUTE_UNUSED, bool * no_add_attrs) ++{ ++ if (TREE_CODE (*node) == FUNCTION_TYPE || TREE_CODE (*node) == METHOD_TYPE) ++ { ++ warning ("`%s' attribute not yet supported...", ++ IDENTIFIER_POINTER (name)); ++ *no_add_attrs = true; ++ return NULL_TREE; ++ } ++ ++ warning ("`%s' attribute only applies to functions", ++ IDENTIFIER_POINTER (name)); ++ *no_add_attrs = true; ++ return NULL_TREE; ++} ++ ++ ++/* Return 0 if the attributes for two types are incompatible, 1 if they ++ are compatible, and 2 if they are nearly compatible (which causes a ++ warning to be generated). */ ++ ++static int ++avr32_comp_type_attributes (tree type1, tree type2) ++{ ++ int acall1, acall2, isr1, isr2, naked1, naked2; ++ ++ /* Check for mismatch of non-default calling convention. */ ++ if (TREE_CODE (type1) != FUNCTION_TYPE) ++ return 1; ++ ++ /* Check for mismatched call attributes. */ ++ acall1 = lookup_attribute ("acall", TYPE_ATTRIBUTES (type1)) != NULL; ++ acall2 = lookup_attribute ("acall", TYPE_ATTRIBUTES (type2)) != NULL; ++ naked1 = lookup_attribute ("naked", TYPE_ATTRIBUTES (type1)) != NULL; ++ naked2 = lookup_attribute ("naked", TYPE_ATTRIBUTES (type2)) != NULL; ++ isr1 = lookup_attribute ("isr", TYPE_ATTRIBUTES (type1)) != NULL; ++ if (!isr1) ++ isr1 = lookup_attribute ("interrupt", TYPE_ATTRIBUTES (type1)) != NULL; ++ ++ isr2 = lookup_attribute ("isr", TYPE_ATTRIBUTES (type2)) != NULL; ++ if (!isr2) ++ isr2 = lookup_attribute ("interrupt", TYPE_ATTRIBUTES (type2)) != NULL; ++ ++ if ((acall1 && isr2) ++ || (acall2 && isr1) || (naked1 && isr2) || (naked2 && isr1)) ++ return 0; ++ ++ return 1; ++} ++ ++ ++/* Computes the type of the current function. */ ++ ++static unsigned long ++avr32_compute_func_type (void) ++{ ++ unsigned long type = AVR32_FT_UNKNOWN; ++ tree a; ++ tree attr; ++ ++ if (TREE_CODE (current_function_decl) != FUNCTION_DECL) ++ abort (); ++ ++ /* Decide if the current function is volatile. Such functions never ++ return, and many memory cycles can be saved by not storing register ++ values that will never be needed again. This optimization was added to ++ speed up context switching in a kernel application. */ ++ if (optimize > 0 ++ && TREE_NOTHROW (current_function_decl) ++ && TREE_THIS_VOLATILE (current_function_decl)) ++ type |= AVR32_FT_VOLATILE; ++ ++ if (cfun->static_chain_decl != NULL) ++ type |= AVR32_FT_NESTED; ++ ++ attr = DECL_ATTRIBUTES (current_function_decl); ++ ++ a = lookup_attribute ("isr", attr); ++ if (a == NULL_TREE) ++ a = lookup_attribute ("interrupt", attr); ++ ++ if (a == NULL_TREE) ++ type |= AVR32_FT_NORMAL; ++ else ++ type |= avr32_isr_value (TREE_VALUE (a)); ++ ++ ++ a = lookup_attribute ("acall", attr); ++ if (a != NULL_TREE) ++ type |= AVR32_FT_ACALL; ++ ++ a = lookup_attribute ("naked", attr); ++ if (a != NULL_TREE) ++ type |= AVR32_FT_NAKED; ++ ++ return type; ++} ++ ++/* Returns the type of the current function. */ ++ ++static unsigned long ++avr32_current_func_type (void) ++{ ++ if (AVR32_FUNC_TYPE (cfun->machine->func_type) == AVR32_FT_UNKNOWN) ++ cfun->machine->func_type = avr32_compute_func_type (); ++ ++ return cfun->machine->func_type; ++} ++ ++/* ++ This target hook should return true if we should not pass type solely ++ in registers. The file expr.h defines a definition that is usually appropriate, ++ refer to expr.h for additional documentation. ++*/ ++bool ++avr32_must_pass_in_stack (enum machine_mode mode ATTRIBUTE_UNUSED, tree type) ++{ ++ if (type && AGGREGATE_TYPE_P (type) ++ /* If the alignment is less than the size then pass in the struct on ++ the stack. */ ++ && ((unsigned int) TYPE_ALIGN_UNIT (type) < ++ (unsigned int) int_size_in_bytes (type)) ++ /* If we support unaligned word accesses then structs of size 4 and 8 ++ can have any alignment and still be passed in registers. */ ++ && !(TARGET_UNALIGNED_WORD ++ && (int_size_in_bytes (type) == 4 ++ || int_size_in_bytes (type) == 8)) ++ /* Double word structs need only a word alignment. */ ++ && !(int_size_in_bytes (type) == 8 && TYPE_ALIGN_UNIT (type) >= 4)) ++ return true; ++ ++ if (type && AGGREGATE_TYPE_P (type) ++ /* Structs of size 3,5,6,7 are always passed in registers. */ ++ && (int_size_in_bytes (type) == 3 ++ || int_size_in_bytes (type) == 5 ++ || int_size_in_bytes (type) == 6 || int_size_in_bytes (type) == 7)) ++ return true; ++ ++ ++ return (type && TREE_ADDRESSABLE (type)); ++} ++ ++ ++bool ++avr32_strict_argument_naming (CUMULATIVE_ARGS * ca ATTRIBUTE_UNUSED) ++{ ++ return true; ++} ++ ++/* ++ This target hook should return true if an argument at the position indicated ++ by cum should be passed by reference. This predicate is queried after target ++ independent reasons for being passed by reference, such as TREE_ADDRESSABLE (type). ++ ++ If the hook returns true, a copy of that argument is made in memory and a ++ pointer to the argument is passed instead of the argument itself. The pointer ++ is passed in whatever way is appropriate for passing a pointer to that type. ++*/ ++bool ++avr32_pass_by_reference (CUMULATIVE_ARGS * cum ATTRIBUTE_UNUSED, ++ enum machine_mode mode ATTRIBUTE_UNUSED, ++ tree type, bool named ATTRIBUTE_UNUSED) ++{ ++ return (type && (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)); ++} ++ ++static int ++avr32_arg_partial_bytes (CUMULATIVE_ARGS * pcum ATTRIBUTE_UNUSED, ++ enum machine_mode mode ATTRIBUTE_UNUSED, ++ tree type ATTRIBUTE_UNUSED, ++ bool named ATTRIBUTE_UNUSED) ++{ ++ return 0; ++} ++ ++ ++struct gcc_target targetm = TARGET_INITIALIZER; ++ ++/* ++ Table used to convert from register number in the assembler instructions and ++ the register numbers used in gcc. ++*/ ++const int avr32_function_arg_reglist[] = ++{ ++ INTERNAL_REGNUM (12), ++ INTERNAL_REGNUM (11), ++ INTERNAL_REGNUM (10), ++ INTERNAL_REGNUM (9), ++ INTERNAL_REGNUM (8) ++}; ++ ++rtx avr32_compare_op0 = NULL_RTX; ++rtx avr32_compare_op1 = NULL_RTX; ++rtx avr32_compare_operator = NULL_RTX; ++rtx avr32_acc_cache = NULL_RTX; ++ ++/* ++ Returns nonzero if it is allowed to store a value of mode mode in hard ++ register number regno. ++*/ ++int ++avr32_hard_regno_mode_ok (int regnr, enum machine_mode mode) ++{ ++ /* We allow only float modes in the fp-registers */ ++ if (regnr >= FIRST_FP_REGNUM ++ && regnr <= LAST_FP_REGNUM && GET_MODE_CLASS (mode) != MODE_FLOAT) ++ { ++ return 0; ++ } ++ ++ switch (mode) ++ { ++ case DImode: /* long long */ ++ case DFmode: /* double */ ++ case SCmode: /* __complex__ float */ ++ case CSImode: /* __complex__ int */ ++ if (regnr < 4) ++ { /* long long int not supported in r12, sp, lr ++ or pc. */ ++ return 0; ++ } ++ else ++ { ++ if (regnr % 2) /* long long int has to be refered in even ++ registers. */ ++ return 0; ++ else ++ return 1; ++ } ++ case CDImode: /* __complex__ long long */ ++ case DCmode: /* __complex__ double */ ++ case TImode: /* 16 bytes */ ++ if (regnr < 7) ++ return 0; ++ else if (regnr % 2) ++ return 0; ++ else ++ return 1; ++ default: ++ return 1; ++ } ++} ++ ++ ++int ++avr32_rnd_operands (rtx add, rtx shift) ++{ ++ if (GET_CODE (shift) == CONST_INT && ++ GET_CODE (add) == CONST_INT && INTVAL (shift) > 0) ++ { ++ if ((1 << (INTVAL (shift) - 1)) == INTVAL (add)) ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++ ++ ++int ++avr32_const_ok_for_constraint_p (HOST_WIDE_INT value, char c, const char *str) ++{ ++ switch (c) ++ { ++ case 'K': ++ case 'I': ++ { ++ HOST_WIDE_INT min_value = 0, max_value = 0; ++ char size_str[3]; ++ int const_size; ++ ++ size_str[0] = str[2]; ++ size_str[1] = str[3]; ++ size_str[2] = '\0'; ++ const_size = atoi (size_str); ++ ++ if (toupper (str[1]) == 'U') ++ { ++ min_value = 0; ++ max_value = (1 << const_size) - 1; ++ } ++ else if (toupper (str[1]) == 'S') ++ { ++ min_value = -(1 << (const_size - 1)); ++ max_value = (1 << (const_size - 1)) - 1; ++ } ++ ++ if (c == 'I') ++ { ++ value = -value; ++ } ++ ++ if (value >= min_value && value <= max_value) ++ { ++ return 1; ++ } ++ break; ++ } ++ case 'M': ++ return avr32_mask_upper_bits_operand (GEN_INT (value), VOIDmode); ++ } ++ ++ return 0; ++} ++ ++ ++/*Compute mask of which floating-point registers needs saving upon ++ entry to this function*/ ++static unsigned long ++avr32_compute_save_fp_reg_mask (void) ++{ ++ unsigned long func_type = avr32_current_func_type (); ++ unsigned int save_reg_mask = 0; ++ unsigned int reg; ++ unsigned int max_reg = 7; ++ int save_all_call_used_regs = FALSE; ++ ++ /* This only applies for hardware floating-point implementation. */ ++ if (!TARGET_HARD_FLOAT) ++ return 0; ++ ++ if (IS_INTERRUPT (func_type)) ++ { ++ ++ /* Interrupt functions must not corrupt any registers, even call ++ clobbered ones. If this is a leaf function we can just examine the ++ registers used by the RTL, but otherwise we have to assume that ++ whatever function is called might clobber anything, and so we have ++ to save all the call-clobbered registers as well. */ ++ max_reg = 13; ++ save_all_call_used_regs = !current_function_is_leaf; ++ } ++ ++ /* All used registers used must be saved */ ++ for (reg = 0; reg <= max_reg; reg++) ++ if (regs_ever_live[INTERNAL_FP_REGNUM (reg)] ++ || (save_all_call_used_regs ++ && call_used_regs[INTERNAL_FP_REGNUM (reg)])) ++ save_reg_mask |= (1 << reg); ++ ++ return save_reg_mask; ++} ++ ++/*Compute mask of registers which needs saving upon function entry */ ++static unsigned long ++avr32_compute_save_reg_mask (int push) ++{ ++ unsigned long func_type; ++ unsigned int save_reg_mask = 0; ++ unsigned int reg; ++ ++ func_type = avr32_current_func_type (); ++ ++ if (IS_INTERRUPT (func_type)) ++ { ++ unsigned int max_reg = 12; ++ ++ ++ /* Get the banking scheme for the interrupt */ ++ switch (func_type) ++ { ++ case AVR32_FT_ISR_FULL: ++ max_reg = 0; ++ break; ++ case AVR32_FT_ISR_HALF: ++ max_reg = 7; ++ break; ++ case AVR32_FT_ISR_NONE: ++ max_reg = 12; ++ break; ++ } ++ ++ /* Interrupt functions must not corrupt any registers, even call ++ clobbered ones. If this is a leaf function we can just examine the ++ registers used by the RTL, but otherwise we have to assume that ++ whatever function is called might clobber anything, and so we have ++ to save all the call-clobbered registers as well. */ ++ ++ /* Need not push the registers r8-r12 for AVR32A architectures, as this ++ is automatially done in hardware. We also do not have any shadow ++ registers. */ ++ if (avr32_arch->uarch_type == UARCH_TYPE_AVR32A) ++ { ++ max_reg = 7; ++ func_type = AVR32_FT_ISR_NONE; ++ } ++ ++ /* All registers which are used and is not shadowed must be saved */ ++ for (reg = 0; reg <= max_reg; reg++) ++ if (regs_ever_live[INTERNAL_REGNUM (reg)] ++ || (!current_function_is_leaf ++ && call_used_regs[INTERNAL_REGNUM (reg)])) ++ save_reg_mask |= (1 << reg); ++ ++ /* Check LR */ ++ if ((regs_ever_live[LR_REGNUM] || !current_function_is_leaf || frame_pointer_needed) && (func_type == AVR32_FT_ISR_NONE) /* Only ++ non-shadowed ++ register ++ models ++ */ ) ++ save_reg_mask |= (1 << ASM_REGNUM (LR_REGNUM)); ++ ++ /* Make sure that the GOT register is pushed. */ ++ if (max_reg >= ASM_REGNUM (PIC_OFFSET_TABLE_REGNUM) ++ && current_function_uses_pic_offset_table) ++ save_reg_mask |= (1 << ASM_REGNUM (PIC_OFFSET_TABLE_REGNUM)); ++ ++ } ++ else ++ { ++ int use_pushm = optimize_size; ++ ++ /* In the normal case we only need to save those registers which are ++ call saved and which are used by this function. */ ++ for (reg = 0; reg <= 7; reg++) ++ if (regs_ever_live[INTERNAL_REGNUM (reg)] ++ && !call_used_regs[INTERNAL_REGNUM (reg)]) ++ save_reg_mask |= (1 << reg); ++ ++ /* Make sure that the GOT register is pushed. */ ++ if (current_function_uses_pic_offset_table) ++ save_reg_mask |= (1 << ASM_REGNUM (PIC_OFFSET_TABLE_REGNUM)); ++ ++ ++ /* If we optimize for size and do not have anonymous arguments: use ++ popm/pushm always */ ++ if (use_pushm) ++ { ++ if ((save_reg_mask & (1 << 0)) ++ || (save_reg_mask & (1 << 1)) ++ || (save_reg_mask & (1 << 2)) || (save_reg_mask & (1 << 3))) ++ save_reg_mask |= 0xf; ++ ++ if ((save_reg_mask & (1 << 4)) ++ || (save_reg_mask & (1 << 5)) ++ || (save_reg_mask & (1 << 6)) || (save_reg_mask & (1 << 7))) ++ save_reg_mask |= 0xf0; ++ ++ if ((save_reg_mask & (1 << 8)) || (save_reg_mask & (1 << 9))) ++ save_reg_mask |= 0x300; ++ } ++ ++ ++ /* Check LR */ ++ if ((regs_ever_live[LR_REGNUM] || !current_function_is_leaf || ++ (optimize_size && save_reg_mask) || frame_pointer_needed)) ++ { ++ if (push) ++ { ++ /* Push/Pop LR */ ++ save_reg_mask |= (1 << ASM_REGNUM (LR_REGNUM)); ++ } ++ else ++ { ++ /* Pop PC */ ++ save_reg_mask |= (1 << ASM_REGNUM (PC_REGNUM)); ++ } ++ } ++ } ++ ++ return save_reg_mask; ++} ++ ++/*Compute total size in bytes of all saved registers */ ++static int ++avr32_get_reg_mask_size (int reg_mask) ++{ ++ int reg, size; ++ size = 0; ++ ++ for (reg = 0; reg <= 15; reg++) ++ if (reg_mask & (1 << reg)) ++ size += 4; ++ ++ return size; ++} ++ ++/*Get a register from one of the registers which are saved onto the stack ++ upon function entry */ ++ ++static int ++avr32_get_saved_reg (int save_reg_mask) ++{ ++ unsigned int reg; ++ ++ /* Find the first register which is saved in the saved_reg_mask */ ++ for (reg = 0; reg <= 15; reg++) ++ if (save_reg_mask & (1 << reg)) ++ return reg; ++ ++ return -1; ++} ++ ++/* Return 1 if it is possible to return using a single instruction. */ ++int ++avr32_use_return_insn (int iscond) ++{ ++ unsigned int func_type = avr32_current_func_type (); ++ unsigned long saved_int_regs; ++ unsigned long saved_fp_regs; ++ ++ /* Never use a return instruction before reload has run. */ ++ if (!reload_completed) ++ return 0; ++ ++ /* Must adjust the stack for vararg functions. */ ++ if (current_function_args_info.uses_anonymous_args) ++ return 0; ++ ++ /* If there a stack adjstment. */ ++ if (get_frame_size ()) ++ return 0; ++ ++ saved_int_regs = avr32_compute_save_reg_mask (TRUE); ++ saved_fp_regs = avr32_compute_save_fp_reg_mask (); ++ ++ /* Functions which have saved fp-regs on the stack can not be performed in ++ one instruction */ ++ if (saved_fp_regs) ++ return 0; ++ ++ /* Conditional returns can not be performed in one instruction if we need ++ to restore registers from the stack */ ++ if (iscond && saved_int_regs) ++ return 0; ++ ++ /* Conditional return can not be used for interrupt handlers. */ ++ if (iscond && IS_INTERRUPT (func_type)) ++ return 0; ++ ++ /* For interrupt handlers which needs to pop registers */ ++ if (saved_int_regs && IS_INTERRUPT (func_type)) ++ return 0; ++ ++ ++ /* If there are saved registers but the LR isn't saved, then we need two ++ instructions for the return. */ ++ if (saved_int_regs && !(saved_int_regs & (1 << ASM_REGNUM (LR_REGNUM)))) ++ return 0; ++ ++ ++ return 1; ++} ++ ++ ++/*Generate some function prologue info in the assembly file*/ ++ ++void ++avr32_target_asm_function_prologue (FILE * f, HOST_WIDE_INT frame_size) ++{ ++ if (IS_NAKED (avr32_current_func_type ())) ++ fprintf (f, ++ "\t# Function is naked: Prologue and epilogue provided by programmer\n"); ++ ++ if (IS_INTERRUPT (avr32_current_func_type ())) ++ { ++ switch (avr32_current_func_type ()) ++ { ++ case AVR32_FT_ISR_FULL: ++ fprintf (f, ++ "\t# Interrupt Function: Fully shadowed register file\n"); ++ break; ++ case AVR32_FT_ISR_HALF: ++ fprintf (f, ++ "\t# Interrupt Function: Half shadowed register file\n"); ++ break; ++ default: ++ case AVR32_FT_ISR_NONE: ++ fprintf (f, "\t# Interrupt Function: No shadowed register file\n"); ++ break; ++ } ++ } ++ ++ ++ fprintf (f, "\t# args = %i, frame = %li, pretend = %i\n", ++ current_function_args_size, frame_size, ++ current_function_pretend_args_size); ++ ++ fprintf (f, "\t# frame_needed = %i, leaf_function = %i\n", ++ frame_pointer_needed, current_function_is_leaf); ++ ++ fprintf (f, "\t# uses_anonymous_args = %i\n", ++ current_function_args_info.uses_anonymous_args); ++} ++ ++ ++/* Generate and emit an insn that we will recognize as a pushm or stm. ++ Unfortunately, since this insn does not reflect very well the actual ++ semantics of the operation, we need to annotate the insn for the benefit ++ of DWARF2 frame unwind information. */ ++ ++int avr32_convert_to_reglist16 (int reglist8_vect); ++ ++static rtx ++emit_multi_reg_push (int reglist, int usePUSHM) ++{ ++ rtx insn; ++ rtx dwarf; ++ rtx tmp; ++ rtx reg; ++ int i; ++ int nr_regs; ++ int index = 0; ++ ++ if (usePUSHM) ++ { ++ insn = emit_insn (gen_pushm (gen_rtx_CONST_INT (SImode, reglist))); ++ reglist = avr32_convert_to_reglist16 (reglist); ++ } ++ else ++ { ++ insn = emit_insn (gen_stm (stack_pointer_rtx, ++ gen_rtx_CONST_INT (SImode, reglist), ++ gen_rtx_CONST_INT (SImode, 1))); ++ } ++ ++ nr_regs = avr32_get_reg_mask_size (reglist) / 4; ++ dwarf = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (nr_regs + 1)); ++ ++ for (i = 15; i >= 0; i--) ++ { ++ if (reglist & (1 << i)) ++ { ++ reg = gen_rtx_REG (SImode, INTERNAL_REGNUM (i)); ++ tmp = gen_rtx_SET (VOIDmode, ++ gen_rtx_MEM (SImode, ++ plus_constant (stack_pointer_rtx, ++ 4 * index)), reg); ++ RTX_FRAME_RELATED_P (tmp) = 1; ++ XVECEXP (dwarf, 0, 1 + index++) = tmp; ++ } ++ } ++ ++ tmp = gen_rtx_SET (SImode, ++ stack_pointer_rtx, ++ gen_rtx_PLUS (SImode, ++ stack_pointer_rtx, ++ GEN_INT (-4 * nr_regs))); ++ RTX_FRAME_RELATED_P (tmp) = 1; ++ XVECEXP (dwarf, 0, 0) = tmp; ++ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, dwarf, ++ REG_NOTES (insn)); ++ return insn; ++} ++ ++ ++static rtx ++emit_multi_fp_reg_push (int reglist) ++{ ++ rtx insn; ++ rtx dwarf; ++ rtx tmp; ++ rtx reg; ++ int i; ++ int nr_regs; ++ int index = 0; ++ ++ insn = emit_insn (gen_stm_fp (stack_pointer_rtx, ++ gen_rtx_CONST_INT (SImode, reglist), ++ gen_rtx_CONST_INT (SImode, 1))); ++ ++ nr_regs = avr32_get_reg_mask_size (reglist) / 4; ++ dwarf = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (nr_regs + 1)); ++ ++ for (i = 15; i >= 0; i--) ++ { ++ if (reglist & (1 << i)) ++ { ++ reg = gen_rtx_REG (SImode, INTERNAL_FP_REGNUM (i)); ++ tmp = gen_rtx_SET (VOIDmode, ++ gen_rtx_MEM (SImode, ++ plus_constant (stack_pointer_rtx, ++ 4 * index)), reg); ++ RTX_FRAME_RELATED_P (tmp) = 1; ++ XVECEXP (dwarf, 0, 1 + index++) = tmp; ++ } ++ } ++ ++ tmp = gen_rtx_SET (SImode, ++ stack_pointer_rtx, ++ gen_rtx_PLUS (SImode, ++ stack_pointer_rtx, ++ GEN_INT (-4 * nr_regs))); ++ RTX_FRAME_RELATED_P (tmp) = 1; ++ XVECEXP (dwarf, 0, 0) = tmp; ++ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, dwarf, ++ REG_NOTES (insn)); ++ return insn; ++} ++ ++rtx ++avr32_gen_load_multiple (rtx * regs, int count, rtx from, ++ int write_back, int in_struct_p, int scalar_p) ++{ ++ ++ rtx result; ++ int i = 0, j; ++ ++ result = ++ gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count + (write_back ? 1 : 0))); ++ ++ if (write_back) ++ { ++ XVECEXP (result, 0, 0) ++ = gen_rtx_SET (GET_MODE (from), from, ++ plus_constant (from, count * 4)); ++ i = 1; ++ count++; ++ } ++ ++ ++ for (j = 0; i < count; i++, j++) ++ { ++ rtx unspec; ++ rtx mem = gen_rtx_MEM (SImode, plus_constant (from, j * 4)); ++ MEM_IN_STRUCT_P (mem) = in_struct_p; ++ MEM_SCALAR_P (mem) = scalar_p; ++ unspec = gen_rtx_UNSPEC (VOIDmode, gen_rtvec (1, mem), UNSPEC_LDM); ++ XVECEXP (result, 0, i) = gen_rtx_SET (VOIDmode, regs[j], unspec); ++ } ++ ++ return result; ++} ++ ++ ++rtx ++avr32_gen_store_multiple (rtx * regs, int count, rtx to, ++ int in_struct_p, int scalar_p) ++{ ++ rtx result; ++ int i = 0, j; ++ ++ result = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count)); ++ ++ for (j = 0; i < count; i++, j++) ++ { ++ rtx mem = gen_rtx_MEM (SImode, plus_constant (to, j * 4)); ++ MEM_IN_STRUCT_P (mem) = in_struct_p; ++ MEM_SCALAR_P (mem) = scalar_p; ++ XVECEXP (result, 0, i) ++ = gen_rtx_SET (VOIDmode, mem, ++ gen_rtx_UNSPEC (VOIDmode, ++ gen_rtvec (1, regs[j]), ++ UNSPEC_STORE_MULTIPLE)); ++ } ++ ++ return result; ++} ++ ++ ++/* Move a block of memory if it is word aligned or we support unaligned ++ word memory accesses. The size must be maximum 64 bytes. */ ++ ++int ++avr32_gen_movmemsi (rtx * operands) ++{ ++ HOST_WIDE_INT bytes_to_go; ++ rtx src, dst; ++ rtx st_src, st_dst; ++ int ptr_offset = 0; ++ int block_size; ++ int dst_in_struct_p, src_in_struct_p; ++ int dst_scalar_p, src_scalar_p; ++ int unaligned; ++ ++ if (GET_CODE (operands[2]) != CONST_INT ++ || GET_CODE (operands[3]) != CONST_INT ++ || INTVAL (operands[2]) > 64 ++ || ((INTVAL (operands[3]) & 3) && !TARGET_UNALIGNED_WORD)) ++ return 0; ++ ++ unaligned = (INTVAL (operands[3]) & 3) != 0; ++ ++ block_size = 4; ++ ++ st_dst = XEXP (operands[0], 0); ++ st_src = XEXP (operands[1], 0); ++ ++ dst_in_struct_p = MEM_IN_STRUCT_P (operands[0]); ++ dst_scalar_p = MEM_SCALAR_P (operands[0]); ++ src_in_struct_p = MEM_IN_STRUCT_P (operands[1]); ++ src_scalar_p = MEM_SCALAR_P (operands[1]); ++ ++ dst = copy_to_mode_reg (SImode, st_dst); ++ src = copy_to_mode_reg (SImode, st_src); ++ ++ bytes_to_go = INTVAL (operands[2]); ++ ++ while (bytes_to_go) ++ { ++ enum machine_mode move_mode; ++ /* Seems to be a problem with reloads for the movti pattern so this is ++ disabled until that problem is resolved */ ++ ++ /* if ( bytes_to_go >= GET_MODE_SIZE(TImode) ) move_mode = TImode; else ++ */ ++ if ((bytes_to_go >= GET_MODE_SIZE (DImode)) && !unaligned) ++ move_mode = DImode; ++ else if (bytes_to_go >= GET_MODE_SIZE (SImode)) ++ move_mode = SImode; ++ else ++ move_mode = QImode; ++ ++ { ++ rtx dst_mem = gen_rtx_MEM (move_mode, ++ gen_rtx_PLUS (SImode, dst, ++ GEN_INT (ptr_offset))); ++ rtx src_mem = gen_rtx_MEM (move_mode, ++ gen_rtx_PLUS (SImode, src, ++ GEN_INT (ptr_offset))); ++ ptr_offset += GET_MODE_SIZE (move_mode); ++ bytes_to_go -= GET_MODE_SIZE (move_mode); ++ ++ MEM_IN_STRUCT_P (dst_mem) = dst_in_struct_p; ++ MEM_SCALAR_P (dst_mem) = dst_scalar_p; ++ ++ MEM_IN_STRUCT_P (src_mem) = src_in_struct_p; ++ MEM_SCALAR_P (src_mem) = src_scalar_p; ++ emit_move_insn (dst_mem, src_mem); ++ ++ } ++ } ++ ++ return 1; ++} ++ ++ ++ ++/*Expand the prologue instruction*/ ++void ++avr32_expand_prologue (void) ++{ ++ rtx insn, dwarf; ++ unsigned long saved_reg_mask, saved_fp_reg_mask; ++ int reglist8 = 0; ++ ++ /* Naked functions does not have a prologue */ ++ if (IS_NAKED (avr32_current_func_type ())) ++ return; ++ ++ saved_reg_mask = avr32_compute_save_reg_mask (TRUE); ++ ++ if (saved_reg_mask) ++ { ++ /* Must push used registers */ ++ ++ /* Should we use POPM or LDM? */ ++ int usePUSHM = TRUE; ++ reglist8 = 0; ++ if (((saved_reg_mask & (1 << 0)) || ++ (saved_reg_mask & (1 << 1)) || ++ (saved_reg_mask & (1 << 2)) || (saved_reg_mask & (1 << 3)))) ++ { ++ /* One of R0-R3 should at least be pushed */ ++ if (((saved_reg_mask & (1 << 0)) && ++ (saved_reg_mask & (1 << 1)) && ++ (saved_reg_mask & (1 << 2)) && (saved_reg_mask & (1 << 3)))) ++ { ++ /* All should be pushed */ ++ reglist8 |= 0x01; ++ } ++ else ++ { ++ usePUSHM = FALSE; ++ } ++ } ++ ++ if (((saved_reg_mask & (1 << 4)) || ++ (saved_reg_mask & (1 << 5)) || ++ (saved_reg_mask & (1 << 6)) || (saved_reg_mask & (1 << 7)))) ++ { ++ /* One of R4-R7 should at least be pushed */ ++ if (((saved_reg_mask & (1 << 4)) && ++ (saved_reg_mask & (1 << 5)) && ++ (saved_reg_mask & (1 << 6)) && (saved_reg_mask & (1 << 7)))) ++ { ++ if (usePUSHM) ++ /* All should be pushed */ ++ reglist8 |= 0x02; ++ } ++ else ++ { ++ usePUSHM = FALSE; ++ } ++ } ++ ++ if (((saved_reg_mask & (1 << 8)) || (saved_reg_mask & (1 << 9)))) ++ { ++ /* One of R8-R9 should at least be pushed */ ++ if (((saved_reg_mask & (1 << 8)) && (saved_reg_mask & (1 << 9)))) ++ { ++ if (usePUSHM) ++ /* All should be pushed */ ++ reglist8 |= 0x04; ++ } ++ else ++ { ++ usePUSHM = FALSE; ++ } ++ } ++ ++ if (saved_reg_mask & (1 << 10)) ++ reglist8 |= 0x08; ++ ++ if (saved_reg_mask & (1 << 11)) ++ reglist8 |= 0x10; ++ ++ if (saved_reg_mask & (1 << 12)) ++ reglist8 |= 0x20; ++ ++ if (saved_reg_mask & (1 << ASM_REGNUM (LR_REGNUM))) ++ { ++ /* Push LR */ ++ reglist8 |= 0x40; ++ } ++ ++ if (usePUSHM) ++ { ++ insn = emit_multi_reg_push (reglist8, TRUE); ++ } ++ else ++ { ++ insn = emit_multi_reg_push (saved_reg_mask, FALSE); ++ } ++ RTX_FRAME_RELATED_P (insn) = 1; ++ ++ /* Prevent this instruction from being scheduled after any other ++ instructions. */ ++ emit_insn (gen_blockage ()); ++ } ++ ++ saved_fp_reg_mask = avr32_compute_save_fp_reg_mask (); ++ if (saved_fp_reg_mask) ++ { ++ insn = emit_multi_fp_reg_push (saved_fp_reg_mask); ++ RTX_FRAME_RELATED_P (insn) = 1; ++ ++ /* Prevent this instruction from being scheduled after any other ++ instructions. */ ++ emit_insn (gen_blockage ()); ++ } ++ ++ /* Set frame pointer */ ++ if (frame_pointer_needed) ++ { ++ insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx); ++ RTX_FRAME_RELATED_P (insn) = 1; ++ } ++ ++ if (get_frame_size () > 0) ++ { ++ if (avr32_const_ok_for_constraint_p (get_frame_size (), 'K', "Ks21")) ++ { ++ insn = emit_insn (gen_rtx_SET (SImode, ++ stack_pointer_rtx, ++ gen_rtx_PLUS (SImode, ++ stack_pointer_rtx, ++ gen_rtx_CONST_INT ++ (SImode, ++ -get_frame_size ++ ())))); ++ RTX_FRAME_RELATED_P (insn) = 1; ++ } ++ else ++ { ++ /* Immediate is larger than k21 We must either check if we can use ++ one of the pushed reegisters as temporary storage or we must ++ make us a temp register by pushing a register to the stack. */ ++ rtx temp_reg, const_pool_entry, insn; ++ if (saved_reg_mask) ++ { ++ temp_reg = ++ gen_rtx_REG (SImode, ++ INTERNAL_REGNUM (avr32_get_saved_reg ++ (saved_reg_mask))); ++ } ++ else ++ { ++ temp_reg = gen_rtx_REG (SImode, INTERNAL_REGNUM (7)); ++ emit_move_insn (gen_rtx_MEM ++ (SImode, ++ gen_rtx_PRE_DEC (SImode, stack_pointer_rtx)), ++ temp_reg); ++ } ++ ++ const_pool_entry = ++ force_const_mem (SImode, ++ gen_rtx_CONST_INT (SImode, get_frame_size ())); ++ emit_move_insn (temp_reg, const_pool_entry); ++ ++ insn = emit_insn (gen_rtx_SET (SImode, ++ stack_pointer_rtx, ++ gen_rtx_MINUS (SImode, ++ stack_pointer_rtx, ++ temp_reg))); ++ ++ dwarf = gen_rtx_SET (VOIDmode, stack_pointer_rtx, ++ gen_rtx_PLUS (SImode, stack_pointer_rtx, ++ GEN_INT (-get_frame_size ()))); ++ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, ++ dwarf, REG_NOTES (insn)); ++ RTX_FRAME_RELATED_P (insn) = 1; ++ ++ if (!saved_reg_mask) ++ { ++ insn = ++ emit_move_insn (temp_reg, ++ gen_rtx_MEM (SImode, ++ gen_rtx_POST_INC (SImode, ++ gen_rtx_REG ++ (SImode, ++ 13)))); ++ } ++ ++ /* Mark the temp register as dead */ ++ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_DEAD, temp_reg, ++ REG_NOTES (insn)); ++ ++ ++ } ++ ++ /* Prevent the the stack adjustment to be scheduled after any ++ instructions using the frame pointer. */ ++ emit_insn (gen_blockage ()); ++ } ++ ++ /* Load GOT */ ++ if (flag_pic) ++ { ++ avr32_load_pic_register (); ++ ++ /* gcc does not know that load or call instructions might use the pic ++ register so it might schedule these instructions before the loading ++ of the pic register. To avoid this emit a barrier for now. TODO! ++ Find out a better way to let gcc know which instructions might use ++ the pic register. */ ++ emit_insn (gen_blockage ()); ++ } ++ return; ++} ++ ++void ++avr32_set_return_address (rtx source) ++{ ++ rtx addr; ++ unsigned long saved_regs; ++ ++ saved_regs = avr32_compute_save_reg_mask (TRUE); ++ ++ if (!(saved_regs & (1 << ASM_REGNUM (LR_REGNUM)))) ++ emit_move_insn (gen_rtx_REG (Pmode, LR_REGNUM), source); ++ else ++ { ++ if (frame_pointer_needed) ++ addr = gen_rtx_REG (Pmode, FRAME_POINTER_REGNUM); ++ else ++ /* FIXME: Need to use scratch register if frame is large */ ++ addr = plus_constant (stack_pointer_rtx, get_frame_size ()); ++ ++ emit_move_insn (gen_rtx_MEM (Pmode, addr), source); ++ } ++} ++ ++ ++ ++/* Return the length of INSN. LENGTH is the initial length computed by ++ attributes in the machine-description file. */ ++ ++int ++avr32_adjust_insn_length (rtx insn ATTRIBUTE_UNUSED, ++ int length ATTRIBUTE_UNUSED) ++{ ++ return length; ++} ++ ++void ++avr32_output_return_instruction (int single_ret_inst ATTRIBUTE_UNUSED, ++ int iscond ATTRIBUTE_UNUSED, ++ rtx cond ATTRIBUTE_UNUSED, rtx r12_imm) ++{ ++ ++ unsigned long saved_reg_mask, saved_fp_reg_mask; ++ int insert_ret = TRUE; ++ int reglist8 = 0; ++ int stack_adjustment = get_frame_size (); ++ unsigned int func_type = avr32_current_func_type (); ++ FILE *f = asm_out_file; ++ ++ /* Naked functions does not have an epilogue */ ++ if (IS_NAKED (func_type)) ++ return; ++ ++ saved_fp_reg_mask = avr32_compute_save_fp_reg_mask (); ++ ++ saved_reg_mask = avr32_compute_save_reg_mask (FALSE); ++ ++ /* Reset frame pointer */ ++ if (stack_adjustment > 0) ++ { ++ if (avr32_const_ok_for_constraint_p (stack_adjustment, 'I', "Is21")) ++ { ++ fprintf (f, "\tsub sp, %i # Reset Frame Pointer\n", ++ -stack_adjustment); ++ } ++ else ++ { ++ /* TODO! Is it safe to use r8 as scratch?? */ ++ fprintf (f, "\tmov r8, lo(%i) # Reset Frame Pointer\n", ++ -stack_adjustment); ++ fprintf (f, "\torh r8, hi(%i) # Reset Frame Pointer\n", ++ -stack_adjustment); ++ fprintf (f, "\tadd sp,r8 # Reset Frame Pointer\n"); ++ } ++ } ++ ++ if (saved_fp_reg_mask) ++ { ++ char reglist[64]; /* 64 bytes should be enough... */ ++ avr32_make_fp_reglist_w (saved_fp_reg_mask, (char *) reglist); ++ fprintf (f, "\tldcm.w\tcp0, sp++, %s\n", reglist); ++ if (saved_fp_reg_mask & ~0xff) ++ { ++ saved_fp_reg_mask &= ~0xff; ++ avr32_make_fp_reglist_d (saved_fp_reg_mask, (char *) reglist); ++ fprintf (f, "\tldcm.d\tcp0, sp++, %s\n", reglist); ++ } ++ } ++ ++ if (saved_reg_mask) ++ { ++ /* Must pop used registers */ ++ ++ /* Should we use POPM or LDM? */ ++ int usePOPM = TRUE; ++ if (((saved_reg_mask & (1 << 0)) || ++ (saved_reg_mask & (1 << 1)) || ++ (saved_reg_mask & (1 << 2)) || (saved_reg_mask & (1 << 3)))) ++ { ++ /* One of R0-R3 should at least be popped */ ++ if (((saved_reg_mask & (1 << 0)) && ++ (saved_reg_mask & (1 << 1)) && ++ (saved_reg_mask & (1 << 2)) && (saved_reg_mask & (1 << 3)))) ++ { ++ /* All should be popped */ ++ reglist8 |= 0x01; ++ } ++ else ++ { ++ usePOPM = FALSE; ++ } ++ } ++ ++ if (((saved_reg_mask & (1 << 4)) || ++ (saved_reg_mask & (1 << 5)) || ++ (saved_reg_mask & (1 << 6)) || (saved_reg_mask & (1 << 7)))) ++ { ++ /* One of R0-R3 should at least be popped */ ++ if (((saved_reg_mask & (1 << 4)) && ++ (saved_reg_mask & (1 << 5)) && ++ (saved_reg_mask & (1 << 6)) && (saved_reg_mask & (1 << 7)))) ++ { ++ if (usePOPM) ++ /* All should be popped */ ++ reglist8 |= 0x02; ++ } ++ else ++ { ++ usePOPM = FALSE; ++ } ++ } ++ ++ if (((saved_reg_mask & (1 << 8)) || (saved_reg_mask & (1 << 9)))) ++ { ++ /* One of R8-R9 should at least be pushed */ ++ if (((saved_reg_mask & (1 << 8)) && (saved_reg_mask & (1 << 9)))) ++ { ++ if (usePOPM) ++ /* All should be pushed */ ++ reglist8 |= 0x04; ++ } ++ else ++ { ++ usePOPM = FALSE; ++ } ++ } ++ ++ if (saved_reg_mask & (1 << 10)) ++ reglist8 |= 0x08; ++ ++ if (saved_reg_mask & (1 << 11)) ++ reglist8 |= 0x10; ++ ++ if (saved_reg_mask & (1 << 12)) ++ reglist8 |= 0x20; ++ ++ if (saved_reg_mask & (1 << ASM_REGNUM (LR_REGNUM))) ++ /* Pop LR */ ++ reglist8 |= 0x40; ++ ++ if (saved_reg_mask & (1 << ASM_REGNUM (PC_REGNUM))) ++ /* Pop LR into PC. */ ++ reglist8 |= 0x80; ++ ++ if (usePOPM) ++ { ++ char reglist[64]; /* 64 bytes should be enough... */ ++ avr32_make_reglist8 (reglist8, (char *) reglist); ++ ++ if (reglist8 & 0x80) ++ /* This instruction is also a return */ ++ insert_ret = FALSE; ++ ++ if (r12_imm && !insert_ret) ++ fprintf (f, "\tpopm %s, r12=%li\n", reglist, INTVAL (r12_imm)); ++ else ++ fprintf (f, "\tpopm %s\n", reglist); ++ ++ } ++ else ++ { ++ char reglist[64]; /* 64 bytes should be enough... */ ++ avr32_make_reglist16 (saved_reg_mask, (char *) reglist); ++ if (saved_reg_mask & (1 << ASM_REGNUM (PC_REGNUM))) ++ /* This instruction is also a return */ ++ insert_ret = FALSE; ++ ++ if (r12_imm && !insert_ret) ++ fprintf (f, "\tldm sp++, %s, r12=%li\n", reglist, ++ INTVAL (r12_imm)); ++ else ++ fprintf (f, "\tldm sp++, %s\n", reglist); ++ ++ } ++ ++ } ++ ++ if (IS_INTERRUPT (func_type)) ++ { ++ fprintf (f, "\trete\n"); ++ } ++ else if (insert_ret) ++ { ++ if (r12_imm) ++ fprintf (f, "\tretal %li\n", INTVAL (r12_imm)); ++ else ++ fprintf (f, "\tretal r12\n"); ++ } ++} ++ ++/* Function for converting a fp-register mask to a ++ reglistCPD8 register list string. */ ++void ++avr32_make_fp_reglist_d (int reglist_mask, char *reglist_string) ++{ ++ int i; ++ ++ /* Make sure reglist_string is empty */ ++ reglist_string[0] = '\0'; ++ ++ for (i = 0; i < NUM_FP_REGS; i += 2) ++ { ++ if (reglist_mask & (1 << i)) ++ { ++ strlen (reglist_string) ? ++ sprintf (reglist_string, "%s, %s-%s", reglist_string, ++ reg_names[INTERNAL_FP_REGNUM (i)], ++ reg_names[INTERNAL_FP_REGNUM (i + 1)]) : ++ sprintf (reglist_string, "%s-%s", ++ reg_names[INTERNAL_FP_REGNUM (i)], ++ reg_names[INTERNAL_FP_REGNUM (i + 1)]); ++ } ++ } ++} ++ ++/* Function for converting a fp-register mask to a ++ reglistCP8 register list string. */ ++void ++avr32_make_fp_reglist_w (int reglist_mask, char *reglist_string) ++{ ++ int i; ++ ++ /* Make sure reglist_string is empty */ ++ reglist_string[0] = '\0'; ++ ++ for (i = 0; i < NUM_FP_REGS; ++i) ++ { ++ if (reglist_mask & (1 << i)) ++ { ++ strlen (reglist_string) ? ++ sprintf (reglist_string, "%s, %s", reglist_string, ++ reg_names[INTERNAL_FP_REGNUM (i)]) : ++ sprintf (reglist_string, "%s", reg_names[INTERNAL_FP_REGNUM (i)]); ++ } ++ } ++} ++ ++void ++avr32_make_reglist16 (int reglist16_vect, char *reglist16_string) ++{ ++ int i; ++ ++ /* Make sure reglist16_string is empty */ ++ reglist16_string[0] = '\0'; ++ ++ for (i = 0; i < 16; ++i) ++ { ++ if (reglist16_vect & (1 << i)) ++ { ++ strlen (reglist16_string) ? ++ sprintf (reglist16_string, "%s, %s", reglist16_string, ++ reg_names[INTERNAL_REGNUM (i)]) : ++ sprintf (reglist16_string, "%s", reg_names[INTERNAL_REGNUM (i)]); ++ } ++ } ++} ++ ++int ++avr32_convert_to_reglist16 (int reglist8_vect) ++{ ++ int reglist16_vect = 0; ++ if (reglist8_vect & 0x1) ++ reglist16_vect |= 0xF; ++ if (reglist8_vect & 0x2) ++ reglist16_vect |= 0xF0; ++ if (reglist8_vect & 0x4) ++ reglist16_vect |= 0x300; ++ if (reglist8_vect & 0x8) ++ reglist16_vect |= 0x400; ++ if (reglist8_vect & 0x10) ++ reglist16_vect |= 0x800; ++ if (reglist8_vect & 0x20) ++ reglist16_vect |= 0x1000; ++ if (reglist8_vect & 0x40) ++ reglist16_vect |= 0x4000; ++ if (reglist8_vect & 0x80) ++ reglist16_vect |= 0x8000; ++ ++ return reglist16_vect; ++} ++ ++void ++avr32_make_reglist8 (int reglist8_vect, char *reglist8_string) ++{ ++ /* Make sure reglist8_string is empty */ ++ reglist8_string[0] = '\0'; ++ ++ if (reglist8_vect & 0x1) ++ sprintf (reglist8_string, "r0-r3"); ++ if (reglist8_vect & 0x2) ++ strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r4-r7", ++ reglist8_string) : ++ sprintf (reglist8_string, "r4-r7"); ++ if (reglist8_vect & 0x4) ++ strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r8-r9", ++ reglist8_string) : ++ sprintf (reglist8_string, "r8-r9"); ++ if (reglist8_vect & 0x8) ++ strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r10", ++ reglist8_string) : ++ sprintf (reglist8_string, "r10"); ++ if (reglist8_vect & 0x10) ++ strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r11", ++ reglist8_string) : ++ sprintf (reglist8_string, "r11"); ++ if (reglist8_vect & 0x20) ++ strlen (reglist8_string) ? sprintf (reglist8_string, "%s, r12", ++ reglist8_string) : ++ sprintf (reglist8_string, "r12"); ++ if (reglist8_vect & 0x40) ++ strlen (reglist8_string) ? sprintf (reglist8_string, "%s, lr", ++ reglist8_string) : ++ sprintf (reglist8_string, "lr"); ++ if (reglist8_vect & 0x80) ++ strlen (reglist8_string) ? sprintf (reglist8_string, "%s, pc", ++ reglist8_string) : ++ sprintf (reglist8_string, "pc"); ++} ++ ++int ++avr32_eh_return_data_regno (int n) ++{ ++ if (n >= 0 && n <= 3) ++ return 8 + n; ++ else ++ return INVALID_REGNUM; ++} ++ ++/* Compute the distance from register FROM to register TO. ++ These can be the arg pointer, the frame pointer or ++ the stack pointer. ++ Typical stack layout looks like this: ++ ++ old stack pointer -> | | ++ ---- ++ | | \ ++ | | saved arguments for ++ | | vararg functions ++ arg_pointer -> | | / ++ -- ++ | | \ ++ | | call saved ++ | | registers ++ | | / ++ frame ptr -> -- ++ | | \ ++ | | local ++ | | variables ++ stack ptr --> | | / ++ -- ++ | | \ ++ | | outgoing ++ | | arguments ++ | | / ++ -- ++ ++ For a given funciton some or all of these stack compomnents ++ may not be needed, giving rise to the possibility of ++ eliminating some of the registers. ++ ++ The values returned by this function must reflect the behaviour ++ of avr32_expand_prologue() and avr32_compute_save_reg_mask(). ++ ++ The sign of the number returned reflects the direction of stack ++ growth, so the values are positive for all eliminations except ++ from the soft frame pointer to the hard frame pointer. */ ++ ++ ++int ++avr32_initial_elimination_offset (int from, int to) ++{ ++ int i; ++ int call_saved_regs = 0; ++ unsigned long saved_reg_mask, saved_fp_reg_mask; ++ unsigned int local_vars = get_frame_size (); ++ ++ saved_reg_mask = avr32_compute_save_reg_mask (TRUE); ++ saved_fp_reg_mask = avr32_compute_save_fp_reg_mask (); ++ ++ for (i = 0; i < 16; ++i) ++ { ++ if (saved_reg_mask & (1 << i)) ++ call_saved_regs += 4; ++ } ++ ++ for (i = 0; i < NUM_FP_REGS; ++i) ++ { ++ if (saved_fp_reg_mask & (1 << i)) ++ call_saved_regs += 4; ++ } ++ ++ switch (from) ++ { ++ case ARG_POINTER_REGNUM: ++ switch (to) ++ { ++ case STACK_POINTER_REGNUM: ++ return call_saved_regs + local_vars; ++ case FRAME_POINTER_REGNUM: ++ return call_saved_regs; ++ default: ++ abort (); ++ } ++ case FRAME_POINTER_REGNUM: ++ switch (to) ++ { ++ case STACK_POINTER_REGNUM: ++ return local_vars; ++ default: ++ abort (); ++ } ++ default: ++ abort (); ++ } ++} ++ ++ ++/* ++ Returns a rtx used when passing the next argument to a function. ++ avr32_init_cumulative_args() and avr32_function_arg_advance() sets witch ++ register to use. ++*/ ++rtx ++avr32_function_arg (CUMULATIVE_ARGS * cum, enum machine_mode mode, ++ tree type, int named) ++{ ++ int index = -1; ++ ++ HOST_WIDE_INT arg_size, arg_rsize; ++ if (type) ++ { ++ arg_size = int_size_in_bytes (type); ++ } ++ else ++ { ++ arg_size = GET_MODE_SIZE (mode); ++ } ++ arg_rsize = PUSH_ROUNDING (arg_size); ++ ++ /* ++ The last time this macro is called, it is called with mode == VOIDmode, ++ and its result is passed to the call or call_value pattern as operands 2 ++ and 3 respectively. */ ++ if (mode == VOIDmode) ++ { ++ return gen_rtx_CONST_INT (SImode, 22); /* ToDo: fixme. */ ++ } ++ ++ if ((*targetm.calls.must_pass_in_stack) (mode, type) || !named) ++ { ++ return NULL_RTX; ++ } ++ ++ if (arg_rsize == 8) ++ { ++ /* use r11:r10 or r9:r8. */ ++ if (!(GET_USED_INDEX (cum, 1) || GET_USED_INDEX (cum, 2))) ++ index = 1; ++ else if (!(GET_USED_INDEX (cum, 3) || GET_USED_INDEX (cum, 4))) ++ index = 3; ++ else ++ index = -1; ++ } ++ else if (arg_rsize == 4) ++ { /* Use first available register */ ++ index = 0; ++ while (index <= LAST_CUM_REG_INDEX && GET_USED_INDEX (cum, index)) ++ index++; ++ if (index > LAST_CUM_REG_INDEX) ++ index = -1; ++ } ++ ++ SET_REG_INDEX (cum, index); ++ ++ if (GET_REG_INDEX (cum) >= 0) ++ return gen_rtx_REG (mode, ++ avr32_function_arg_reglist[GET_REG_INDEX (cum)]); ++ ++ return NULL_RTX; ++} ++ ++/* ++ Set the register used for passing the first argument to a function. ++*/ ++void ++avr32_init_cumulative_args (CUMULATIVE_ARGS * cum, tree fntype, ++ rtx libname ATTRIBUTE_UNUSED, ++ tree fndecl ATTRIBUTE_UNUSED) ++{ ++ /* Set all registers as unused. */ ++ SET_INDEXES_UNUSED (cum); ++ ++ /* Reset uses_anonymous_args */ ++ cum->uses_anonymous_args = 0; ++ ++ /* Reset size of stack pushed arguments */ ++ cum->stack_pushed_args_size = 0; ++ ++ /* If the function is returning a value passed in memory r12 is used as a ++ Return Value Pointer. */ ++ ++ if (fntype != 0 && avr32_return_in_memory (TREE_TYPE (fntype), fntype)) ++ { ++ SET_REG_INDEX (cum, 0); ++ SET_USED_INDEX (cum, GET_REG_INDEX (cum)); ++ } ++} ++ ++/* ++ Set register used for passing the next argument to a function. Only the ++ Scratch Registers are used. ++ ++ number name ++ 15 r15 PC ++ 14 r14 LR ++ 13 r13 _SP_________ ++ FIRST_CUM_REG 12 r12 _||_ ++ 10 r11 || ++ 11 r10 _||_ Scratch Registers ++ 8 r9 || ++ LAST_SCRATCH_REG 9 r8 _\/_________ ++ 6 r7 /\ ++ 7 r6 || ++ 4 r5 || ++ 5 r4 || ++ 2 r3 || ++ 3 r2 || ++ 0 r1 || ++ 1 r0 _||_________ ++ ++*/ ++void ++avr32_function_arg_advance (CUMULATIVE_ARGS * cum, enum machine_mode mode, ++ tree type, int named ATTRIBUTE_UNUSED) ++{ ++ HOST_WIDE_INT arg_size, arg_rsize; ++ ++ if (type) ++ { ++ arg_size = int_size_in_bytes (type); ++ } ++ else ++ { ++ arg_size = GET_MODE_SIZE (mode); ++ } ++ arg_rsize = PUSH_ROUNDING (arg_size); ++ ++ /* It the argument had to be passed in stack, no register is used. */ ++ if ((*targetm.calls.must_pass_in_stack) (mode, type)) ++ { ++ cum->stack_pushed_args_size += PUSH_ROUNDING (int_size_in_bytes (type)); ++ return; ++ } ++ ++ /* Mark the used registers as "used". */ ++ if (GET_REG_INDEX (cum) >= 0) ++ { ++ SET_USED_INDEX (cum, GET_REG_INDEX (cum)); ++ if (arg_rsize == 8) ++ { ++ SET_USED_INDEX (cum, (GET_REG_INDEX (cum) + 1)); ++ } ++ } ++ else ++ { ++ /* Had to use stack */ ++ cum->stack_pushed_args_size += arg_rsize; ++ } ++} ++ ++/* ++ Defines witch direction to go to find the next register to use if the ++ argument is larger then one register or for arguments shorter than an ++ int which is not promoted, such as the last part of structures with ++ size not a multiple of 4. */ ++enum direction ++avr32_function_arg_padding (enum machine_mode mode ATTRIBUTE_UNUSED, ++ tree type) ++{ ++ /* Pad upward for all aggregates except byte and halfword sized aggregates ++ which can be passed in registers. */ ++ if (type ++ && AGGREGATE_TYPE_P (type) ++ && (int_size_in_bytes (type) != 1) ++ && !((int_size_in_bytes (type) == 2) ++ && TYPE_ALIGN_UNIT (type) >= 2) ++ && (int_size_in_bytes (type) & 0x3)) ++ { ++ return upward; ++ } ++ ++ return downward; ++} ++ ++/* ++ Return a rtx used for the return value from a function call. ++*/ ++rtx ++avr32_function_value (tree type, tree func) ++{ ++ if (avr32_return_in_memory (type, func)) ++ return NULL_RTX; ++ ++ if (int_size_in_bytes (type) <= 4) ++ if (avr32_return_in_msb (type)) ++ /* Aggregates of size less than a word which does align the data in the ++ MSB must use SImode for r12. */ ++ return gen_rtx_REG (SImode, RET_REGISTER); ++ else ++ return gen_rtx_REG (TYPE_MODE (type), RET_REGISTER); ++ else if (int_size_in_bytes (type) <= 8) ++ return gen_rtx_REG (TYPE_MODE (type), INTERNAL_REGNUM (11)); ++ ++ return NULL_RTX; ++} ++ ++/* ++ Return a rtx used for the return value from a library function call. ++*/ ++rtx ++avr32_libcall_value (enum machine_mode mode) ++{ ++ ++ if (GET_MODE_SIZE (mode) <= 4) ++ return gen_rtx_REG (mode, RET_REGISTER); ++ else if (GET_MODE_SIZE (mode) <= 8) ++ return gen_rtx_REG (mode, INTERNAL_REGNUM (11)); ++ else ++ return NULL_RTX; ++} ++ ++/* Return TRUE if X references a SYMBOL_REF. */ ++int ++symbol_mentioned_p (rtx x) ++{ ++ const char *fmt; ++ int i; ++ ++ if (GET_CODE (x) == SYMBOL_REF) ++ return 1; ++ ++ fmt = GET_RTX_FORMAT (GET_CODE (x)); ++ ++ for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--) ++ { ++ if (fmt[i] == 'E') ++ { ++ int j; ++ ++ for (j = XVECLEN (x, i) - 1; j >= 0; j--) ++ if (symbol_mentioned_p (XVECEXP (x, i, j))) ++ return 1; ++ } ++ else if (fmt[i] == 'e' && symbol_mentioned_p (XEXP (x, i))) ++ return 1; ++ } ++ ++ return 0; ++} ++ ++/* Return TRUE if X references a LABEL_REF. */ ++int ++label_mentioned_p (rtx x) ++{ ++ const char *fmt; ++ int i; ++ ++ if (GET_CODE (x) == LABEL_REF) ++ return 1; ++ ++ fmt = GET_RTX_FORMAT (GET_CODE (x)); ++ for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--) ++ { ++ if (fmt[i] == 'E') ++ { ++ int j; ++ ++ for (j = XVECLEN (x, i) - 1; j >= 0; j--) ++ if (label_mentioned_p (XVECEXP (x, i, j))) ++ return 1; ++ } ++ else if (fmt[i] == 'e' && label_mentioned_p (XEXP (x, i))) ++ return 1; ++ } ++ ++ return 0; ++} ++ ++ ++int ++avr32_legitimate_pic_operand_p (rtx x) ++{ ++ ++ /* We can't have const, this must be broken down to a symbol. */ ++ if (GET_CODE (x) == CONST) ++ return FALSE; ++ ++ /* Can't access symbols or labels via the constant pool either */ ++ if ((GET_CODE (x) == SYMBOL_REF ++ && CONSTANT_POOL_ADDRESS_P (x) ++ && (symbol_mentioned_p (get_pool_constant (x)) ++ || label_mentioned_p (get_pool_constant (x))))) ++ return FALSE; ++ ++ return TRUE; ++} ++ ++ ++rtx ++legitimize_pic_address (rtx orig, enum machine_mode mode ATTRIBUTE_UNUSED, ++ rtx reg) ++{ ++ ++ if (GET_CODE (orig) == SYMBOL_REF || GET_CODE (orig) == LABEL_REF) ++ { ++ int subregs = 0; ++ ++ if (reg == 0) ++ { ++ if (no_new_pseudos) ++ abort (); ++ else ++ reg = gen_reg_rtx (Pmode); ++ ++ subregs = 1; ++ } ++ ++ emit_move_insn (reg, orig); ++ ++ /* Only set current function as using pic offset table if flag_pic is ++ set. This is because this function is also used if ++ TARGET_HAS_ASM_ADDR_PSEUDOS is set. */ ++ if (flag_pic) ++ current_function_uses_pic_offset_table = 1; ++ ++ /* Put a REG_EQUAL note on this insn, so that it can be optimized by ++ loop. */ ++ return reg; ++ } ++ else if (GET_CODE (orig) == CONST) ++ { ++ rtx base, offset; ++ ++ if (flag_pic ++ && GET_CODE (XEXP (orig, 0)) == PLUS ++ && XEXP (XEXP (orig, 0), 0) == pic_offset_table_rtx) ++ return orig; ++ ++ if (reg == 0) ++ { ++ if (no_new_pseudos) ++ abort (); ++ else ++ reg = gen_reg_rtx (Pmode); ++ } ++ ++ if (GET_CODE (XEXP (orig, 0)) == PLUS) ++ { ++ base = ++ legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg); ++ offset = ++ legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, ++ base == reg ? 0 : reg); ++ } ++ else ++ abort (); ++ ++ if (GET_CODE (offset) == CONST_INT) ++ { ++ /* The base register doesn't really matter, we only want to test ++ the index for the appropriate mode. */ ++ if (!avr32_const_ok_for_constraint_p (INTVAL (offset), 'I', "Is21")) ++ { ++ if (!no_new_pseudos) ++ offset = force_reg (Pmode, offset); ++ else ++ abort (); ++ } ++ ++ if (GET_CODE (offset) == CONST_INT) ++ return plus_constant (base, INTVAL (offset)); ++ } ++ ++ return gen_rtx_PLUS (Pmode, base, offset); ++ } ++ ++ return orig; ++} ++ ++/* Generate code to load the PIC register. */ ++void ++avr32_load_pic_register (void) ++{ ++ rtx l1, pic_tmp; ++ rtx global_offset_table; ++ ++ if ((current_function_uses_pic_offset_table == 0) || TARGET_NO_INIT_GOT) ++ return; ++ ++ if (!flag_pic) ++ abort (); ++ ++ l1 = gen_label_rtx (); ++ ++ global_offset_table = gen_rtx_SYMBOL_REF (Pmode, "_GLOBAL_OFFSET_TABLE_"); ++ pic_tmp = ++ gen_rtx_CONST (Pmode, ++ gen_rtx_MINUS (SImode, gen_rtx_LABEL_REF (Pmode, l1), ++ global_offset_table)); ++ emit_insn (gen_pic_load_addr ++ (pic_offset_table_rtx, force_const_mem (SImode, pic_tmp))); ++ emit_insn (gen_pic_compute_got_from_pc (pic_offset_table_rtx, l1)); ++ ++ /* Need to emit this whether or not we obey regdecls, since setjmp/longjmp ++ can cause life info to screw up. */ ++ emit_insn (gen_rtx_USE (VOIDmode, pic_offset_table_rtx)); ++} ++ ++ ++ ++/* This hook should return true if values of type type are returned at the most ++ significant end of a register (in other words, if they are padded at the ++ least significant end). You can assume that type is returned in a register; ++ the caller is required to check this. Note that the register provided by ++ FUNCTION_VALUE must be able to hold the complete return value. For example, ++ if a 1-, 2- or 3-byte structure is returned at the most significant end of a ++ 4-byte register, FUNCTION_VALUE should provide an SImode rtx. */ ++bool ++avr32_return_in_msb (tree type ATTRIBUTE_UNUSED) ++{ ++ /* if ( AGGREGATE_TYPE_P (type) ) if ((int_size_in_bytes(type) == 1) || ++ ((int_size_in_bytes(type) == 2) && TYPE_ALIGN_UNIT(type) >= 2)) return ++ false; else return true; */ ++ ++ return false; ++} ++ ++ ++/* ++ Returns one if a certain function value is going to be returned in memory ++ and zero if it is going to be returned in a register. ++ ++ BLKmode and all other modes that is larger than 64 bits are returned in ++ memory. ++*/ ++bool ++avr32_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) ++{ ++ if (TYPE_MODE (type) == VOIDmode) ++ return false; ++ ++ if (int_size_in_bytes (type) > (2 * UNITS_PER_WORD) ++ || int_size_in_bytes (type) == -1) ++ { ++ return true; ++ } ++ ++ /* If we have an aggregate then use the same mechanism as when checking if ++ it should be passed on the stack. */ ++ if (type ++ && AGGREGATE_TYPE_P (type) ++ && (*targetm.calls.must_pass_in_stack) (TYPE_MODE (type), type)) ++ return true; ++ ++ return false; ++} ++ ++ ++/* Output the constant part of the trampoline. ++ lddpc r0, pc[0x8:e] ; load static chain register ++ lddpc pc, pc[0x8:e] ; jump to subrutine ++ .long 0 ; Address to static chain, ++ ; filled in by avr32_initialize_trampoline() ++ .long 0 ; Address to subrutine, ++ ; filled in by avr32_initialize_trampoline() ++*/ ++void ++avr32_trampoline_template (FILE * file) ++{ ++ fprintf (file, "\tlddpc r0, pc[8]\n"); ++ fprintf (file, "\tlddpc pc, pc[8]\n"); ++ /* make room for the address of the static chain. */ ++ fprintf (file, "\t.long\t0\n"); ++ /* make room for the address to the subrutine. */ ++ fprintf (file, "\t.long\t0\n"); ++} ++ ++ ++/* ++ Initialize the variable parts of a trampoline. ++*/ ++void ++avr32_initialize_trampoline (rtx addr, rtx fnaddr, rtx static_chain) ++{ ++ /* Store the address to the static chain. */ ++ emit_move_insn (gen_rtx_MEM ++ (SImode, plus_constant (addr, TRAMPOLINE_SIZE - 4)), ++ static_chain); ++ ++ /* Store the address to the function. */ ++ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (addr, TRAMPOLINE_SIZE)), ++ fnaddr); ++ ++ emit_insn (gen_cache (gen_rtx_REG (SImode, 13), ++ gen_rtx_CONST_INT (SImode, ++ AVR32_CACHE_INVALIDATE_ICACHE))); ++} ++ ++/* Return nonzero if X is valid as an addressing register. */ ++int ++avr32_address_register_rtx_p (rtx x, int strict_p) ++{ ++ int regno; ++ ++ if (GET_CODE (x) != REG) ++ return 0; ++ ++ regno = REGNO (x); ++ ++ if (strict_p) ++ return REGNO_OK_FOR_BASE_P (regno); ++ ++ return (regno <= LAST_REGNUM || regno >= FIRST_PSEUDO_REGISTER); ++} ++ ++/* Return nonzero if INDEX is valid for an address index operand. */ ++int ++avr32_legitimate_index_p (enum machine_mode mode, rtx index, int strict_p) ++{ ++ enum rtx_code code = GET_CODE (index); ++ ++ if (mode == TImode) ++ return 0; ++ ++ /* Standard coprocessor addressing modes. */ ++ if (code == CONST_INT) ++ { ++ if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT) ++ /* Coprocessor mem insns has a smaller reach than ordinary mem insns */ ++ return CONST_OK_FOR_CONSTRAINT_P (INTVAL (index), 'K', "Ku14"); ++ else ++ return CONST_OK_FOR_CONSTRAINT_P (INTVAL (index), 'K', "Ks16"); ++ } ++ ++ if (avr32_address_register_rtx_p (index, strict_p)) ++ return 1; ++ ++ if (code == MULT) ++ { ++ rtx xiop0 = XEXP (index, 0); ++ rtx xiop1 = XEXP (index, 1); ++ return ((avr32_address_register_rtx_p (xiop0, strict_p) ++ && power_of_two_operand (xiop1, SImode) ++ && (INTVAL (xiop1) <= 8)) ++ || (avr32_address_register_rtx_p (xiop1, strict_p) ++ && power_of_two_operand (xiop0, SImode) ++ && (INTVAL (xiop0) <= 8))); ++ } ++ else if (code == ASHIFT) ++ { ++ rtx op = XEXP (index, 1); ++ ++ return (avr32_address_register_rtx_p (XEXP (index, 0), strict_p) ++ && GET_CODE (op) == CONST_INT ++ && INTVAL (op) > 0 && INTVAL (op) <= 3); ++ } ++ ++ return 0; ++} ++ ++/* ++ Used in the GO_IF_LEGITIMATE_ADDRESS macro. Returns a nonzero value if ++ the RTX x is a legitimate memory address. ++ ++ Returns NO_REGS if the address is not legatime, GENERAL_REGS or ALL_REGS ++ if it is. ++*/ ++ ++/* Forward declaration*/ ++int is_minipool_label (rtx label); ++ ++int ++avr32_legitimate_address (enum machine_mode mode ATTRIBUTE_UNUSED, ++ rtx x, int strict) ++{ ++ ++ switch (GET_CODE (x)) ++ { ++ case REG: ++ return avr32_address_register_rtx_p (x, strict); ++ case CONST: ++ { ++ rtx label = avr32_find_symbol (x); ++ if (label ++ && ++ ( (CONSTANT_POOL_ADDRESS_P (label) ++ && !(flag_pic ++ && (symbol_mentioned_p (get_pool_constant (label)) ++ || label_mentioned_p (get_pool_constant(label))))) ++ /* TODO! Can this ever happen??? */ ++ || ((GET_CODE (label) == LABEL_REF) ++ && GET_CODE (XEXP (label, 0)) == CODE_LABEL ++ && is_minipool_label (XEXP (label, 0))))) ++ { ++ return TRUE; ++ } ++ } ++ break; ++ case LABEL_REF: ++ if (GET_CODE (XEXP (x, 0)) == CODE_LABEL ++ && is_minipool_label (XEXP (x, 0))) ++ { ++ return TRUE; ++ } ++ break; ++ case SYMBOL_REF: ++ { ++ if (CONSTANT_POOL_ADDRESS_P (x) ++ && !(flag_pic ++ && (symbol_mentioned_p (get_pool_constant (x)) ++ || label_mentioned_p (get_pool_constant (x))))) ++ return TRUE; ++ /* ++ A symbol_ref is only legal if it is a function. If all of them are ++ legal, a pseudo reg that is a constant will be replaced by a ++ symbol_ref and make illegale code. SYMBOL_REF_FLAG is set by ++ ENCODE_SECTION_INFO. */ ++ else if (SYMBOL_REF_RCALL_FUNCTION_P (x)) ++ return TRUE; ++ break; ++ } ++ case PRE_DEC: /* (pre_dec (...)) */ ++ case POST_INC: /* (post_inc (...)) */ ++ return avr32_address_register_rtx_p (XEXP (x, 0), strict); ++ case PLUS: /* (plus (...) (...)) */ ++ { ++ rtx xop0 = XEXP (x, 0); ++ rtx xop1 = XEXP (x, 1); ++ ++ return ((avr32_address_register_rtx_p (xop0, strict) ++ && avr32_legitimate_index_p (mode, xop1, strict)) ++ || (avr32_address_register_rtx_p (xop1, strict) ++ && avr32_legitimate_index_p (mode, xop0, strict))); ++ } ++ default: ++ break; ++ } ++ ++ return FALSE; ++} ++ ++ ++int ++avr32_const_double_immediate (rtx value) ++{ ++ HOST_WIDE_INT hi, lo; ++ ++ if (GET_CODE (value) != CONST_DOUBLE) ++ return FALSE; ++ ++ if (GET_MODE (value) == DImode) ++ { ++ hi = CONST_DOUBLE_HIGH (value); ++ lo = CONST_DOUBLE_LOW (value); ++ } ++ else ++ { ++ HOST_WIDE_INT target_float[2]; ++ hi = lo = 0; ++ real_to_target (target_float, CONST_DOUBLE_REAL_VALUE (value), ++ GET_MODE (value)); ++ lo = target_float[0]; ++ hi = target_float[1]; ++ } ++ if (avr32_const_ok_for_constraint_p (lo, 'K', "Ks21") ++ && ((GET_MODE (value) == SFmode) ++ || avr32_const_ok_for_constraint_p (hi, 'K', "Ks21"))) ++ { ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++ ++int ++avr32_legitimate_constant_p (rtx x) ++{ ++ switch (GET_CODE (x)) ++ { ++ case CONST_INT: ++ return avr32_const_ok_for_constraint_p (INTVAL (x), 'K', "Ks21"); ++ case CONST_DOUBLE: ++ if (GET_MODE (x) == SFmode ++ || GET_MODE (x) == DFmode || GET_MODE (x) == DImode) ++ return avr32_const_double_immediate (x); ++ else ++ return 0; ++ case LABEL_REF: ++ return flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS; ++ case SYMBOL_REF: ++ return flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS; ++ case CONST: ++ /* We must handle this one in the movsi expansion in order for gcc not ++ to put it in the constant pool. */ ++ return 0 /* flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS */ ; ++ case HIGH: ++ case CONST_VECTOR: ++ return 0; ++ default: ++ printf ("%s():\n", __FUNCTION__); ++ debug_rtx (x); ++ return 1; ++ } ++} ++ ++ ++/* Strip any special encoding from labels */ ++const char * ++avr32_strip_name_encoding (const char *name) ++{ ++ const char *stripped = name; ++ ++ while (1) ++ { ++ switch (stripped[0]) ++ { ++ case '#': ++ stripped = strchr (name + 1, '#') + 1; ++ break; ++ case '*': ++ stripped = &stripped[1]; ++ break; ++ default: ++ return stripped; ++ } ++ } ++} ++ ++ ++ ++/* Do anything needed before RTL is emitted for each function. */ ++static struct machine_function * ++avr32_init_machine_status (void) ++{ ++ struct machine_function *machine; ++ machine = ++ (machine_function *) ggc_alloc_cleared (sizeof (machine_function)); ++ ++#if AVR32_FT_UNKNOWN != 0 ++ machine->func_type = AVR32_FT_UNKNOWN; ++#endif ++ ++ machine->minipool_label_head = 0; ++ machine->minipool_label_tail = 0; ++ return machine; ++} ++ ++void ++avr32_init_expanders (void) ++{ ++ /* Arrange to initialize and mark the machine per-function status. */ ++ init_machine_status = avr32_init_machine_status; ++} ++ ++ ++/* Return an RTX indicating where the return address to the ++ calling function can be found. */ ++ ++rtx ++avr32_return_addr (int count, rtx frame ATTRIBUTE_UNUSED) ++{ ++ if (count != 0) ++ return NULL_RTX; ++ ++ return get_hard_reg_initial_val (Pmode, LR_REGNUM); ++} ++ ++ ++void ++avr32_encode_section_info (tree decl, rtx rtl, int first) ++{ ++ ++ if (first && DECL_P (decl)) ++ { ++ /* Set SYMBOL_REG_FLAG for local functions */ ++ if (!TREE_PUBLIC (decl) && TREE_CODE (decl) == FUNCTION_DECL) ++ { ++ if ((*targetm.binds_local_p) (decl)) ++ { ++ SYMBOL_REF_FLAG (XEXP (rtl, 0)) = 1; ++ } ++ } ++ } ++} ++ ++ ++void ++avr32_asm_output_ascii (FILE * stream, char *ptr, int len) ++{ ++ int i, i_new = 0; ++ char *new_ptr = xmalloc (4 * len); ++ if (new_ptr == NULL) ++ internal_error ("Out of memory."); ++ ++ for (i = 0; i < len; i++) ++ { ++ if (ptr[i] == '\n') ++ { ++ new_ptr[i_new++] = '\\'; ++ new_ptr[i_new++] = '0'; ++ new_ptr[i_new++] = '1'; ++ new_ptr[i_new++] = '2'; ++ } ++ else if (ptr[i] == '\"') ++ { ++ new_ptr[i_new++] = '\\'; ++ new_ptr[i_new++] = '\"'; ++ } ++ else if (ptr[i] == '\\') ++ { ++ new_ptr[i_new++] = '\\'; ++ new_ptr[i_new++] = '\\'; ++ } ++ else if (ptr[i] == '\0' && i + 1 < len) ++ { ++ new_ptr[i_new++] = '\\'; ++ new_ptr[i_new++] = '0'; ++ } ++ else ++ { ++ new_ptr[i_new++] = ptr[i]; ++ } ++ } ++ ++ /* Terminate new_ptr. */ ++ new_ptr[i_new] = '\0'; ++ fprintf (stream, "\t.ascii\t\"%s\"\n", new_ptr); ++ free (new_ptr); ++} ++ ++ ++void ++avr32_asm_output_label (FILE * stream, const char *name) ++{ ++ name = avr32_strip_name_encoding (name); ++ ++ /* Print the label. */ ++ assemble_name (stream, name); ++ fprintf (stream, ":\n"); ++} ++ ++ ++ ++void ++avr32_asm_weaken_label (FILE * stream, const char *name) ++{ ++ fprintf (stream, "\t.weak "); ++ assemble_name (stream, name); ++ fprintf (stream, "\n"); ++} ++ ++/* ++ Checks if a labelref is equal to a reserved word in the assembler. If it is, ++ insert a '_' before the label name. ++*/ ++void ++avr32_asm_output_labelref (FILE * stream, const char *name) ++{ ++ int verbatim = FALSE; ++ const char *stripped = name; ++ int strip_finished = FALSE; ++ ++ while (!strip_finished) ++ { ++ switch (stripped[0]) ++ { ++ case '#': ++ stripped = strchr (name + 1, '#') + 1; ++ break; ++ case '*': ++ stripped = &stripped[1]; ++ verbatim = TRUE; ++ break; ++ default: ++ strip_finished = TRUE; ++ break; ++ } ++ } ++ ++ if (verbatim) ++ fputs (stripped, stream); ++ else ++ asm_fprintf (stream, "%U%s", stripped); ++} ++ ++ ++ ++/* ++ Check if the comparison in compare_exp is redundant ++ for the condition given in next_cond given that the ++ needed flags are already set by an earlier instruction. ++ Uses cc_prev_status to check this. ++ ++ Returns NULL_RTX if the compare is not redundant ++ or the new condition to use in the conditional ++ instruction if the compare is redundant. ++*/ ++static rtx ++is_compare_redundant (rtx compare_exp, rtx next_cond) ++{ ++ int z_flag_valid = FALSE; ++ int n_flag_valid = FALSE; ++ rtx new_cond; ++ ++ if (GET_CODE (compare_exp) != COMPARE) ++ return NULL_RTX; ++ ++ ++ if (GET_MODE (compare_exp) != SImode) ++ return NULL_RTX; ++ ++ if (rtx_equal_p (cc_prev_status.mdep.value, compare_exp)) ++ { ++ /* cc0 already contains the correct comparison -> delete cmp insn */ ++ return next_cond; ++ } ++ ++ switch (cc_prev_status.mdep.flags) ++ { ++ case CC_SET_VNCZ: ++ case CC_SET_NCZ: ++ n_flag_valid = TRUE; ++ case CC_SET_CZ: ++ case CC_SET_Z: ++ z_flag_valid = TRUE; ++ } ++ ++ if (cc_prev_status.mdep.value ++ && REG_P (XEXP (compare_exp, 0)) ++ && REGNO (XEXP (compare_exp, 0)) == REGNO (cc_prev_status.mdep.value) ++ && GET_CODE (XEXP (compare_exp, 1)) == CONST_INT ++ && next_cond != NULL_RTX) ++ { ++ if (INTVAL (XEXP (compare_exp, 1)) == 0 ++ && z_flag_valid ++ && (GET_CODE (next_cond) == EQ || GET_CODE (next_cond) == NE)) ++ /* We can skip comparison Z flag is already reflecting ops[0] */ ++ return next_cond; ++ else if (n_flag_valid ++ && ((INTVAL (XEXP (compare_exp, 1)) == 0 ++ && (GET_CODE (next_cond) == GE ++ || GET_CODE (next_cond) == LT)) ++ || (INTVAL (XEXP (compare_exp, 1)) == -1 ++ && (GET_CODE (next_cond) == GT ++ || GET_CODE (next_cond) == LE)))) ++ { ++ /* We can skip comparison N flag is already reflecting ops[0], ++ which means that we can use the mi/pl conditions to check if ++ ops[0] is GE or LT 0. */ ++ if ((GET_CODE (next_cond) == GE) || (GET_CODE (next_cond) == GT)) ++ new_cond = ++ gen_rtx_UNSPEC (CCmode, gen_rtvec (2, cc0_rtx, const0_rtx), ++ UNSPEC_COND_PL); ++ else ++ new_cond = ++ gen_rtx_UNSPEC (CCmode, gen_rtvec (2, cc0_rtx, const0_rtx), ++ UNSPEC_COND_MI); ++ return new_cond; ++ } ++ } ++ return NULL_RTX; ++} ++ ++/* Updates cc_status. */ ++void ++avr32_notice_update_cc (rtx exp, rtx insn) ++{ ++ switch (get_attr_cc (insn)) ++ { ++ case CC_CALL_SET: ++ CC_STATUS_INIT; ++ FPCC_STATUS_INIT; ++ /* Check if the function call returns a value in r12 */ ++ if (REG_P (recog_data.operand[0]) ++ && REGNO (recog_data.operand[0]) == RETVAL_REGNUM) ++ { ++ cc_status.flags = 0; ++ cc_status.mdep.value = ++ gen_rtx_COMPARE (SImode, recog_data.operand[0], const0_rtx); ++ cc_status.mdep.flags = CC_SET_VNCZ; ++ ++ } ++ break; ++ case CC_COMPARE: ++ /* Check that compare will not be optimized away if so nothing should ++ be done */ ++ if (is_compare_redundant (SET_SRC (exp), get_next_insn_cond (insn)) ++ == NULL_RTX) ++ { ++ ++ /* Reset the nonstandard flag */ ++ CC_STATUS_INIT; ++ cc_status.flags = 0; ++ cc_status.mdep.value = SET_SRC (exp); ++ cc_status.mdep.flags = CC_SET_VNCZ; ++ } ++ break; ++ case CC_FPCOMPARE: ++ /* Check that floating-point compare will not be optimized away if so ++ nothing should be done */ ++ if (!rtx_equal_p (cc_prev_status.mdep.fpvalue, SET_SRC (exp))) ++ { ++ /* cc0 already contains the correct comparison -> delete cmp insn */ ++ /* Reset the nonstandard flag */ ++ cc_status.mdep.fpvalue = SET_SRC (exp); ++ cc_status.mdep.fpflags = CC_SET_CZ; ++ } ++ break; ++ case CC_FROM_FPCC: ++ /* Flags are updated with flags from Floating-point coprocessor, set ++ CC_NOT_SIGNED flag since the flags are set so that unsigned ++ condidion codes can be used directly. */ ++ CC_STATUS_INIT; ++ cc_status.flags = CC_NOT_SIGNED; ++ cc_status.mdep.value = cc_status.mdep.fpvalue; ++ cc_status.mdep.flags = cc_status.mdep.fpflags; ++ break; ++ case CC_BLD: ++ /* Bit load is kind of like an inverted testsi, because the Z flag is ++ inverted */ ++ CC_STATUS_INIT; ++ cc_status.flags = CC_INVERTED; ++ cc_status.mdep.value = SET_SRC (exp); ++ cc_status.mdep.flags = CC_SET_Z; ++ break; ++ case CC_NONE: ++ /* Insn does not affect CC at all. Check if the instruction updates ++ some of the register currently reflected in cc0 */ ++ ++ if ((GET_CODE (exp) == SET) ++ && (cc_status.value1 || cc_status.value2 || cc_status.mdep.value) ++ && (reg_mentioned_p (SET_DEST (exp), cc_status.value1) ++ || reg_mentioned_p (SET_DEST (exp), cc_status.value2) ++ || reg_mentioned_p (SET_DEST (exp), cc_status.mdep.value))) ++ { ++ CC_STATUS_INIT; ++ } ++ ++ /* If this is a parallel we must step through each of the parallel ++ expressions */ ++ if (GET_CODE (exp) == PARALLEL) ++ { ++ int i; ++ for (i = 0; i < XVECLEN (exp, 0); ++i) ++ { ++ rtx vec_exp = XVECEXP (exp, 0, i); ++ if ((GET_CODE (vec_exp) == SET) ++ && (cc_status.value1 || cc_status.value2 ++ || cc_status.mdep.value) ++ && (reg_mentioned_p (SET_DEST (vec_exp), cc_status.value1) ++ || reg_mentioned_p (SET_DEST (vec_exp), ++ cc_status.value2) ++ || reg_mentioned_p (SET_DEST (vec_exp), ++ cc_status.mdep.value))) ++ { ++ CC_STATUS_INIT; ++ } ++ } ++ } ++ ++ /* Check if we have memory opartions with post_inc or pre_dec on the ++ register currently reflected in cc0 */ ++ if (GET_CODE (exp) == SET ++ && GET_CODE (SET_SRC (exp)) == MEM ++ && (GET_CODE (XEXP (SET_SRC (exp), 0)) == POST_INC ++ || GET_CODE (XEXP (SET_SRC (exp), 0)) == PRE_DEC) ++ && ++ (reg_mentioned_p ++ (XEXP (XEXP (SET_SRC (exp), 0), 0), cc_status.value1) ++ || reg_mentioned_p (XEXP (XEXP (SET_SRC (exp), 0), 0), ++ cc_status.value2) ++ || reg_mentioned_p (XEXP (XEXP (SET_SRC (exp), 0), 0), ++ cc_status.mdep.value))) ++ CC_STATUS_INIT; ++ ++ if (GET_CODE (exp) == SET ++ && GET_CODE (SET_DEST (exp)) == MEM ++ && (GET_CODE (XEXP (SET_DEST (exp), 0)) == POST_INC ++ || GET_CODE (XEXP (SET_DEST (exp), 0)) == PRE_DEC) ++ && ++ (reg_mentioned_p ++ (XEXP (XEXP (SET_DEST (exp), 0), 0), cc_status.value1) ++ || reg_mentioned_p (XEXP (XEXP (SET_DEST (exp), 0), 0), ++ cc_status.value2) ++ || reg_mentioned_p (XEXP (XEXP (SET_DEST (exp), 0), 0), ++ cc_status.mdep.value))) ++ CC_STATUS_INIT; ++ break; ++ ++ case CC_SET_VNCZ: ++ CC_STATUS_INIT; ++ cc_status.mdep.value = recog_data.operand[0]; ++ cc_status.mdep.flags = CC_SET_VNCZ; ++ break; ++ ++ case CC_SET_NCZ: ++ CC_STATUS_INIT; ++ cc_status.mdep.value = recog_data.operand[0]; ++ cc_status.mdep.flags = CC_SET_NCZ; ++ break; ++ ++ case CC_SET_CZ: ++ CC_STATUS_INIT; ++ cc_status.mdep.value = recog_data.operand[0]; ++ cc_status.mdep.flags = CC_SET_CZ; ++ break; ++ ++ case CC_SET_Z: ++ CC_STATUS_INIT; ++ cc_status.mdep.value = recog_data.operand[0]; ++ cc_status.mdep.flags = CC_SET_Z; ++ break; ++ ++ case CC_CLOBBER: ++ CC_STATUS_INIT; ++ break; ++ ++ default: ++ CC_STATUS_INIT; ++ } ++} ++ ++ ++/* ++ Outputs to stdio stream stream the assembler syntax for an instruction ++ operand x. x is an RTL expression. ++*/ ++void ++avr32_print_operand (FILE * stream, rtx x, int code) ++{ ++ int error = 0; ++ ++ switch (GET_CODE (x)) ++ { ++ case UNSPEC: ++ switch (XINT (x, 1)) ++ { ++ case UNSPEC_COND_PL: ++ if (code == 'i') ++ fputs ("mi", stream); ++ else ++ fputs ("pl", stream); ++ break; ++ case UNSPEC_COND_MI: ++ if (code == 'i') ++ fputs ("pl", stream); ++ else ++ fputs ("mi", stream); ++ break; ++ default: ++ error = 1; ++ } ++ break; ++ case EQ: ++ if (code == 'i') ++ fputs ("ne", stream); ++ else ++ fputs ("eq", stream); ++ break; ++ case NE: ++ if (code == 'i') ++ fputs ("eq", stream); ++ else ++ fputs ("ne", stream); ++ break; ++ case GT: ++ if (code == 'i') ++ fputs ("le", stream); ++ else ++ fputs ("gt", stream); ++ break; ++ case GTU: ++ if (code == 'i') ++ fputs ("ls", stream); ++ else ++ fputs ("hi", stream); ++ break; ++ case LT: ++ if (code == 'i') ++ fputs ("ge", stream); ++ else ++ fputs ("lt", stream); ++ break; ++ case LTU: ++ if (code == 'i') ++ fputs ("hs", stream); ++ else ++ fputs ("lo", stream); ++ break; ++ case GE: ++ if (code == 'i') ++ fputs ("lt", stream); ++ else ++ fputs ("ge", stream); ++ break; ++ case GEU: ++ if (code == 'i') ++ fputs ("lo", stream); ++ else ++ fputs ("hs", stream); ++ break; ++ case LE: ++ if (code == 'i') ++ fputs ("gt", stream); ++ else ++ fputs ("le", stream); ++ break; ++ case LEU: ++ if (code == 'i') ++ fputs ("hi", stream); ++ else ++ fputs ("ls", stream); ++ break; ++ case CONST_INT: ++ { ++ int value = INTVAL (x); ++ ++ if (code == 'i') ++ { ++ value++; ++ } ++ ++ if (code == 'p') ++ { ++ /* Set to bit position of first bit set in immediate */ ++ int i, bitpos = 32; ++ for (i = 0; i < 32; i++) ++ if (value & (1 << i)) ++ { ++ bitpos = i; ++ break; ++ } ++ value = bitpos; ++ } ++ ++ if (code == 'r') ++ { ++ /* Reglist 8 */ ++ char op[50]; ++ op[0] = '\0'; ++ ++ if (value & 0x01) ++ sprintf (op, "r0-r3"); ++ if (value & 0x02) ++ strlen (op) ? sprintf (op, "%s, r4-r7", op) : sprintf (op, ++ "r4-r7"); ++ if (value & 0x04) ++ strlen (op) ? sprintf (op, "%s, r8-r9", op) : sprintf (op, ++ "r8-r9"); ++ if (value & 0x08) ++ strlen (op) ? sprintf (op, "%s, r10", op) : sprintf (op, "r10"); ++ if (value & 0x10) ++ strlen (op) ? sprintf (op, "%s, r11", op) : sprintf (op, "r11"); ++ if (value & 0x20) ++ strlen (op) ? sprintf (op, "%s, r12", op) : sprintf (op, "r12"); ++ if (value & 0x40) ++ strlen (op) ? sprintf (op, "%s, lr", op) : sprintf (op, "lr"); ++ if (value & 0x80) ++ strlen (op) ? sprintf (op, "%s, pc", op) : sprintf (op, "pc"); ++ ++ fputs (op, stream); ++ } ++ else if (code == 's') ++ { ++ /* Reglist 16 */ ++ char reglist16_string[100]; ++ int i; ++ reglist16_string[0] = '\0'; ++ ++ for (i = 0; i < 16; ++i) ++ { ++ if (value & (1 << i)) ++ { ++ strlen (reglist16_string) ? sprintf (reglist16_string, ++ "%s, %s", ++ reglist16_string, ++ reg_names ++ [INTERNAL_REGNUM ++ (i)]) : ++ sprintf (reglist16_string, "%s", ++ reg_names[INTERNAL_REGNUM (i)]); ++ } ++ } ++ fputs (reglist16_string, stream); ++ } ++ else if (code == 'C') ++ { ++ /* RegListCP8 */ ++ char reglist_string[100]; ++ avr32_make_fp_reglist_w (value, (char *) reglist_string); ++ fputs (reglist_string, stream); ++ } ++ else if (code == 'D') ++ { ++ /* RegListCPD8 */ ++ char reglist_string[100]; ++ avr32_make_fp_reglist_d (value, (char *) reglist_string); ++ fputs (reglist_string, stream); ++ } ++ else if (code == 'd') ++ { ++ /* Print in decimal format */ ++ fprintf (stream, "%d", value); ++ } ++ else if (code == 'h') ++ { ++ /* Print halfword part of word */ ++ fputs (value ? "b" : "t", stream); ++ } ++ else ++ { ++ /* Normal constant */ ++ fprintf (stream, "%d", value); ++ } ++ break; ++ } ++ case CONST_DOUBLE: ++ { ++ HOST_WIDE_INT hi, lo; ++ if (GET_MODE (x) == DImode) ++ { ++ hi = CONST_DOUBLE_HIGH (x); ++ lo = CONST_DOUBLE_LOW (x); ++ } ++ else ++ { ++ HOST_WIDE_INT target_float[2]; ++ hi = lo = 0; ++ real_to_target (target_float, CONST_DOUBLE_REAL_VALUE (x), ++ GET_MODE (x)); ++ /* For doubles the most significant part starts at index 0. */ ++ if (GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD) ++ { ++ hi = target_float[0]; ++ lo = target_float[1]; ++ } ++ else ++ { ++ lo = target_float[0]; ++ } ++ } ++ ++ if (avr32_const_ok_for_constraint_p (lo, 'K', "Ks21") ++ && ((GET_MODE (x) == SFmode) ++ || avr32_const_ok_for_constraint_p (hi, 'K', "Ks21"))) ++ { ++ if (code == 'm') ++ fprintf (stream, "%ld", hi); ++ else ++ fprintf (stream, "%ld", lo); ++ } ++ else ++ { ++ fprintf (stream, "value too large"); ++ } ++ break; ++ } ++ case CONST: ++ output_addr_const (stream, XEXP (XEXP (x, 0), 0)); ++ fprintf (stream, "+%ld", INTVAL (XEXP (XEXP (x, 0), 1))); ++ break; ++ case REG: ++ /* Swap register name if the register is DImode or DFmode. */ ++ if (GET_MODE (x) == DImode || GET_MODE (x) == DFmode) ++ { ++ /* Double register must have an even numbered address */ ++ gcc_assert (!(REGNO (x) % 2)); ++ if (code == 'm') ++ fputs (reg_names[true_regnum (x)], stream); ++ else ++ fputs (reg_names[true_regnum (x) + 1], stream); ++ } ++ else if (GET_MODE (x) == TImode) ++ { ++ switch (code) ++ { ++ case 'T': ++ fputs (reg_names[true_regnum (x)], stream); ++ break; ++ case 'U': ++ fputs (reg_names[true_regnum (x) + 1], stream); ++ break; ++ case 'L': ++ fputs (reg_names[true_regnum (x) + 2], stream); ++ break; ++ case 'B': ++ fputs (reg_names[true_regnum (x) + 3], stream); ++ break; ++ default: ++ fprintf (stream, "%s, %s, %s, %s", ++ reg_names[true_regnum (x) + 3], ++ reg_names[true_regnum (x) + 2], ++ reg_names[true_regnum (x) + 1], ++ reg_names[true_regnum (x)]); ++ break; ++ } ++ } ++ else ++ { ++ fputs (reg_names[true_regnum (x)], stream); ++ } ++ break; ++ case CODE_LABEL: ++ case LABEL_REF: ++ case SYMBOL_REF: ++ output_addr_const (stream, x); ++ break; ++ case MEM: ++ switch (GET_CODE (XEXP (x, 0))) ++ { ++ case LABEL_REF: ++ case SYMBOL_REF: ++ output_addr_const (stream, XEXP (x, 0)); ++ break; ++ case MEM: ++ switch (GET_CODE (XEXP (XEXP (x, 0), 0))) ++ { ++ case SYMBOL_REF: ++ output_addr_const (stream, XEXP (XEXP (x, 0), 0)); ++ break; ++ default: ++ error = 1; ++ break; ++ } ++ break; ++ case REG: ++ avr32_print_operand (stream, XEXP (x, 0), 0); ++ if (code != 'p') ++ fputs ("[0]", stream); ++ break; ++ case PRE_DEC: ++ fputs ("--", stream); ++ avr32_print_operand (stream, XEXP (XEXP (x, 0), 0), 0); ++ break; ++ case POST_INC: ++ avr32_print_operand (stream, XEXP (XEXP (x, 0), 0), 0); ++ fputs ("++", stream); ++ break; ++ case PLUS: ++ { ++ rtx op0 = XEXP (XEXP (x, 0), 0); ++ rtx op1 = XEXP (XEXP (x, 0), 1); ++ rtx base = NULL_RTX, offset = NULL_RTX; ++ ++ if (avr32_address_register_rtx_p (op0, 1)) ++ { ++ base = op0; ++ offset = op1; ++ } ++ else if (avr32_address_register_rtx_p (op1, 1)) ++ { ++ /* Operands are switched. */ ++ base = op1; ++ offset = op0; ++ } ++ ++ gcc_assert (base && offset ++ && avr32_address_register_rtx_p (base, 1) ++ && avr32_legitimate_index_p (GET_MODE (x), offset, ++ 1)); ++ ++ avr32_print_operand (stream, base, 0); ++ fputs ("[", stream); ++ avr32_print_operand (stream, offset, 0); ++ fputs ("]", stream); ++ break; ++ } ++ case CONST: ++ output_addr_const (stream, XEXP (XEXP (XEXP (x, 0), 0), 0)); ++ fprintf (stream, " + %ld", ++ INTVAL (XEXP (XEXP (XEXP (x, 0), 0), 1))); ++ break; ++ default: ++ error = 1; ++ } ++ break; ++ case MULT: ++ { ++ int value = INTVAL (XEXP (x, 1)); ++ ++ /* Convert immediate in multiplication into a shift immediate */ ++ switch (value) ++ { ++ case 2: ++ value = 1; ++ break; ++ case 4: ++ value = 2; ++ break; ++ case 8: ++ value = 3; ++ break; ++ default: ++ value = 0; ++ } ++ fprintf (stream, "%s << %i", reg_names[true_regnum (XEXP (x, 0))], ++ value); ++ break; ++ } ++ case ASHIFT: ++ if (GET_CODE (XEXP (x, 1)) == CONST_INT) ++ fprintf (stream, "%s << %i", reg_names[true_regnum (XEXP (x, 0))], ++ (int) INTVAL (XEXP (x, 1))); ++ else if (REG_P (XEXP (x, 1))) ++ fprintf (stream, "%s << %s", reg_names[true_regnum (XEXP (x, 0))], ++ reg_names[true_regnum (XEXP (x, 1))]); ++ else ++ { ++ error = 1; ++ } ++ break; ++ case LSHIFTRT: ++ if (GET_CODE (XEXP (x, 1)) == CONST_INT) ++ fprintf (stream, "%s >> %i", reg_names[true_regnum (XEXP (x, 0))], ++ (int) INTVAL (XEXP (x, 1))); ++ else if (REG_P (XEXP (x, 1))) ++ fprintf (stream, "%s >> %s", reg_names[true_regnum (XEXP (x, 0))], ++ reg_names[true_regnum (XEXP (x, 1))]); ++ else ++ { ++ error = 1; ++ } ++ fprintf (stream, ">>"); ++ break; ++ case PARALLEL: ++ { ++ /* Load store multiple */ ++ int i; ++ int count = XVECLEN (x, 0); ++ int reglist16 = 0; ++ char reglist16_string[100]; ++ ++ for (i = 0; i < count; ++i) ++ { ++ rtx vec_elm = XVECEXP (x, 0, i); ++ if (GET_MODE (vec_elm) != SET) ++ { ++ debug_rtx (vec_elm); ++ internal_error ("Unknown element in parallel expression!"); ++ } ++ if (GET_MODE (XEXP (vec_elm, 0)) == REG) ++ { ++ /* Load multiple */ ++ reglist16 |= 1 << ASM_REGNUM (REGNO (XEXP (vec_elm, 0))); ++ } ++ else ++ { ++ /* Store multiple */ ++ reglist16 |= 1 << ASM_REGNUM (REGNO (XEXP (vec_elm, 1))); ++ } ++ } ++ ++ avr32_make_reglist16 (reglist16, reglist16_string); ++ fputs (reglist16_string, stream); ++ ++ break; ++ } ++ ++ default: ++ error = 1; ++ } ++ ++ if (error) ++ { ++ debug_rtx (x); ++ internal_error ("Illegal expression for avr32_print_operand"); ++ } ++} ++ ++rtx ++avr32_get_note_reg_equiv (rtx insn) ++{ ++ rtx note; ++ ++ note = find_reg_note (insn, REG_EQUIV, NULL_RTX); ++ ++ if (note != NULL_RTX) ++ return XEXP (note, 0); ++ else ++ return NULL_RTX; ++} ++ ++/* ++ Outputs to stdio stream stream the assembler syntax for an instruction ++ operand that is a memory reference whose address is x. x is an RTL ++ expression. ++ ++ ToDo: fixme. ++*/ ++void ++avr32_print_operand_address (FILE * stream, rtx x) ++{ ++ fprintf (stream, "(%d) /* address */", REGNO (x)); ++} ++ ++/* Return true if _GLOBAL_OFFSET_TABLE_ symbol is mentioned. */ ++bool ++avr32_got_mentioned_p (rtx addr) ++{ ++ if (GET_CODE (addr) == MEM) ++ addr = XEXP (addr, 0); ++ while (GET_CODE (addr) == CONST) ++ addr = XEXP (addr, 0); ++ if (GET_CODE (addr) == SYMBOL_REF) ++ { ++ return streq (XSTR (addr, 0), "_GLOBAL_OFFSET_TABLE_"); ++ } ++ if (GET_CODE (addr) == PLUS || GET_CODE (addr) == MINUS) ++ { ++ bool l1, l2; ++ ++ l1 = avr32_got_mentioned_p (XEXP (addr, 0)); ++ l2 = avr32_got_mentioned_p (XEXP (addr, 1)); ++ return l1 || l2; ++ } ++ return false; ++} ++ ++ ++/* Find the symbol in an address expression. */ ++ ++rtx ++avr32_find_symbol (rtx addr) ++{ ++ if (GET_CODE (addr) == MEM) ++ addr = XEXP (addr, 0); ++ ++ while (GET_CODE (addr) == CONST) ++ addr = XEXP (addr, 0); ++ ++ if (GET_CODE (addr) == SYMBOL_REF || GET_CODE (addr) == LABEL_REF) ++ return addr; ++ if (GET_CODE (addr) == PLUS) ++ { ++ rtx l1, l2; ++ ++ l1 = avr32_find_symbol (XEXP (addr, 0)); ++ l2 = avr32_find_symbol (XEXP (addr, 1)); ++ if (l1 != NULL_RTX && l2 == NULL_RTX) ++ return l1; ++ else if (l1 == NULL_RTX && l2 != NULL_RTX) ++ return l2; ++ } ++ ++ return NULL_RTX; ++} ++ ++ ++/* Routines for manipulation of the constant pool. */ ++ ++/* AVR32 instructions cannot load a large constant directly into a ++ register; they have to come from a pc relative load. The constant ++ must therefore be placed in the addressable range of the pc ++ relative load. Depending on the precise pc relative load ++ instruction the range is somewhere between 256 bytes and 4k. This ++ means that we often have to dump a constant inside a function, and ++ generate code to branch around it. ++ ++ It is important to minimize this, since the branches will slow ++ things down and make the code larger. ++ ++ Normally we can hide the table after an existing unconditional ++ branch so that there is no interruption of the flow, but in the ++ worst case the code looks like this: ++ ++ lddpc rn, L1 ++ ... ++ rjmp L2 ++ align ++ L1: .long value ++ L2: ++ ... ++ ++ lddpc rn, L3 ++ ... ++ rjmp L4 ++ align ++ L3: .long value ++ L4: ++ ... ++ ++ We fix this by performing a scan after scheduling, which notices ++ which instructions need to have their operands fetched from the ++ constant table and builds the table. ++ ++ The algorithm starts by building a table of all the constants that ++ need fixing up and all the natural barriers in the function (places ++ where a constant table can be dropped without breaking the flow). ++ For each fixup we note how far the pc-relative replacement will be ++ able to reach and the offset of the instruction into the function. ++ ++ Having built the table we then group the fixes together to form ++ tables that are as large as possible (subject to addressing ++ constraints) and emit each table of constants after the last ++ barrier that is within range of all the instructions in the group. ++ If a group does not contain a barrier, then we forcibly create one ++ by inserting a jump instruction into the flow. Once the table has ++ been inserted, the insns are then modified to reference the ++ relevant entry in the pool. ++ ++ Possible enhancements to the algorithm (not implemented) are: ++ ++ 1) For some processors and object formats, there may be benefit in ++ aligning the pools to the start of cache lines; this alignment ++ would need to be taken into account when calculating addressability ++ of a pool. */ ++ ++/* These typedefs are located at the start of this file, so that ++ they can be used in the prototypes there. This comment is to ++ remind readers of that fact so that the following structures ++ can be understood more easily. ++ ++ typedef struct minipool_node Mnode; ++ typedef struct minipool_fixup Mfix; */ ++ ++struct minipool_node ++{ ++ /* Doubly linked chain of entries. */ ++ Mnode *next; ++ Mnode *prev; ++ /* The maximum offset into the code that this entry can be placed. While ++ pushing fixes for forward references, all entries are sorted in order of ++ increasing max_address. */ ++ HOST_WIDE_INT max_address; ++ /* Similarly for an entry inserted for a backwards ref. */ ++ HOST_WIDE_INT min_address; ++ /* The number of fixes referencing this entry. This can become zero if we ++ "unpush" an entry. In this case we ignore the entry when we come to ++ emit the code. */ ++ int refcount; ++ /* The offset from the start of the minipool. */ ++ HOST_WIDE_INT offset; ++ /* The value in table. */ ++ rtx value; ++ /* The mode of value. */ ++ enum machine_mode mode; ++ /* The size of the value. */ ++ int fix_size; ++}; ++ ++struct minipool_fixup ++{ ++ Mfix *next; ++ rtx insn; ++ HOST_WIDE_INT address; ++ rtx *loc; ++ enum machine_mode mode; ++ int fix_size; ++ rtx value; ++ Mnode *minipool; ++ HOST_WIDE_INT forwards; ++ HOST_WIDE_INT backwards; ++}; ++ ++ ++/* Fixes less than a word need padding out to a word boundary. */ ++#define MINIPOOL_FIX_SIZE(mode, value) \ ++ (IS_FORCE_MINIPOOL(value) ? 0 : \ ++ (GET_MODE_SIZE ((mode)) >= 4 ? GET_MODE_SIZE ((mode)) : 4)) ++ ++#define IS_FORCE_MINIPOOL(x) \ ++ (GET_CODE(x) == UNSPEC && \ ++ XINT(x, 1) == UNSPEC_FORCE_MINIPOOL) ++ ++static Mnode *minipool_vector_head; ++static Mnode *minipool_vector_tail; ++ ++/* The linked list of all minipool fixes required for this function. */ ++Mfix *minipool_fix_head; ++Mfix *minipool_fix_tail; ++/* The fix entry for the current minipool, once it has been placed. */ ++Mfix *minipool_barrier; ++ ++/* Determines if INSN is the start of a jump table. Returns the end ++ of the TABLE or NULL_RTX. */ ++static rtx ++is_jump_table (rtx insn) ++{ ++ rtx table; ++ ++ if (GET_CODE (insn) == JUMP_INSN ++ && JUMP_LABEL (insn) != NULL ++ && ((table = next_real_insn (JUMP_LABEL (insn))) ++ == next_real_insn (insn)) ++ && table != NULL ++ && GET_CODE (table) == JUMP_INSN ++ && (GET_CODE (PATTERN (table)) == ADDR_VEC ++ || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC)) ++ return table; ++ ++ return NULL_RTX; ++} ++ ++static HOST_WIDE_INT ++get_jump_table_size (rtx insn) ++{ ++ /* ADDR_VECs only take room if read-only data does into the text section. */ ++ if (JUMP_TABLES_IN_TEXT_SECTION ++#if !defined(READONLY_DATA_SECTION) && !defined(READONLY_DATA_SECTION_ASM_OP) ++ || 1 ++#endif ++ ) ++ { ++ rtx body = PATTERN (insn); ++ int elt = GET_CODE (body) == ADDR_DIFF_VEC ? 1 : 0; ++ ++ return GET_MODE_SIZE (GET_MODE (body)) * XVECLEN (body, elt); ++ } ++ ++ return 0; ++} ++ ++/* Move a minipool fix MP from its current location to before MAX_MP. ++ If MAX_MP is NULL, then MP doesn't need moving, but the addressing ++ constraints may need updating. */ ++static Mnode * ++move_minipool_fix_forward_ref (Mnode * mp, Mnode * max_mp, ++ HOST_WIDE_INT max_address) ++{ ++ /* This should never be true and the code below assumes these are ++ different. */ ++ if (mp == max_mp) ++ abort (); ++ ++ if (max_mp == NULL) ++ { ++ if (max_address < mp->max_address) ++ mp->max_address = max_address; ++ } ++ else ++ { ++ if (max_address > max_mp->max_address - mp->fix_size) ++ mp->max_address = max_mp->max_address - mp->fix_size; ++ else ++ mp->max_address = max_address; ++ ++ /* Unlink MP from its current position. Since max_mp is non-null, ++ mp->prev must be non-null. */ ++ mp->prev->next = mp->next; ++ if (mp->next != NULL) ++ mp->next->prev = mp->prev; ++ else ++ minipool_vector_tail = mp->prev; ++ ++ /* Re-insert it before MAX_MP. */ ++ mp->next = max_mp; ++ mp->prev = max_mp->prev; ++ max_mp->prev = mp; ++ ++ if (mp->prev != NULL) ++ mp->prev->next = mp; ++ else ++ minipool_vector_head = mp; ++ } ++ ++ /* Save the new entry. */ ++ max_mp = mp; ++ ++ /* Scan over the preceding entries and adjust their addresses as required. ++ */ ++ while (mp->prev != NULL ++ && mp->prev->max_address > mp->max_address - mp->prev->fix_size) ++ { ++ mp->prev->max_address = mp->max_address - mp->prev->fix_size; ++ mp = mp->prev; ++ } ++ ++ return max_mp; ++} ++ ++/* Add a constant to the minipool for a forward reference. Returns the ++ node added or NULL if the constant will not fit in this pool. */ ++static Mnode * ++add_minipool_forward_ref (Mfix * fix) ++{ ++ /* If set, max_mp is the first pool_entry that has a lower constraint than ++ the one we are trying to add. */ ++ Mnode *max_mp = NULL; ++ HOST_WIDE_INT max_address = fix->address + fix->forwards; ++ Mnode *mp; ++ ++ /* If this fix's address is greater than the address of the first entry, ++ then we can't put the fix in this pool. We subtract the size of the ++ current fix to ensure that if the table is fully packed we still have ++ enough room to insert this value by suffling the other fixes forwards. */ ++ if (minipool_vector_head && ++ fix->address >= minipool_vector_head->max_address - fix->fix_size) ++ return NULL; ++ ++ /* Scan the pool to see if a constant with the same value has already been ++ added. While we are doing this, also note the location where we must ++ insert the constant if it doesn't already exist. */ ++ for (mp = minipool_vector_head; mp != NULL; mp = mp->next) ++ { ++ if (GET_CODE (fix->value) == GET_CODE (mp->value) ++ && fix->mode == mp->mode ++ && (GET_CODE (fix->value) != CODE_LABEL ++ || (CODE_LABEL_NUMBER (fix->value) ++ == CODE_LABEL_NUMBER (mp->value))) ++ && rtx_equal_p (fix->value, mp->value)) ++ { ++ /* More than one fix references this entry. */ ++ mp->refcount++; ++ return move_minipool_fix_forward_ref (mp, max_mp, max_address); ++ } ++ ++ /* Note the insertion point if necessary. */ ++ if (max_mp == NULL && mp->max_address > max_address) ++ max_mp = mp; ++ ++ } ++ ++ /* The value is not currently in the minipool, so we need to create a new ++ entry for it. If MAX_MP is NULL, the entry will be put on the end of ++ the list since the placement is less constrained than any existing ++ entry. Otherwise, we insert the new fix before MAX_MP and, if ++ necessary, adjust the constraints on the other entries. */ ++ mp = xmalloc (sizeof (*mp)); ++ mp->fix_size = fix->fix_size; ++ mp->mode = fix->mode; ++ mp->value = fix->value; ++ mp->refcount = 1; ++ /* Not yet required for a backwards ref. */ ++ mp->min_address = -65536; ++ ++ if (max_mp == NULL) ++ { ++ mp->max_address = max_address; ++ mp->next = NULL; ++ mp->prev = minipool_vector_tail; ++ ++ if (mp->prev == NULL) ++ { ++ minipool_vector_head = mp; ++ minipool_vector_label = gen_label_rtx (); ++ } ++ else ++ mp->prev->next = mp; ++ ++ minipool_vector_tail = mp; ++ } ++ else ++ { ++ if (max_address > max_mp->max_address - mp->fix_size) ++ mp->max_address = max_mp->max_address - mp->fix_size; ++ else ++ mp->max_address = max_address; ++ ++ mp->next = max_mp; ++ mp->prev = max_mp->prev; ++ max_mp->prev = mp; ++ if (mp->prev != NULL) ++ mp->prev->next = mp; ++ else ++ minipool_vector_head = mp; ++ } ++ ++ /* Save the new entry. */ ++ max_mp = mp; ++ ++ /* Scan over the preceding entries and adjust their addresses as required. ++ */ ++ while (mp->prev != NULL ++ && mp->prev->max_address > mp->max_address - mp->prev->fix_size) ++ { ++ mp->prev->max_address = mp->max_address - mp->prev->fix_size; ++ mp = mp->prev; ++ } ++ ++ return max_mp; ++} ++ ++static Mnode * ++move_minipool_fix_backward_ref (Mnode * mp, Mnode * min_mp, ++ HOST_WIDE_INT min_address) ++{ ++ HOST_WIDE_INT offset; ++ ++ /* This should never be true, and the code below assumes these are ++ different. */ ++ if (mp == min_mp) ++ abort (); ++ ++ if (min_mp == NULL) ++ { ++ if (min_address > mp->min_address) ++ mp->min_address = min_address; ++ } ++ else ++ { ++ /* We will adjust this below if it is too loose. */ ++ mp->min_address = min_address; ++ ++ /* Unlink MP from its current position. Since min_mp is non-null, ++ mp->next must be non-null. */ ++ mp->next->prev = mp->prev; ++ if (mp->prev != NULL) ++ mp->prev->next = mp->next; ++ else ++ minipool_vector_head = mp->next; ++ ++ /* Reinsert it after MIN_MP. */ ++ mp->prev = min_mp; ++ mp->next = min_mp->next; ++ min_mp->next = mp; ++ if (mp->next != NULL) ++ mp->next->prev = mp; ++ else ++ minipool_vector_tail = mp; ++ } ++ ++ min_mp = mp; ++ ++ offset = 0; ++ for (mp = minipool_vector_head; mp != NULL; mp = mp->next) ++ { ++ mp->offset = offset; ++ if (mp->refcount > 0) ++ offset += mp->fix_size; ++ ++ if (mp->next && mp->next->min_address < mp->min_address + mp->fix_size) ++ mp->next->min_address = mp->min_address + mp->fix_size; ++ } ++ ++ return min_mp; ++} ++ ++/* Add a constant to the minipool for a backward reference. Returns the ++ node added or NULL if the constant will not fit in this pool. ++ ++ Note that the code for insertion for a backwards reference can be ++ somewhat confusing because the calculated offsets for each fix do ++ not take into account the size of the pool (which is still under ++ construction. */ ++static Mnode * ++add_minipool_backward_ref (Mfix * fix) ++{ ++ /* If set, min_mp is the last pool_entry that has a lower constraint than ++ the one we are trying to add. */ ++ Mnode *min_mp = NULL; ++ /* This can be negative, since it is only a constraint. */ ++ HOST_WIDE_INT min_address = fix->address - fix->backwards; ++ Mnode *mp; ++ ++ /* If we can't reach the current pool from this insn, or if we can't insert ++ this entry at the end of the pool without pushing other fixes out of ++ range, then we don't try. This ensures that we can't fail later on. */ ++ if (min_address >= minipool_barrier->address ++ || (minipool_vector_tail->min_address + fix->fix_size ++ >= minipool_barrier->address)) ++ return NULL; ++ ++ /* Scan the pool to see if a constant with the same value has already been ++ added. While we are doing this, also note the location where we must ++ insert the constant if it doesn't already exist. */ ++ for (mp = minipool_vector_tail; mp != NULL; mp = mp->prev) ++ { ++ if (GET_CODE (fix->value) == GET_CODE (mp->value) ++ && fix->mode == mp->mode ++ && (GET_CODE (fix->value) != CODE_LABEL ++ || (CODE_LABEL_NUMBER (fix->value) ++ == CODE_LABEL_NUMBER (mp->value))) ++ && rtx_equal_p (fix->value, mp->value) ++ /* Check that there is enough slack to move this entry to the end ++ of the table (this is conservative). */ ++ && (mp->max_address ++ > (minipool_barrier->address ++ + minipool_vector_tail->offset ++ + minipool_vector_tail->fix_size))) ++ { ++ mp->refcount++; ++ return move_minipool_fix_backward_ref (mp, min_mp, min_address); ++ } ++ ++ if (min_mp != NULL) ++ mp->min_address += fix->fix_size; ++ else ++ { ++ /* Note the insertion point if necessary. */ ++ if (mp->min_address < min_address) ++ { ++ min_mp = mp; ++ } ++ else if (mp->max_address ++ < minipool_barrier->address + mp->offset + fix->fix_size) ++ { ++ /* Inserting before this entry would push the fix beyond its ++ maximum address (which can happen if we have re-located a ++ forwards fix); force the new fix to come after it. */ ++ min_mp = mp; ++ min_address = mp->min_address + fix->fix_size; ++ } ++ } ++ } ++ ++ /* We need to create a new entry. */ ++ mp = xmalloc (sizeof (*mp)); ++ mp->fix_size = fix->fix_size; ++ mp->mode = fix->mode; ++ mp->value = fix->value; ++ mp->refcount = 1; ++ mp->max_address = minipool_barrier->address + 65536; ++ ++ mp->min_address = min_address; ++ ++ if (min_mp == NULL) ++ { ++ mp->prev = NULL; ++ mp->next = minipool_vector_head; ++ ++ if (mp->next == NULL) ++ { ++ minipool_vector_tail = mp; ++ minipool_vector_label = gen_label_rtx (); ++ } ++ else ++ mp->next->prev = mp; ++ ++ minipool_vector_head = mp; ++ } ++ else ++ { ++ mp->next = min_mp->next; ++ mp->prev = min_mp; ++ min_mp->next = mp; ++ ++ if (mp->next != NULL) ++ mp->next->prev = mp; ++ else ++ minipool_vector_tail = mp; ++ } ++ ++ /* Save the new entry. */ ++ min_mp = mp; ++ ++ if (mp->prev) ++ mp = mp->prev; ++ else ++ mp->offset = 0; ++ ++ /* Scan over the following entries and adjust their offsets. */ ++ while (mp->next != NULL) ++ { ++ if (mp->next->min_address < mp->min_address + mp->fix_size) ++ mp->next->min_address = mp->min_address + mp->fix_size; ++ ++ if (mp->refcount) ++ mp->next->offset = mp->offset + mp->fix_size; ++ else ++ mp->next->offset = mp->offset; ++ ++ mp = mp->next; ++ } ++ ++ return min_mp; ++} ++ ++static void ++assign_minipool_offsets (Mfix * barrier) ++{ ++ HOST_WIDE_INT offset = 0; ++ Mnode *mp; ++ ++ minipool_barrier = barrier; ++ ++ for (mp = minipool_vector_head; mp != NULL; mp = mp->next) ++ { ++ mp->offset = offset; ++ ++ if (mp->refcount > 0 ++ /* If the value is (const_int 0) then this is a fake entry so don't ++ add an offset for it since it will not be output. */ ++ && !(GET_CODE (mp->value) == CONST_INT && INTVAL (mp->value) == 0)) ++ offset += mp->fix_size; ++ } ++} ++ ++/* Print a symbolic form of X to the debug file, F. */ ++static void ++avr32_print_value (FILE * f, rtx x) ++{ ++ switch (GET_CODE (x)) ++ { ++ case CONST_INT: ++ fprintf (f, "0x%x", (int) INTVAL (x)); ++ return; ++ ++ case CONST_DOUBLE: ++ fprintf (f, "<0x%lx,0x%lx>", (long) XWINT (x, 2), (long) XWINT (x, 3)); ++ return; ++ ++ case CONST_VECTOR: ++ { ++ int i; ++ ++ fprintf (f, "<"); ++ for (i = 0; i < CONST_VECTOR_NUNITS (x); i++) ++ { ++ fprintf (f, "0x%x", (int) INTVAL (CONST_VECTOR_ELT (x, i))); ++ if (i < (CONST_VECTOR_NUNITS (x) - 1)) ++ fputc (',', f); ++ } ++ fprintf (f, ">"); ++ } ++ return; ++ ++ case CONST_STRING: ++ fprintf (f, "\"%s\"", XSTR (x, 0)); ++ return; ++ ++ case SYMBOL_REF: ++ fprintf (f, "`%s'", XSTR (x, 0)); ++ return; ++ ++ case LABEL_REF: ++ fprintf (f, "L%d", INSN_UID (XEXP (x, 0))); ++ return; ++ ++ case CONST: ++ avr32_print_value (f, XEXP (x, 0)); ++ return; ++ ++ case PLUS: ++ avr32_print_value (f, XEXP (x, 0)); ++ fprintf (f, "+"); ++ avr32_print_value (f, XEXP (x, 1)); ++ return; ++ ++ case PC: ++ fprintf (f, "pc"); ++ return; ++ ++ default: ++ fprintf (f, "????"); ++ return; ++ } ++} ++ ++int ++is_minipool_label (rtx label) ++{ ++ minipool_labels *cur_mp_label = cfun->machine->minipool_label_head; ++ ++ if (GET_CODE (label) != CODE_LABEL) ++ return FALSE; ++ ++ while (cur_mp_label) ++ { ++ if (CODE_LABEL_NUMBER (label) ++ == CODE_LABEL_NUMBER (cur_mp_label->label)) ++ return TRUE; ++ cur_mp_label = cur_mp_label->next; ++ } ++ return FALSE; ++} ++ ++static void ++new_minipool_label (rtx label) ++{ ++ if (!cfun->machine->minipool_label_head) ++ { ++ cfun->machine->minipool_label_head = ++ ggc_alloc (sizeof (minipool_labels)); ++ cfun->machine->minipool_label_tail = cfun->machine->minipool_label_head; ++ cfun->machine->minipool_label_head->label = label; ++ cfun->machine->minipool_label_head->next = 0; ++ cfun->machine->minipool_label_head->prev = 0; ++ } ++ else ++ { ++ cfun->machine->minipool_label_tail->next = ++ ggc_alloc (sizeof (minipool_labels)); ++ cfun->machine->minipool_label_tail->next->label = label; ++ cfun->machine->minipool_label_tail->next->next = 0; ++ cfun->machine->minipool_label_tail->next->prev = ++ cfun->machine->minipool_label_tail; ++ cfun->machine->minipool_label_tail = ++ cfun->machine->minipool_label_tail->next; ++ } ++} ++ ++/* Output the literal table */ ++static void ++dump_minipool (rtx scan) ++{ ++ Mnode *mp; ++ Mnode *nmp; ++ ++ if (dump_file) ++ fprintf (dump_file, ++ ";; Emitting minipool after insn %u; address %ld; align %d (bytes)\n", ++ INSN_UID (scan), (unsigned long) minipool_barrier->address, 4); ++ ++ scan = emit_insn_after (gen_consttable_start (), scan); ++ scan = emit_insn_after (gen_align_4 (), scan); ++ scan = emit_label_after (minipool_vector_label, scan); ++ new_minipool_label (minipool_vector_label); ++ ++ for (mp = minipool_vector_head; mp != NULL; mp = nmp) ++ { ++ if (mp->refcount > 0) ++ { ++ if (dump_file) ++ { ++ fprintf (dump_file, ++ ";; Offset %u, min %ld, max %ld ", ++ (unsigned) mp->offset, (unsigned long) mp->min_address, ++ (unsigned long) mp->max_address); ++ avr32_print_value (dump_file, mp->value); ++ fputc ('\n', dump_file); ++ } ++ ++ switch (mp->fix_size) ++ { ++#ifdef HAVE_consttable_4 ++ case 4: ++ scan = emit_insn_after (gen_consttable_4 (mp->value), scan); ++ break; ++ ++#endif ++#ifdef HAVE_consttable_8 ++ case 8: ++ scan = emit_insn_after (gen_consttable_8 (mp->value), scan); ++ break; ++ ++#endif ++ case 0: ++ /* This can happen for force-minipool entries which just are ++ there to force the minipool to be generate. */ ++ break; ++ default: ++ abort (); ++ break; ++ } ++ } ++ ++ nmp = mp->next; ++ free (mp); ++ } ++ ++ minipool_vector_head = minipool_vector_tail = NULL; ++ scan = emit_insn_after (gen_consttable_end (), scan); ++ scan = emit_barrier_after (scan); ++} ++ ++/* Return the cost of forcibly inserting a barrier after INSN. */ ++static int ++avr32_barrier_cost (rtx insn) ++{ ++ /* Basing the location of the pool on the loop depth is preferable, but at ++ the moment, the basic block information seems to be corrupt by this ++ stage of the compilation. */ ++ int base_cost = 50; ++ rtx next = next_nonnote_insn (insn); ++ ++ if (next != NULL && GET_CODE (next) == CODE_LABEL) ++ base_cost -= 20; ++ ++ switch (GET_CODE (insn)) ++ { ++ case CODE_LABEL: ++ /* It will always be better to place the table before the label, rather ++ than after it. */ ++ return 50; ++ ++ case INSN: ++ case CALL_INSN: ++ return base_cost; ++ ++ case JUMP_INSN: ++ return base_cost - 10; ++ ++ default: ++ return base_cost + 10; ++ } ++} ++ ++/* Find the best place in the insn stream in the range ++ (FIX->address,MAX_ADDRESS) to forcibly insert a minipool barrier. ++ Create the barrier by inserting a jump and add a new fix entry for ++ it. */ ++static Mfix * ++create_fix_barrier (Mfix * fix, HOST_WIDE_INT max_address) ++{ ++ HOST_WIDE_INT count = 0; ++ rtx barrier; ++ rtx from = fix->insn; ++ rtx selected = from; ++ int selected_cost; ++ HOST_WIDE_INT selected_address; ++ Mfix *new_fix; ++ HOST_WIDE_INT max_count = max_address - fix->address; ++ rtx label = gen_label_rtx (); ++ ++ selected_cost = avr32_barrier_cost (from); ++ selected_address = fix->address; ++ ++ while (from && count < max_count) ++ { ++ rtx tmp; ++ int new_cost; ++ ++ /* This code shouldn't have been called if there was a natural barrier ++ within range. */ ++ if (GET_CODE (from) == BARRIER) ++ abort (); ++ ++ /* Count the length of this insn. */ ++ count += get_attr_length (from); ++ ++ /* If there is a jump table, add its length. */ ++ tmp = is_jump_table (from); ++ if (tmp != NULL) ++ { ++ count += get_jump_table_size (tmp); ++ ++ /* Jump tables aren't in a basic block, so base the cost on the ++ dispatch insn. If we select this location, we will still put ++ the pool after the table. */ ++ new_cost = avr32_barrier_cost (from); ++ ++ if (count < max_count && new_cost <= selected_cost) ++ { ++ selected = tmp; ++ selected_cost = new_cost; ++ selected_address = fix->address + count; ++ } ++ ++ /* Continue after the dispatch table. */ ++ from = NEXT_INSN (tmp); ++ continue; ++ } ++ ++ new_cost = avr32_barrier_cost (from); ++ ++ if (count < max_count && new_cost <= selected_cost) ++ { ++ selected = from; ++ selected_cost = new_cost; ++ selected_address = fix->address + count; ++ } ++ ++ from = NEXT_INSN (from); ++ } ++ ++ /* Create a new JUMP_INSN that branches around a barrier. */ ++ from = emit_jump_insn_after (gen_jump (label), selected); ++ JUMP_LABEL (from) = label; ++ barrier = emit_barrier_after (from); ++ emit_label_after (label, barrier); ++ ++ /* Create a minipool barrier entry for the new barrier. */ ++ new_fix = (Mfix *) obstack_alloc (&minipool_obstack, sizeof (*new_fix)); ++ new_fix->insn = barrier; ++ new_fix->address = selected_address; ++ new_fix->next = fix->next; ++ fix->next = new_fix; ++ ++ return new_fix; ++} ++ ++/* Record that there is a natural barrier in the insn stream at ++ ADDRESS. */ ++static void ++push_minipool_barrier (rtx insn, HOST_WIDE_INT address) ++{ ++ Mfix *fix = (Mfix *) obstack_alloc (&minipool_obstack, sizeof (*fix)); ++ ++ fix->insn = insn; ++ fix->address = address; ++ ++ fix->next = NULL; ++ if (minipool_fix_head != NULL) ++ minipool_fix_tail->next = fix; ++ else ++ minipool_fix_head = fix; ++ ++ minipool_fix_tail = fix; ++} ++ ++/* Record INSN, which will need fixing up to load a value from the ++ minipool. ADDRESS is the offset of the insn since the start of the ++ function; LOC is a pointer to the part of the insn which requires ++ fixing; VALUE is the constant that must be loaded, which is of type ++ MODE. */ ++static void ++push_minipool_fix (rtx insn, HOST_WIDE_INT address, rtx * loc, ++ enum machine_mode mode, rtx value) ++{ ++ Mfix *fix = (Mfix *) obstack_alloc (&minipool_obstack, sizeof (*fix)); ++ rtx body = PATTERN (insn); ++ ++ fix->insn = insn; ++ fix->address = address; ++ fix->loc = loc; ++ fix->mode = mode; ++ fix->fix_size = MINIPOOL_FIX_SIZE (mode, value); ++ fix->value = value; ++ ++ if (GET_CODE (body) == PARALLEL) ++ { ++ /* Mcall : Ks16 << 2 */ ++ fix->forwards = ((1 << 15) - 1) << 2; ++ fix->backwards = (1 << 15) << 2; ++ } ++ else if (GET_CODE (body) == SET ++ && GET_MODE_SIZE (GET_MODE (SET_DEST (body))) == 4) ++ { ++ /* Word Load */ ++ if (TARGET_HARD_FLOAT ++ && GET_MODE_CLASS (GET_MODE (SET_DEST (body))) == MODE_FLOAT) ++ { ++ /* Ldc0.w : Ku12 << 2 */ ++ fix->forwards = ((1 << 12) - 1) << 2; ++ fix->backwards = 0; ++ } ++ else ++ { ++ if (optimize_size) ++ { ++ /* Lddpc : Ku7 << 2 */ ++ fix->forwards = ((1 << 7) - 1) << 2; ++ fix->backwards = 0; ++ } ++ else ++ { ++ /* Ld.w : Ks16 */ ++ fix->forwards = ((1 << 15) - 4); ++ fix->backwards = (1 << 15); ++ } ++ } ++ } ++ else if (GET_CODE (body) == SET ++ && GET_MODE_SIZE (GET_MODE (SET_DEST (body))) == 8) ++ { ++ /* Double word load */ ++ if (TARGET_HARD_FLOAT ++ && GET_MODE_CLASS (GET_MODE (SET_DEST (body))) == MODE_FLOAT) ++ { ++ /* Ldc0.d : Ku12 << 2 */ ++ fix->forwards = ((1 << 12) - 1) << 2; ++ fix->backwards = 0; ++ } ++ else ++ { ++ /* Ld.d : Ks16 */ ++ fix->forwards = ((1 << 15) - 4); ++ fix->backwards = (1 << 15); ++ } ++ } ++ else if (GET_CODE (body) == UNSPEC_VOLATILE ++ && XINT (body, 1) == VUNSPEC_MVRC) ++ { ++ /* Coprocessor load */ ++ /* Ldc : Ku8 << 2 */ ++ fix->forwards = ((1 << 8) - 1) << 2; ++ fix->backwards = 0; ++ } ++ else ++ { ++ /* Assume worst case which is lddpc insn. */ ++ fix->forwards = ((1 << 7) - 1) << 2; ++ fix->backwards = 0; ++ } ++ ++ fix->minipool = NULL; ++ ++ /* If an insn doesn't have a range defined for it, then it isn't expecting ++ to be reworked by this code. Better to abort now than to generate duff ++ assembly code. */ ++ if (fix->forwards == 0 && fix->backwards == 0) ++ abort (); ++ ++ if (dump_file) ++ { ++ fprintf (dump_file, ++ ";; %smode fixup for i%d; addr %lu, range (%ld,%ld): ", ++ GET_MODE_NAME (mode), ++ INSN_UID (insn), (unsigned long) address, ++ -1 * (long) fix->backwards, (long) fix->forwards); ++ avr32_print_value (dump_file, fix->value); ++ fprintf (dump_file, "\n"); ++ } ++ ++ /* Add it to the chain of fixes. */ ++ fix->next = NULL; ++ ++ if (minipool_fix_head != NULL) ++ minipool_fix_tail->next = fix; ++ else ++ minipool_fix_head = fix; ++ ++ minipool_fix_tail = fix; ++} ++ ++/* Scan INSN and note any of its operands that need fixing. ++ If DO_PUSHES is false we do not actually push any of the fixups ++ needed. The function returns TRUE is any fixups were needed/pushed. ++ This is used by avr32_memory_load_p() which needs to know about loads ++ of constants that will be converted into minipool loads. */ ++static bool ++note_invalid_constants (rtx insn, HOST_WIDE_INT address, int do_pushes) ++{ ++ bool result = false; ++ int opno; ++ ++ extract_insn (insn); ++ ++ if (!constrain_operands (1)) ++ fatal_insn_not_found (insn); ++ ++ if (recog_data.n_alternatives == 0) ++ return false; ++ ++ /* Fill in recog_op_alt with information about the constraints of this ++ insn. */ ++ preprocess_constraints (); ++ ++ for (opno = 0; opno < recog_data.n_operands; opno++) ++ { ++ rtx op; ++ ++ /* Things we need to fix can only occur in inputs. */ ++ if (recog_data.operand_type[opno] != OP_IN) ++ continue; ++ ++ op = recog_data.operand[opno]; ++ ++ if (avr32_const_pool_ref_operand (op, GET_MODE (op))) ++ { ++ if (do_pushes) ++ { ++ rtx cop = avoid_constant_pool_reference (op); ++ ++ /* Casting the address of something to a mode narrower than a ++ word can cause avoid_constant_pool_reference() to return the ++ pool reference itself. That's no good to us here. Lets ++ just hope that we can use the constant pool value directly. ++ */ ++ if (op == cop) ++ cop = get_pool_constant (XEXP (op, 0)); ++ ++ push_minipool_fix (insn, address, ++ recog_data.operand_loc[opno], ++ recog_data.operand_mode[opno], cop); ++ } ++ ++ result = true; ++ } ++ else if (TARGET_HAS_ASM_ADDR_PSEUDOS ++ && avr32_address_operand (op, GET_MODE (op))) ++ { ++ /* Handle pseudo instructions using a direct address. These pseudo ++ instructions might need entries in the constant pool and we must ++ therefor create a constant pool for them, in case the ++ assembler/linker needs to insert entries. */ ++ if (do_pushes) ++ { ++ /* Push a dummy constant pool entry so that the .cpool ++ directive should be inserted on the appropriate place in the ++ code even if there are no real constant pool entries. This ++ is used by the assembler and linker to know where to put ++ generated constant pool entries. */ ++ push_minipool_fix (insn, address, ++ recog_data.operand_loc[opno], ++ recog_data.operand_mode[opno], ++ gen_rtx_UNSPEC (VOIDmode, ++ gen_rtvec (1, const0_rtx), ++ UNSPEC_FORCE_MINIPOOL)); ++ result = true; ++ } ++ } ++ } ++ return result; ++} ++ ++ ++static int ++avr32_insn_is_cast (rtx insn) ++{ ++ ++ if (NONJUMP_INSN_P (insn) ++ && GET_CODE (PATTERN (insn)) == SET ++ && (GET_CODE (SET_SRC (PATTERN (insn))) == ZERO_EXTEND ++ || GET_CODE (SET_SRC (PATTERN (insn))) == SIGN_EXTEND) ++ && REG_P (XEXP (SET_SRC (PATTERN (insn)), 0)) ++ && REG_P (SET_DEST (PATTERN (insn)))) ++ return true; ++ return false; ++} ++ ++/* FIXME: The level of nesting in this function is way too deep. It needs to be ++ torn apart. */ ++static void ++avr32_reorg_optimization (void) ++{ ++ rtx first = get_insns (); ++ rtx insn; ++ ++ if (TARGET_MD_REORG_OPTIMIZATION && (optimize_size || (optimize > 0))) ++ { ++ ++ /* Scan through all insns looking for cast operations. */ ++ if (dump_file) ++ { ++ fprintf (dump_file, ";; Deleting redundant cast operations:\n"); ++ } ++ for (insn = first; insn; insn = NEXT_INSN (insn)) ++ { ++ rtx reg, src_reg, scan; ++ enum machine_mode mode; ++ int unused_cast; ++ rtx label_ref; ++ ++ if (avr32_insn_is_cast (insn) ++ && (GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == QImode ++ || GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == HImode)) ++ { ++ mode = GET_MODE (XEXP (SET_SRC (PATTERN (insn)), 0)); ++ reg = SET_DEST (PATTERN (insn)); ++ src_reg = XEXP (SET_SRC (PATTERN (insn)), 0); ++ } ++ else ++ { ++ continue; ++ } ++ ++ unused_cast = false; ++ label_ref = NULL_RTX; ++ for (scan = NEXT_INSN (insn); scan; scan = NEXT_INSN (scan)) ++ { ++ /* Check if we have reached the destination of a simple ++ conditional jump which we have already scanned past. If so, ++ we can safely continue scanning. */ ++ if (LABEL_P (scan) && label_ref != NULL_RTX) ++ { ++ if (CODE_LABEL_NUMBER (scan) == ++ CODE_LABEL_NUMBER (XEXP (label_ref, 0))) ++ label_ref = NULL_RTX; ++ else ++ break; ++ } ++ ++ if (!INSN_P (scan)) ++ continue; ++ ++ /* For conditional jumps we can manage to keep on scanning if ++ we meet the destination label later on before any new jump ++ insns occure. */ ++ if (GET_CODE (scan) == JUMP_INSN) ++ { ++ if (any_condjump_p (scan) && label_ref == NULL_RTX) ++ label_ref = condjump_label (scan); ++ else ++ break; ++ } ++ ++ if (!reg_mentioned_p (reg, PATTERN (scan))) ++ continue; ++ ++ /* Check if casted register is used in this insn */ ++ if ((regno_use_in (REGNO (reg), PATTERN (scan)) != NULL_RTX) ++ && (GET_MODE (regno_use_in (REGNO (reg), PATTERN (scan))) == ++ GET_MODE (reg))) ++ { ++ /* If not used in the source to the set or in a memory ++ expression in the destiantion then the register is used ++ as a destination and is really dead. */ ++ if (single_set (scan) ++ && GET_CODE (PATTERN (scan)) == SET ++ && REG_P (SET_DEST (PATTERN (scan))) ++ && !regno_use_in (REGNO (reg), SET_SRC (PATTERN (scan))) ++ && label_ref == NULL_RTX) ++ { ++ unused_cast = true; ++ } ++ break; ++ } ++ ++ /* Check if register is dead or set in this insn */ ++ if (dead_or_set_p (scan, reg)) ++ { ++ unused_cast = true; ++ break; ++ } ++ } ++ ++ /* Check if we have unresolved conditional jumps */ ++ if (label_ref != NULL_RTX) ++ continue; ++ ++ if (unused_cast) ++ { ++ if (REGNO (reg) == REGNO (XEXP (SET_SRC (PATTERN (insn)), 0))) ++ { ++ /* One operand cast, safe to delete */ ++ if (dump_file) ++ { ++ fprintf (dump_file, ++ ";; INSN %i removed, casted register %i value not used.\n", ++ INSN_UID (insn), REGNO (reg)); ++ } ++ SET_INSN_DELETED (insn); ++ /* Force the instruction to be recognized again */ ++ INSN_CODE (insn) = -1; ++ } ++ else ++ { ++ /* Two operand cast, which really could be substituted with ++ a move, if the source register is dead after the cast ++ insn and then the insn which sets the source register ++ could instead directly set the destination register for ++ the cast. As long as there are no insns in between which ++ uses the register. */ ++ rtx link = NULL_RTX; ++ rtx set; ++ rtx src_reg = XEXP (SET_SRC (PATTERN (insn)), 0); ++ unused_cast = false; ++ ++ if (!find_reg_note (insn, REG_DEAD, src_reg)) ++ continue; ++ ++ /* Search for the insn which sets the source register */ ++ for (link = LOG_LINKS (insn); link; link = XEXP (link, 1)) ++ { ++ if (REG_NOTE_KIND (link) != 0) ++ continue; ++ set = single_set (XEXP (link, 0)); ++ if (set && rtx_equal_p (src_reg, SET_DEST (set))) ++ { ++ link = XEXP (link, 0); ++ break; ++ } ++ } ++ ++ /* Found no link or link is a call insn where we can not ++ change the destination register */ ++ if (link == NULL_RTX || CALL_P (link)) ++ continue; ++ ++ /* Scan through all insn between link and insn */ ++ for (scan = NEXT_INSN (link); scan; scan = NEXT_INSN (scan)) ++ { ++ /* Don't try to trace forward past a CODE_LABEL if we ++ haven't seen INSN yet. Ordinarily, we will only ++ find the setting insn in LOG_LINKS if it is in the ++ same basic block. However, cross-jumping can insert ++ code labels in between the load and the call, and ++ can result in situations where a single call insn ++ may have two targets depending on where we came ++ from. */ ++ ++ if (GET_CODE (scan) == CODE_LABEL) ++ break; ++ ++ if (!INSN_P (scan)) ++ continue; ++ ++ /* Don't try to trace forward past a JUMP. To optimize ++ safely, we would have to check that all the ++ instructions at the jump destination did not use REG. ++ */ ++ ++ if (GET_CODE (scan) == JUMP_INSN) ++ { ++ break; ++ } ++ ++ if (!reg_mentioned_p (src_reg, PATTERN (scan))) ++ continue; ++ ++ /* We have reached the cast insn */ ++ if (scan == insn) ++ { ++ /* We can remove cast and replace the destination ++ register of the link insn with the destination ++ of the cast */ ++ if (dump_file) ++ { ++ fprintf (dump_file, ++ ";; INSN %i removed, casted value unused. " ++ "Destination of removed cast operation: register %i, folded into INSN %i.\n", ++ INSN_UID (insn), REGNO (reg), ++ INSN_UID (link)); ++ } ++ /* Update link insn */ ++ SET_DEST (PATTERN (link)) = ++ gen_rtx_REG (mode, REGNO (reg)); ++ /* Force the instruction to be recognized again */ ++ INSN_CODE (link) = -1; ++ ++ /* Delete insn */ ++ SET_INSN_DELETED (insn); ++ /* Force the instruction to be recognized again */ ++ INSN_CODE (insn) = -1; ++ break; ++ } ++ } ++ } ++ } ++ } ++ } ++ ++ if (TARGET_MD_REORG_OPTIMIZATION && (optimize_size || (optimize > 0))) ++ { ++ ++ /* Scan through all insns looking for shifted add operations */ ++ if (dump_file) ++ { ++ fprintf (dump_file, ++ ";; Deleting redundant shifted add operations:\n"); ++ } ++ for (insn = first; insn; insn = NEXT_INSN (insn)) ++ { ++ rtx reg, mem_expr, scan, op0, op1; ++ int add_only_used_as_pointer; ++ ++ if (INSN_P (insn) ++ && GET_CODE (PATTERN (insn)) == SET ++ && GET_CODE (SET_SRC (PATTERN (insn))) == PLUS ++ && (GET_CODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == MULT ++ || GET_CODE (XEXP (SET_SRC (PATTERN (insn)), 0)) == ASHIFT) ++ && GET_CODE (XEXP (XEXP (SET_SRC (PATTERN (insn)), 0), 1)) == ++ CONST_INT && REG_P (SET_DEST (PATTERN (insn))) ++ && REG_P (XEXP (SET_SRC (PATTERN (insn)), 1)) ++ && REG_P (XEXP (XEXP (SET_SRC (PATTERN (insn)), 0), 0))) ++ { ++ reg = SET_DEST (PATTERN (insn)); ++ mem_expr = SET_SRC (PATTERN (insn)); ++ op0 = XEXP (XEXP (mem_expr, 0), 0); ++ op1 = XEXP (mem_expr, 1); ++ } ++ else ++ { ++ continue; ++ } ++ ++ /* Scan forward the check if the result of the shifted add ++ operation is only used as an address in memory operations and ++ that the operands to the shifted add are not clobbered. */ ++ add_only_used_as_pointer = false; ++ for (scan = NEXT_INSN (insn); scan; scan = NEXT_INSN (scan)) ++ { ++ if (!INSN_P (scan)) ++ continue; ++ ++ /* Don't try to trace forward past a JUMP or CALL. To optimize ++ safely, we would have to check that all the instructions at ++ the jump destination did not use REG. */ ++ ++ if (GET_CODE (scan) == JUMP_INSN) ++ { ++ break; ++ } ++ ++ /* If used in a call insn then we cannot optimize it away */ ++ if (CALL_P (scan) && find_regno_fusage (scan, USE, REGNO (reg))) ++ break; ++ ++ /* If any of the operands of the shifted add are clobbered we ++ cannot optimize the shifted adda away */ ++ if ((reg_set_p (op0, scan) && (REGNO (op0) != REGNO (reg))) ++ || (reg_set_p (op1, scan) && (REGNO (op1) != REGNO (reg)))) ++ break; ++ ++ if (!reg_mentioned_p (reg, PATTERN (scan))) ++ continue; ++ ++ /* If used any other place than as a pointer or as the ++ destination register we failed */ ++ if (!(single_set (scan) ++ && GET_CODE (PATTERN (scan)) == SET ++ && ((MEM_P (SET_DEST (PATTERN (scan))) ++ && REG_P (XEXP (SET_DEST (PATTERN (scan)), 0)) ++ && REGNO (XEXP (SET_DEST (PATTERN (scan)), 0)) == ++ REGNO (reg)) || (MEM_P (SET_SRC (PATTERN (scan))) ++ && ++ REG_P (XEXP ++ (SET_SRC (PATTERN (scan)), ++ 0)) ++ && ++ REGNO (XEXP ++ (SET_SRC (PATTERN (scan)), ++ 0)) == REGNO (reg)))) ++ && !(GET_CODE (PATTERN (scan)) == SET ++ && REG_P (SET_DEST (PATTERN (scan))) ++ && !regno_use_in (REGNO (reg), ++ SET_SRC (PATTERN (scan))))) ++ break; ++ ++ /* Check if register is dead or set in this insn */ ++ if (dead_or_set_p (scan, reg)) ++ { ++ add_only_used_as_pointer = true; ++ break; ++ } ++ } ++ ++ if (add_only_used_as_pointer) ++ { ++ /* Lets delete the add insn and replace all memory references ++ which uses the pointer with the full expression. */ ++ if (dump_file) ++ { ++ fprintf (dump_file, ++ ";; Deleting INSN %i since address expression can be folded into all " ++ "memory references using this expression\n", ++ INSN_UID (insn)); ++ } ++ SET_INSN_DELETED (insn); ++ /* Force the instruction to be recognized again */ ++ INSN_CODE (insn) = -1; ++ ++ for (scan = NEXT_INSN (insn); scan; scan = NEXT_INSN (scan)) ++ { ++ if (!INSN_P (scan)) ++ continue; ++ ++ if (!reg_mentioned_p (reg, PATTERN (scan))) ++ continue; ++ ++ /* If used any other place than as a pointer or as the ++ destination register we failed */ ++ if ((single_set (scan) ++ && GET_CODE (PATTERN (scan)) == SET ++ && ((MEM_P (SET_DEST (PATTERN (scan))) ++ && REG_P (XEXP (SET_DEST (PATTERN (scan)), 0)) ++ && REGNO (XEXP (SET_DEST (PATTERN (scan)), 0)) == ++ REGNO (reg)) || (MEM_P (SET_SRC (PATTERN (scan))) ++ && ++ REG_P (XEXP ++ (SET_SRC (PATTERN (scan)), ++ 0)) ++ && ++ REGNO (XEXP ++ (SET_SRC (PATTERN (scan)), ++ 0)) == REGNO (reg))))) ++ { ++ if (dump_file) ++ { ++ fprintf (dump_file, ++ ";; Register %i replaced by indexed address in INSN %i\n", ++ REGNO (reg), INSN_UID (scan)); ++ } ++ if (MEM_P (SET_DEST (PATTERN (scan)))) ++ XEXP (SET_DEST (PATTERN (scan)), 0) = mem_expr; ++ else ++ XEXP (SET_SRC (PATTERN (scan)), 0) = mem_expr; ++ } ++ ++ /* Check if register is dead or set in this insn */ ++ if (dead_or_set_p (scan, reg)) ++ { ++ break; ++ } ++ ++ } ++ } ++ } ++ } ++} ++ ++/* Exported to toplev.c. ++ ++ Do a final pass over the function, just before delayed branch ++ scheduling. */ ++ ++static void ++avr32_reorg (void) ++{ ++ rtx insn; ++ HOST_WIDE_INT address = 0; ++ Mfix *fix; ++ ++ minipool_fix_head = minipool_fix_tail = NULL; ++ ++ /* The first insn must always be a note, or the code below won't scan it ++ properly. */ ++ insn = get_insns (); ++ if (GET_CODE (insn) != NOTE) ++ abort (); ++ ++ /* Scan all the insns and record the operands that will need fixing. */ ++ for (insn = next_nonnote_insn (insn); insn; insn = next_nonnote_insn (insn)) ++ { ++ if (GET_CODE (insn) == BARRIER) ++ push_minipool_barrier (insn, address); ++ else if (INSN_P (insn)) ++ { ++ rtx table; ++ ++ note_invalid_constants (insn, address, true); ++ address += get_attr_length (insn); ++ ++ /* If the insn is a vector jump, add the size of the table and skip ++ the table. */ ++ if ((table = is_jump_table (insn)) != NULL) ++ { ++ address += get_jump_table_size (table); ++ insn = table; ++ } ++ } ++ } ++ ++ fix = minipool_fix_head; ++ ++ /* Now scan the fixups and perform the required changes. */ ++ while (fix) ++ { ++ Mfix *ftmp; ++ Mfix *fdel; ++ Mfix *last_added_fix; ++ Mfix *last_barrier = NULL; ++ Mfix *this_fix; ++ ++ /* Skip any further barriers before the next fix. */ ++ while (fix && GET_CODE (fix->insn) == BARRIER) ++ fix = fix->next; ++ ++ /* No more fixes. */ ++ if (fix == NULL) ++ break; ++ ++ last_added_fix = NULL; ++ ++ for (ftmp = fix; ftmp; ftmp = ftmp->next) ++ { ++ if (GET_CODE (ftmp->insn) == BARRIER) ++ { ++ if (ftmp->address >= minipool_vector_head->max_address) ++ break; ++ ++ last_barrier = ftmp; ++ } ++ else if ((ftmp->minipool = add_minipool_forward_ref (ftmp)) == NULL) ++ break; ++ ++ last_added_fix = ftmp; /* Keep track of the last fix added. ++ */ ++ } ++ ++ /* If we found a barrier, drop back to that; any fixes that we could ++ have reached but come after the barrier will now go in the next ++ mini-pool. */ ++ if (last_barrier != NULL) ++ { ++ /* Reduce the refcount for those fixes that won't go into this pool ++ after all. */ ++ for (fdel = last_barrier->next; ++ fdel && fdel != ftmp; fdel = fdel->next) ++ { ++ fdel->minipool->refcount--; ++ fdel->minipool = NULL; ++ } ++ ++ ftmp = last_barrier; ++ } ++ else ++ { ++ /* ftmp is first fix that we can't fit into this pool and there no ++ natural barriers that we could use. Insert a new barrier in the ++ code somewhere between the previous fix and this one, and ++ arrange to jump around it. */ ++ HOST_WIDE_INT max_address; ++ ++ /* The last item on the list of fixes must be a barrier, so we can ++ never run off the end of the list of fixes without last_barrier ++ being set. */ ++ if (ftmp == NULL) ++ abort (); ++ ++ max_address = minipool_vector_head->max_address; ++ /* Check that there isn't another fix that is in range that we ++ couldn't fit into this pool because the pool was already too ++ large: we need to put the pool before such an instruction. */ ++ if (ftmp->address < max_address) ++ max_address = ftmp->address; ++ ++ last_barrier = create_fix_barrier (last_added_fix, max_address); ++ } ++ ++ assign_minipool_offsets (last_barrier); ++ ++ while (ftmp) ++ { ++ if (GET_CODE (ftmp->insn) != BARRIER ++ && ((ftmp->minipool = add_minipool_backward_ref (ftmp)) ++ == NULL)) ++ break; ++ ++ ftmp = ftmp->next; ++ } ++ ++ /* Scan over the fixes we have identified for this pool, fixing them up ++ and adding the constants to the pool itself. */ ++ for (this_fix = fix; this_fix && ftmp != this_fix; ++ this_fix = this_fix->next) ++ if (GET_CODE (this_fix->insn) != BARRIER ++ /* Do nothing for entries present just to force the insertion of ++ a minipool. */ ++ && !IS_FORCE_MINIPOOL (this_fix->value)) ++ { ++ rtx addr = plus_constant (gen_rtx_LABEL_REF (VOIDmode, ++ minipool_vector_label), ++ this_fix->minipool->offset); ++ *this_fix->loc = gen_rtx_MEM (this_fix->mode, addr); ++ } ++ ++ dump_minipool (last_barrier->insn); ++ fix = ftmp; ++ } ++ ++ /* Free the minipool memory. */ ++ obstack_free (&minipool_obstack, minipool_startobj); ++ ++ avr32_reorg_optimization (); ++} ++ ++ ++/* ++ Hook for doing some final scanning of instructions. Does nothing yet...*/ ++void ++avr32_final_prescan_insn (rtx insn ATTRIBUTE_UNUSED, ++ rtx * opvec ATTRIBUTE_UNUSED, ++ int noperands ATTRIBUTE_UNUSED) ++{ ++ return; ++} ++ ++ ++ ++int ++avr32_expand_movcc (enum machine_mode mode, rtx operands[]) ++{ ++ rtx operator; ++ rtx compare_op0 = avr32_compare_op0; ++ rtx compare_op1 = avr32_compare_op1; ++ ++ /* Only allow certain compare operations */ ++ if (GET_MODE (compare_op0) != DImode ++ && GET_MODE (compare_op0) != SImode ++ && GET_MODE (compare_op0) != HImode && GET_MODE (compare_op0) != QImode) ++ return FALSE; ++ ++ if (GET_CODE (compare_op0) == MEM) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op0 = force_reg (GET_MODE (compare_op0), compare_op0); ++ } ++ ++ if (GET_CODE (compare_op1) == MEM) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op1 = force_reg (GET_MODE (compare_op1), compare_op1); ++ } ++ ++ /* For DI, HI and QI mode force comparison operands to registers */ ++ if (GET_MODE (compare_op0) == DImode ++ || GET_MODE (compare_op0) == HImode || GET_MODE (compare_op0) == QImode) ++ { ++ if (GET_CODE (compare_op0) != REG) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op0 = force_reg (GET_MODE (compare_op0), compare_op0); ++ } ++ ++ if (GET_CODE (compare_op1) != REG) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op1 = force_reg (GET_MODE (compare_op0), compare_op1); ++ } ++ } ++ ++ /* Force any immediate compare operands for SI, larger than the L ++ constraint, to a register */ ++ if (GET_MODE (compare_op0) == SImode) ++ { ++ if ((GET_CODE (compare_op0) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (compare_op0), 'K', ++ "Ks21"))) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op0 = force_reg (SImode, compare_op0); ++ } ++ ++ if ((GET_CODE (compare_op1) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (compare_op1), 'K', ++ "Ks21"))) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op1 = force_reg (SImode, compare_op1); ++ } ++ } ++ ++ /* If we have immediates larger than can be allowed in conditional mov ++ instructions, force them to registers */ ++ if (GET_CODE (operands[2]) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'K', "Ks08")) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ operands[2] = force_reg (mode, operands[2]); ++ } ++ ++ if (GET_CODE (operands[3]) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (operands[3]), 'K', "Ks08")) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ operands[3] = force_reg (mode, operands[3]); ++ } ++ ++ /* Emit the actual instruction */ ++ operator = gen_rtx_EQ (VOIDmode, const0_rtx, const0_rtx); ++ PUT_CODE (operator, GET_CODE (operands[1])); ++ switch (mode) ++ { ++ case SImode: ++ switch (GET_MODE (compare_op0)) ++ { ++ case SImode: ++ emit_insn (gen_movsicc_cmpsi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case DImode: ++ emit_insn (gen_movsicc_cmpdi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case HImode: ++ emit_insn (gen_movsicc_cmphi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case QImode: ++ emit_insn (gen_movsicc_cmpqi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ default: ++ return FALSE; ++ } ++ break; ++ case HImode: ++ switch (GET_MODE (compare_op0)) ++ { ++ case SImode: ++ emit_insn (gen_movhicc_cmpsi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case DImode: ++ emit_insn (gen_movhicc_cmpdi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case HImode: ++ emit_insn (gen_movhicc_cmphi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case QImode: ++ emit_insn (gen_movhicc_cmpqi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ default: ++ return FALSE; ++ } ++ break; ++ case QImode: ++ switch (GET_MODE (compare_op0)) ++ { ++ case SImode: ++ emit_insn (gen_movqicc_cmpsi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case DImode: ++ emit_insn (gen_movqicc_cmpdi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case HImode: ++ emit_insn (gen_movqicc_cmphi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case QImode: ++ emit_insn (gen_movqicc_cmpqi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ default: ++ return FALSE; ++ } ++ break; ++ default: ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++ ++int ++avr32_expand_addcc (enum machine_mode mode, rtx operands[]) ++{ ++ rtx operator; ++ rtx compare_op0 = avr32_compare_op0; ++ rtx compare_op1 = avr32_compare_op1; ++ ++ /* Check if we have an add/sub with an k8 immediate */ ++ if (!(GET_CODE (operands[3]) == CONST_INT ++ && avr32_const_ok_for_constraint_p (-INTVAL (operands[3]), 'K', ++ "Ks08"))) ++ return FALSE; ++ else ++ /* Flip sign */ ++ operands[3] = GEN_INT (-INTVAL (operands[3])); ++ ++ /* Only allow certain compare operations */ ++ if (GET_MODE (compare_op0) != DImode ++ && GET_MODE (compare_op0) != SImode ++ && GET_MODE (compare_op0) != HImode && GET_MODE (compare_op0) != QImode) ++ return FALSE; ++ ++ if (GET_CODE (compare_op0) == MEM) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op0 = force_reg (GET_MODE (compare_op0), compare_op0); ++ } ++ ++ if (GET_CODE (compare_op1) == MEM) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op1 = force_reg (GET_MODE (compare_op1), compare_op1); ++ } ++ ++ /* For DI, HI and QI mode force comparison operands to registers */ ++ if (GET_MODE (compare_op0) == DImode ++ || GET_MODE (compare_op0) == HImode || GET_MODE (compare_op0) == QImode) ++ { ++ if (GET_CODE (compare_op0) != REG) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op0 = force_reg (GET_MODE (compare_op0), compare_op0); ++ } ++ ++ if (GET_CODE (compare_op1) != REG) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op1 = force_reg (GET_MODE (compare_op0), compare_op1); ++ } ++ } ++ ++ /* Force any immediate compare operands for SI, larger than the L ++ constraint, to a register */ ++ if (GET_MODE (compare_op0) == SImode) ++ { ++ if ((GET_CODE (compare_op0) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (compare_op0), 'K', ++ "Ks21"))) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op0 = force_reg (SImode, compare_op0); ++ } ++ ++ if ((GET_CODE (compare_op1) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (compare_op1), 'K', ++ "Ks21"))) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ compare_op1 = force_reg (SImode, compare_op1); ++ } ++ } ++ ++ /* If we have immediates larger than can be allowed in conditional mov ++ instructions, force them to registers */ ++ if (GET_CODE (operands[2]) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (operands[2]), 'K', "Ks08")) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ operands[2] = force_reg (mode, operands[2]); ++ } ++ ++ if (GET_CODE (operands[3]) == CONST_INT ++ && !avr32_const_ok_for_constraint_p (INTVAL (operands[3]), 'K', "Ks08")) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ operands[3] = force_reg (mode, operands[3]); ++ } ++ ++ if (GET_CODE (operands[0]) != REG) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ operands[0] = force_reg (GET_MODE (operands[0]), operands[0]); ++ } ++ ++ if (GET_CODE (operands[2]) != REG) ++ { ++ if (no_new_pseudos) ++ return FALSE; ++ else ++ operands[2] = force_reg (GET_MODE (operands[2]), operands[2]); ++ } ++ ++ /* Check if operands[0] and operands[2] are different */ ++ if (REGNO (operands[0]) != REGNO (operands[2])) ++ { ++ emit_move_insn (operands[0], operands[2]); ++ operands[2] = operands[0]; ++ } ++ ++ /* Emit the actual instruction */ ++ operator = gen_rtx_EQ (VOIDmode, const0_rtx, const0_rtx); ++ PUT_CODE (operator, GET_CODE (operands[1])); ++ switch (mode) ++ { ++ case SImode: ++ switch (GET_MODE (compare_op0)) ++ { ++ case SImode: ++ emit_insn (gen_addsicc_cmpsi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case DImode: ++ emit_insn (gen_addsicc_cmpdi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case HImode: ++ emit_insn (gen_addsicc_cmphi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case QImode: ++ emit_insn (gen_addsicc_cmpqi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ default: ++ return FALSE; ++ } ++ break; ++ case HImode: ++ switch (GET_MODE (compare_op0)) ++ { ++ case SImode: ++ emit_insn (gen_addhicc_cmpsi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case DImode: ++ emit_insn (gen_addhicc_cmpdi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case HImode: ++ emit_insn (gen_addhicc_cmphi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case QImode: ++ emit_insn (gen_addhicc_cmpqi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ default: ++ return FALSE; ++ } ++ break; ++ case QImode: ++ switch (GET_MODE (compare_op0)) ++ { ++ case SImode: ++ emit_insn (gen_addqicc_cmpsi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case DImode: ++ emit_insn (gen_addqicc_cmpdi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case HImode: ++ emit_insn (gen_addqicc_cmphi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ case QImode: ++ emit_insn (gen_addqicc_cmpqi ++ (operands[0], operator, operands[2], operands[3], ++ compare_op0, compare_op1)); ++ break; ++ default: ++ return FALSE; ++ } ++ break; ++ default: ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++/* Function for changing the condition on the next instruction, ++ should be used when emmiting compare instructions and ++ the condition of the next instruction needs to change. ++*/ ++int ++set_next_insn_cond (rtx cur_insn, rtx new_cond) ++{ ++ rtx next_insn = next_nonnote_insn (cur_insn); ++ if ((next_insn != NULL_RTX) ++ && (INSN_P (next_insn)) ++ && (GET_CODE (PATTERN (next_insn)) == SET) ++ && (GET_CODE (SET_SRC (PATTERN (next_insn))) == IF_THEN_ELSE)) ++ { ++ /* Branch instructions */ ++ XEXP (SET_SRC (PATTERN (next_insn)), 0) = new_cond; ++ /* Force the instruction to be recognized again */ ++ INSN_CODE (next_insn) = -1; ++ return TRUE; ++ } ++ else if ((next_insn != NULL_RTX) ++ && (INSN_P (next_insn)) ++ && (GET_CODE (PATTERN (next_insn)) == SET) ++ && comparison_operator (SET_SRC (PATTERN (next_insn)), ++ GET_MODE (SET_SRC (PATTERN (next_insn))))) ++ { ++ /* scc with no compare */ ++ SET_SRC (PATTERN (next_insn)) = new_cond; ++ /* Force the instruction to be recognized again */ ++ INSN_CODE (next_insn) = -1; ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++/* Function for obtaining the condition for the next instruction ++ after cur_insn. ++*/ ++rtx ++get_next_insn_cond (rtx cur_insn) ++{ ++ rtx next_insn = next_nonnote_insn (cur_insn); ++ rtx cond = NULL_RTX; ++ if ((next_insn != NULL_RTX) ++ && (INSN_P (next_insn)) ++ && (GET_CODE (PATTERN (next_insn)) == SET) ++ && (GET_CODE (SET_SRC (PATTERN (next_insn))) == IF_THEN_ELSE)) ++ { ++ /* Branch instructions */ ++ cond = XEXP (SET_SRC (PATTERN (next_insn)), 0); ++ } ++ else if ((next_insn != NULL_RTX) ++ && (INSN_P (next_insn)) ++ && (GET_CODE (PATTERN (next_insn)) == SET) ++ && comparison_operator (SET_SRC (PATTERN (next_insn)), ++ GET_MODE (SET_SRC (PATTERN (next_insn))))) ++ { ++ /* scc with no compare */ ++ cond = SET_SRC (PATTERN (next_insn)); ++ } ++ ++ return cond; ++} ++ ++int ++avr32_expand_scc (enum rtx_code cond, rtx * operands) ++{ ++ ++ rtx comparation; ++ /* Only allow certain compare operations */ ++ if (GET_MODE (avr32_compare_op0) != DImode ++ && GET_MODE (avr32_compare_op0) != SImode ++ && GET_MODE (avr32_compare_op0) != HImode ++ && GET_MODE (avr32_compare_op0) != QImode) ++ return FALSE; ++ ++ /* Delete compare instruction as it is merged into this instruction */ ++ remove_insn (get_last_insn_anywhere ()); ++ ++ if (!REG_P (avr32_compare_op0)) ++ avr32_compare_op0 = ++ force_reg (GET_MODE (avr32_compare_op0), avr32_compare_op0); ++ ++ if (GET_MODE (avr32_compare_op0) != SImode && !REG_P (avr32_compare_op1)) ++ { ++ avr32_compare_op1 = ++ force_reg (GET_MODE (avr32_compare_op0), avr32_compare_op1); ++ } ++ else if (GET_MODE (avr32_compare_op0) == SImode ++ && !REG_P (avr32_compare_op1) ++ && (GET_CODE (avr32_compare_op1) != CONST_INT ++ || (GET_CODE (avr32_compare_op1) == CONST_INT ++ && ++ !avr32_const_ok_for_constraint_p (INTVAL ++ (avr32_compare_op1), 'K', ++ "Ks21")))) ++ avr32_compare_op1 = ++ force_reg (GET_MODE (avr32_compare_op0), avr32_compare_op1); ++ ++ ++ comparation = ++ gen_rtx_EQ (SImode, ++ gen_rtx_COMPARE (GET_MODE (avr32_compare_op0), ++ avr32_compare_op0, avr32_compare_op1), ++ const0_rtx); ++ /* Set correct condition */ ++ PUT_CODE (comparation, cond); ++ emit_insn (gen_rtx_SET (VOIDmode, operands[0], comparation)); ++ return TRUE; ++} ++ ++rtx ++avr32_output_cmp (rtx cond, enum machine_mode mode, rtx op0, rtx op1) ++{ ++ ++ rtx new_cond = NULL_RTX; ++ rtx ops[2]; ++ rtx compare_pattern; ++ ops[0] = op0; ++ ops[1] = op1; ++ ++ compare_pattern = gen_rtx_COMPARE (mode, op0, op1); ++ ++ new_cond = is_compare_redundant (compare_pattern, cond); ++ ++ if (new_cond != NULL_RTX) ++ return new_cond; ++ ++ /* Insert compare */ ++ switch (mode) ++ { ++ case QImode: ++ output_asm_insn ("cp.b\t%0, %1", ops); ++ break; ++ case HImode: ++ output_asm_insn ("cp.h\t%0, %1", ops); ++ break; ++ case SImode: ++ output_asm_insn ("cp.w\t%0, %1", ops); ++ break; ++ case DImode: ++ if (rtx_equal_p (op1, const0_rtx)) ++ output_asm_insn ("cp.w\t%0, %1\ncpc\t%m0", ops); ++ else ++ output_asm_insn ("cp.w\t%0, %1\ncpc\t%m0, %m1", ops); ++ break; ++ default: ++ internal_error ("Unknown comparison mode"); ++ break; ++ } ++ ++ return cond; ++} ++ ++int ++avr32_load_multiple_operation (rtx op, ++ enum machine_mode mode ATTRIBUTE_UNUSED) ++{ ++ int count = XVECLEN (op, 0); ++ unsigned int dest_regno; ++ rtx src_addr; ++ rtx elt; ++ int i = 1, base = 0; ++ ++ if (count <= 1 || GET_CODE (XVECEXP (op, 0, 0)) != SET) ++ return 0; ++ ++ /* Check to see if this might be a write-back. */ ++ if (GET_CODE (SET_SRC (elt = XVECEXP (op, 0, 0))) == PLUS) ++ { ++ i++; ++ base = 1; ++ ++ /* Now check it more carefully. */ ++ if (GET_CODE (SET_DEST (elt)) != REG ++ || GET_CODE (XEXP (SET_SRC (elt), 0)) != REG ++ || GET_CODE (XEXP (SET_SRC (elt), 1)) != CONST_INT ++ || INTVAL (XEXP (SET_SRC (elt), 1)) != (count - 1) * 4) ++ return 0; ++ } ++ ++ /* Perform a quick check so we don't blow up below. */ ++ if (count <= 1 ++ || GET_CODE (XVECEXP (op, 0, i - 1)) != SET ++ || GET_CODE (SET_DEST (XVECEXP (op, 0, i - 1))) != REG ++ || GET_CODE (SET_SRC (XVECEXP (op, 0, i - 1))) != UNSPEC) ++ return 0; ++ ++ dest_regno = REGNO (SET_DEST (XVECEXP (op, 0, i - 1))); ++ src_addr = XEXP (SET_SRC (XVECEXP (op, 0, i - 1)), 0); ++ ++ for (; i < count; i++) ++ { ++ elt = XVECEXP (op, 0, i); ++ ++ if (GET_CODE (elt) != SET ++ || GET_CODE (SET_DEST (elt)) != REG ++ || GET_MODE (SET_DEST (elt)) != SImode ++ || GET_CODE (SET_SRC (elt)) != UNSPEC) ++ return 0; ++ } ++ ++ return 1; ++} ++ ++int ++avr32_store_multiple_operation (rtx op, ++ enum machine_mode mode ATTRIBUTE_UNUSED) ++{ ++ int count = XVECLEN (op, 0); ++ int src_regno; ++ rtx dest_addr; ++ rtx elt; ++ int i = 1; ++ ++ if (count <= 1 || GET_CODE (XVECEXP (op, 0, 0)) != SET) ++ return 0; ++ ++ /* Perform a quick check so we don't blow up below. */ ++ if (count <= i ++ || GET_CODE (XVECEXP (op, 0, i - 1)) != SET ++ || GET_CODE (SET_DEST (XVECEXP (op, 0, i - 1))) != MEM ++ || GET_CODE (SET_SRC (XVECEXP (op, 0, i - 1))) != UNSPEC) ++ return 0; ++ ++ src_regno = REGNO (SET_SRC (XVECEXP (op, 0, i - 1))); ++ dest_addr = XEXP (SET_DEST (XVECEXP (op, 0, i - 1)), 0); ++ ++ for (; i < count; i++) ++ { ++ elt = XVECEXP (op, 0, i); ++ ++ if (GET_CODE (elt) != SET ++ || GET_CODE (SET_DEST (elt)) != MEM ++ || GET_MODE (SET_DEST (elt)) != SImode ++ || GET_CODE (SET_SRC (elt)) != UNSPEC) ++ return 0; ++ } ++ ++ return 1; ++} ++ ++int ++avr32_valid_macmac_bypass (rtx insn_out, rtx insn_in) ++{ ++ /* Check if they use the same accumulator */ ++ if (rtx_equal_p ++ (SET_DEST (PATTERN (insn_out)), SET_DEST (PATTERN (insn_in)))) ++ { ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++int ++avr32_valid_mulmac_bypass (rtx insn_out, rtx insn_in) ++{ ++ /* ++ Check if the mul instruction produces the accumulator for the mac ++ instruction. */ ++ if (rtx_equal_p ++ (SET_DEST (PATTERN (insn_out)), SET_DEST (PATTERN (insn_in)))) ++ { ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++int ++avr32_store_bypass (rtx insn_out, rtx insn_in) ++{ ++ /* Only valid bypass if the output result is used as an src in the store ++ instruction, NOT if used as a pointer or base. */ ++ if (rtx_equal_p ++ (SET_DEST (PATTERN (insn_out)), SET_SRC (PATTERN (insn_in)))) ++ { ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++int ++avr32_mul_waw_bypass (rtx insn_out, rtx insn_in) ++{ ++ /* Check if the register holding the result from the mul instruction is ++ used as a result register in the input instruction. */ ++ if (rtx_equal_p ++ (SET_DEST (PATTERN (insn_out)), SET_DEST (PATTERN (insn_in)))) ++ { ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++int ++avr32_valid_load_double_bypass (rtx insn_out, rtx insn_in) ++{ ++ /* Check if the first loaded word in insn_out is used in insn_in. */ ++ rtx dst_reg; ++ rtx second_loaded_reg; ++ ++ /* If this is a double alu operation then the bypass is not valid */ ++ if ((get_attr_type (insn_in) == TYPE_ALU ++ || get_attr_type (insn_in) == TYPE_ALU2) ++ && (GET_MODE_SIZE (GET_MODE (SET_DEST (PATTERN (insn_out)))) > 4)) ++ return FALSE; ++ ++ /* Get the destination register in the load */ ++ if (!REG_P (SET_DEST (PATTERN (insn_out)))) ++ return FALSE; ++ ++ dst_reg = SET_DEST (PATTERN (insn_out)); ++ second_loaded_reg = gen_rtx_REG (SImode, REGNO (dst_reg) + 1); ++ ++ if (!reg_mentioned_p (second_loaded_reg, PATTERN (insn_in))) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++ ++int ++avr32_valid_load_quad_bypass (rtx insn_out, rtx insn_in) ++{ ++ /* ++ Check if the two first loaded word in insn_out are used in insn_in. */ ++ rtx dst_reg; ++ rtx third_loaded_reg, fourth_loaded_reg; ++ ++ /* Get the destination register in the load */ ++ if (!REG_P (SET_DEST (PATTERN (insn_out)))) ++ return FALSE; ++ ++ dst_reg = SET_DEST (PATTERN (insn_out)); ++ third_loaded_reg = gen_rtx_REG (SImode, REGNO (dst_reg) + 2); ++ fourth_loaded_reg = gen_rtx_REG (SImode, REGNO (dst_reg) + 3); ++ ++ if (!reg_mentioned_p (third_loaded_reg, PATTERN (insn_in)) ++ && !reg_mentioned_p (fourth_loaded_reg, PATTERN (insn_in))) ++ { ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++int ++avr32_sched_use_dfa_pipeline_interface (void) ++{ ++ /* No need to scedule on avr32_uc architecture. */ ++ return (avr32_arch->arch_type != ARCH_TYPE_AVR32_UC); ++} ++ ++void ++avr32_select_rtx_section (enum machine_mode mode ATTRIBUTE_UNUSED, ++ rtx x ATTRIBUTE_UNUSED, ++ unsigned HOST_WIDE_INT align ATTRIBUTE_UNUSED) ++{ ++ /* Let ASM_OUTPUT_POOL_PROLOGUE take care of this */ ++} ++ ++/* Set up library functions to comply to AVR32 ABI */ ++ ++static void ++avr32_init_libfuncs (void) ++{ ++ /* Convert gcc run-time function names to AVR32 ABI names */ ++ ++ /* Double-precision floating-point arithmetic. */ ++ set_optab_libfunc (add_optab, DFmode, "__avr32_f64_add"); ++ set_optab_libfunc (sdiv_optab, DFmode, "__avr32_f64_div"); ++ set_optab_libfunc (smul_optab, DFmode, "__avr32_f64_mul"); ++ set_optab_libfunc (neg_optab, DFmode, NULL); ++ set_optab_libfunc (sub_optab, DFmode, "__avr32_f64_sub"); ++ ++ /* Double-precision comparisons. */ ++ set_optab_libfunc (eq_optab, DFmode, "__avr32_f64_cmp_eq"); ++ set_optab_libfunc (ne_optab, DFmode, NULL); ++ set_optab_libfunc (lt_optab, DFmode, "__avr32_f64_cmp_lt"); ++ set_optab_libfunc (le_optab, DFmode, NULL); ++ set_optab_libfunc (ge_optab, DFmode, "__avr32_f64_cmp_ge"); ++ set_optab_libfunc (gt_optab, DFmode, NULL); ++ ++ /* Single-precision floating-point arithmetic. */ ++ set_optab_libfunc (add_optab, SFmode, "__avr32_f32_add"); ++ set_optab_libfunc (sdiv_optab, SFmode, "__avr32_f32_div"); ++ set_optab_libfunc (smul_optab, SFmode, "__avr32_f32_mul"); ++ set_optab_libfunc (neg_optab, SFmode, NULL); ++ set_optab_libfunc (sub_optab, SFmode, "__avr32_f32_sub"); ++ ++ /* Single-precision comparisons. */ ++ set_optab_libfunc (eq_optab, SFmode, "__avr32_f32_cmp_eq"); ++ set_optab_libfunc (ne_optab, SFmode, NULL); ++ set_optab_libfunc (lt_optab, SFmode, "__avr32_f32_cmp_lt"); ++ set_optab_libfunc (le_optab, SFmode, NULL); ++ set_optab_libfunc (ge_optab, SFmode, "__avr32_f32_cmp_ge"); ++ set_optab_libfunc (gt_optab, SFmode, NULL); ++ ++ /* Floating-point to integer conversions. */ ++ set_conv_libfunc (sfix_optab, SImode, DFmode, "__avr32_f64_to_s32"); ++ set_conv_libfunc (ufix_optab, SImode, DFmode, "__avr32_f64_to_u32"); ++ set_conv_libfunc (sfix_optab, DImode, DFmode, "__avr32_f64_to_s64"); ++ set_conv_libfunc (ufix_optab, DImode, DFmode, "__avr32_f64_to_u64"); ++ set_conv_libfunc (sfix_optab, SImode, SFmode, "__avr32_f32_to_s32"); ++ set_conv_libfunc (ufix_optab, SImode, SFmode, "__avr32_f32_to_u32"); ++ set_conv_libfunc (sfix_optab, DImode, SFmode, "__avr32_f32_to_s64"); ++ set_conv_libfunc (ufix_optab, DImode, SFmode, "__avr32_f32_to_u64"); ++ ++ /* Conversions between floating types. */ ++ set_conv_libfunc (trunc_optab, SFmode, DFmode, "__avr32_f64_to_f32"); ++ set_conv_libfunc (sext_optab, DFmode, SFmode, "__avr32_f32_to_f64"); ++ ++ /* Integer to floating-point conversions. Table 8. */ ++ set_conv_libfunc (sfloat_optab, DFmode, SImode, "__avr32_s32_to_f64"); ++ set_conv_libfunc (sfloat_optab, DFmode, DImode, "__avr32_s64_to_f64"); ++ set_conv_libfunc (sfloat_optab, SFmode, SImode, "__avr32_s32_to_f32"); ++ set_conv_libfunc (sfloat_optab, SFmode, DImode, "__avr32_s64_to_f32"); ++ set_conv_libfunc (ufloat_optab, DFmode, SImode, "__avr32_u32_to_f64"); ++ set_conv_libfunc (ufloat_optab, SFmode, SImode, "__avr32_u32_to_f32"); ++ /* TODO: Add these to gcc library functions */ ++ ++ set_conv_libfunc (ufloat_optab, DFmode, DImode, NULL); ++ set_conv_libfunc (ufloat_optab, SFmode, DImode, NULL); ++ ++ /* Long long. Table 9. */ ++ set_optab_libfunc (smul_optab, DImode, "__avr32_mul64"); ++ set_optab_libfunc (sdiv_optab, DImode, "__avr32_sdiv64"); ++ set_optab_libfunc (udiv_optab, DImode, "__avr32_udiv64"); ++ set_optab_libfunc (smod_optab, DImode, "__avr32_smod64"); ++ set_optab_libfunc (umod_optab, DImode, "__avr32_umod64"); ++ set_optab_libfunc (ashl_optab, DImode, "__avr32_lsl64"); ++ set_optab_libfunc (lshr_optab, DImode, "__avr32_lsr64"); ++ set_optab_libfunc (ashr_optab, DImode, "__avr32_asr64"); ++} +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/avr32-elf.h gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32-elf.h +--- gcc-4.0.2/gcc/config/avr32/avr32-elf.h 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32-elf.h 2006-11-17 10:38:10.000000000 +0100 +@@ -0,0 +1,82 @@ ++/* ++ Elf specific definitions. ++ Copyright 2003-2006 Atmel Corporation. ++ ++ Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++ ++ This file is part of GCC. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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 program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++ ++/***************************************************************************** ++ * Controlling the Compilator Driver, 'gcc' ++ *****************************************************************************/ ++ ++/* Run-time Target Specification. */ ++#undef TARGET_VERSION ++#define TARGET_VERSION fputs (" (AVR32 GNU with ELF)", stderr); ++ ++/* ++Another C string constant used much like LINK_SPEC. The ++difference between the two is that STARTFILE_SPEC is used at ++the very beginning of the command given to the linker. ++ ++If this macro is not defined, a default is provided that loads the ++standard C startup file from the usual place. See gcc.c. ++*/ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC "crt0%O%s crti%O%s crtbegin%O%s" ++ ++#undef LINK_SPEC ++#define LINK_SPEC "%{muse-oscall:--defsym __do_not_use_oscall_coproc__=0} %{mrelax|O*:%{mno-relax|O0|O1: ;:--relax}} %{mpart=*:-mavr32elf_%*} %{mcpu=*:-mavr32elf_%*}" ++ ++ ++/* ++Another C string constant used much like LINK_SPEC. The ++difference between the two is that ENDFILE_SPEC is used at ++the very end of the command given to the linker. ++ ++Do not define this macro if it does not need to do anything. ++*/ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC "crtend%O%s crtn%O%s" ++ ++ ++/* Target CPU builtins. */ ++#define TARGET_CPU_CPP_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("__avr32__"); \ ++ builtin_define ("__AVR32__"); \ ++ builtin_define ("__AVR32_ELF__"); \ ++ builtin_define (avr32_part->macro); \ ++ builtin_define (avr32_arch->macro); \ ++ if (avr32_arch->uarch_type == UARCH_TYPE_AVR32A) \ ++ builtin_define ("__AVR32_AVR32A__"); \ ++ else \ ++ builtin_define ("__AVR32_AVR32B__"); \ ++ if (TARGET_UNALIGNED_WORD) \ ++ builtin_define ("__AVR32_HAS_UNALIGNED_WORD__"); \ ++ if (TARGET_SIMD) \ ++ builtin_define ("__AVR32_HAS_SIMD__"); \ ++ if (TARGET_DSP) \ ++ builtin_define ("__AVR32_HAS_DSP__"); \ ++ if (TARGET_RMW) \ ++ builtin_define ("__AVR32_HAS_RMW__"); \ ++ if (TARGET_BRANCH_PRED) \ ++ builtin_define ("__AVR32_HAS_BRANCH_PRED__"); \ ++ } \ ++ while (0) +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/avr32.h gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32.h +--- gcc-4.0.2/gcc/config/avr32/avr32.h 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32.h 2006-11-10 15:14:06.000000000 +0100 +@@ -0,0 +1,3374 @@ ++/* ++ Definitions of target machine for AVR32. ++ Copyright 2003-2006 Atmel Corporation. ++ ++ Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++ Initial porting by Anders dland. ++ ++ This file is part of GCC. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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 program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++#ifndef GCC_AVR32_H ++#define GCC_AVR32_H ++ ++ ++#ifndef OBJECT_FORMAT_ELF ++#error avr32.h included before elfos.h ++#endif ++ ++#ifndef LOCAL_LABEL_PREFIX ++#define LOCAL_LABEL_PREFIX "." ++#endif ++ ++#ifndef SUBTARGET_CPP_SPEC ++#define SUBTARGET_CPP_SPEC "-D__ELF__" ++#endif ++ ++ ++extern struct rtx_def *avr32_compare_op0; ++extern struct rtx_def *avr32_compare_op1; ++ ++ ++extern struct rtx_def *avr32_acc_cache; ++ ++/* cache instruction op5 codes */ ++#define AVR32_CACHE_INVALIDATE_ICACHE 1 ++ ++/* These bits describe the different types of function supported ++ by the AVR32 backend. They are exclusive. ie a function cannot be both a ++ normal function and an interworked function, for example. Knowing the ++ type of a function is important for determining its prologue and ++ epilogue sequences. ++ Note value 7 is currently unassigned. Also note that the interrupt ++ function types all have bit 2 set, so that they can be tested for easily. ++ Note that 0 is deliberately chosen for AVR32_FT_UNKNOWN so that when the ++ machine_function structure is initialized (to zero) func_type will ++ default to unknown. This will force the first use of avr32_current_func_type ++ to call avr32_compute_func_type. */ ++#define AVR32_FT_UNKNOWN 0 /* Type has not yet been determined. ++ */ ++#define AVR32_FT_NORMAL 1 /* Your normal, straightforward ++ function. */ ++#define AVR32_FT_ACALL 2 /* An acall function. */ ++#define AVR32_FT_EXCEPTION_HANDLER 3 /* A C++ exception handler. */ ++#define AVR32_FT_ISR_FULL 4 /* A fully shadowed interrupt mode. */ ++#define AVR32_FT_ISR_HALF 5 /* A half shadowed interrupt mode. */ ++#define AVR32_FT_ISR_NONE 6 /* No shadow registers. */ ++ ++#define AVR32_FT_TYPE_MASK ((1 << 3) - 1) ++ ++/* In addition functions can have several type modifiers, ++ outlined by these bit masks: */ ++#define AVR32_FT_INTERRUPT (1 << 2) /* Note overlap with FT_ISR ++ and above. */ ++#define AVR32_FT_NAKED (1 << 3) /* No prologue or epilogue. */ ++#define AVR32_FT_VOLATILE (1 << 4) /* Does not return. */ ++#define AVR32_FT_NESTED (1 << 5) /* Embedded inside another ++ func. */ ++ ++/* Some macros to test these flags. */ ++#define AVR32_FUNC_TYPE(t) (t & AVR32_FT_TYPE_MASK) ++#define IS_INTERRUPT(t) (t & AVR32_FT_INTERRUPT) ++#define IS_VOLATILE(t) (t & AVR32_FT_VOLATILE) ++#define IS_NAKED(t) (t & AVR32_FT_NAKED) ++#define IS_NESTED(t) (t & AVR32_FT_NESTED) ++ ++ ++typedef struct minipool_labels ++GTY ((chain_next ("%h.next"), chain_prev ("%h.prev"))) ++{ ++ rtx label; ++ struct minipool_labels *prev; ++ struct minipool_labels *next; ++} minipool_labels; ++ ++/* A C structure for machine-specific, per-function data. ++ This is added to the cfun structure. */ ++ ++typedef struct machine_function ++GTY (()) ++{ ++ /* Records the type of the current function. */ ++ unsigned long func_type; ++ /* List of minipool labels, use for checking if code label is valid in a ++ memory expression */ ++ minipool_labels *minipool_label_head; ++ minipool_labels *minipool_label_tail; ++} machine_function; ++ ++/* Initialize data used by insn expanders. This is called from insn_emit, ++ once for every function before code is generated. */ ++#define INIT_EXPANDERS avr32_init_expanders () ++ ++/****************************************************************************** ++ * SPECS ++ *****************************************************************************/ ++ ++#ifndef ASM_SPEC ++#define ASM_SPEC "%{fpic:--pic} %{mrelax|O*:%{mno-relax|O0|O1: ;:--linkrelax}} %{march=*:-march=%*} %{mpart=*:-mpart=%*}" ++#endif ++ ++#ifndef MULTILIB_DEFAULTS ++#define MULTILIB_DEFAULTS { "march=ap" } ++#endif ++ ++ ++/****************************************************************************** ++ * Run-time Target Specification ++ *****************************************************************************/ ++extern int target_flags; ++ ++/* Part types. Keep this in sync with the order of avr32_part_types in avr32.c*/ ++enum part_type ++{ ++ PART_TYPE_AVR32_NONE, ++ PART_TYPE_AVR32_AP7000, ++ PART_TYPE_AVR32_AP7010, ++ PART_TYPE_AVR32_AP7020, ++ PART_TYPE_AVR32_UC3A0256, ++ PART_TYPE_AVR32_UC3A0512, ++ PART_TYPE_AVR32_UC3A1128, ++ PART_TYPE_AVR32_UC3A1256, ++ PART_TYPE_AVR32_UC3A1512 ++}; ++ ++/* Microarchitectures. */ ++enum microarchitecture_type ++{ ++ UARCH_TYPE_AVR32A, ++ UARCH_TYPE_AVR32B ++}; ++ ++/* Architectures types which specifies the pipeline. ++ Keep this in sync with avr32_arch_types in avr32.c*/ ++enum architecture_type ++{ ++ ARCH_TYPE_AVR32_AP, ++ ARCH_TYPE_AVR32_UC ++}; ++ ++/* Flag specifying if the cpu has support for DSP instructions.*/ ++#define FLAG_AVR32_HAS_DSP (1 << 0) ++/* Flag specifying if the cpu has support for Read-Modify-Write ++ instructions.*/ ++#define FLAG_AVR32_HAS_RMW (1 << 1) ++/* Flag specifying if the cpu has support for SIMD instructions. */ ++#define FLAG_AVR32_HAS_SIMD (1 << 2) ++/* Flag specifying if the cpu has support for unaligned memory word access. */ ++#define FLAG_AVR32_HAS_UNALIGNED_WORD (1 << 3) ++/* Flag specifying if the cpu has support for branch prediction. */ ++#define FLAG_AVR32_HAS_BRANCH_PRED (1 << 4) ++ ++/* Structure for holding information about different avr32 CPUs/parts */ ++struct part_type_s ++{ ++ const char *const name; ++ enum part_type part_type; ++ enum architecture_type arch_type; ++ /* Must lie outside user's namespace. NULL == no macro. */ ++ const char *const macro; ++}; ++ ++/* Structure for holding information about different avr32 pipeline ++ architectures. */ ++struct arch_type_s ++{ ++ const char *const name; ++ enum architecture_type arch_type; ++ enum microarchitecture_type uarch_type; ++ const unsigned long feature_flags; ++ /* Must lie outside user's namespace. NULL == no macro. */ ++ const char *const macro; ++}; ++ ++extern const struct part_type_s *avr32_part; ++extern const struct arch_type_s *avr32_arch; ++ ++#define USE_RODATA_SECTION (1 << 0) ++#define AVR32_FLAG_HARD_FLOAT (1 << 1) ++#define AVR32_FLAG_FORCE_DOUBLE_ALIGN (1 << 2) ++#define AVR32_FLAG_RELAX (1 << 4) ++#define AVR32_FLAG_NO_INIT_GOT (1 << 5) ++#define AVR32_FLAG_NO_REORG_OPT (1 << 6) ++#define AVR32_FLAG_NO_ASM_ADDR_PSEUDOS (1 << 7) ++#define AVR32_FLAG_NO_PIC (1 << 8) ++ ++#define TARGET_HARD_FLOAT (target_flags & AVR32_FLAG_HARD_FLOAT) ++#define TARGET_SOFT_FLOAT (!TARGET_HARD_FLOAT) ++#define TARGET_FORCE_DOUBLE_ALIGN (target_flags & AVR32_FLAG_FORCE_DOUBLE_ALIGN) ++#define TARGET_RELAX (target_flags & AVR32_FLAG_RELAX) ++#define TARGET_NO_INIT_GOT (target_flags & AVR32_FLAG_NO_INIT_GOT) ++#define TARGET_MD_REORG_OPTIMIZATION (!(target_flags & AVR32_FLAG_NO_REORG_OPT)) ++#define TARGET_HAS_ASM_ADDR_PSEUDOS (!(target_flags & AVR32_FLAG_NO_ASM_ADDR_PSEUDOS)) ++ ++#define TARGET_SIMD (avr32_arch->feature_flags & FLAG_AVR32_HAS_SIMD) ++#define TARGET_DSP (avr32_arch->feature_flags & FLAG_AVR32_HAS_DSP) ++#define TARGET_RMW (avr32_arch->feature_flags & FLAG_AVR32_HAS_RMW) ++#define TARGET_UNALIGNED_WORD (avr32_arch->feature_flags & FLAG_AVR32_HAS_UNALIGNED_WORD) ++#define TARGET_BRANCH_PRED (avr32_arch->feature_flags & FLAG_AVR32_HAS_BRANCH_PRED) ++ ++ ++#define TARGET_SWITCHES { \ ++ { "use-rodata-section", USE_RODATA_SECTION, \ ++ N_("Do not put readonly-data in .text section, but in .rodata.") }, \ ++ { "hard-float", AVR32_FLAG_HARD_FLOAT, \ ++ N_("Use floating point coprocessor instructions.") }, \ ++ { "soft-float", -AVR32_FLAG_HARD_FLOAT, \ ++ N_("Use software floating-point library for floating-point operations.") }, \ ++ { "force-double-align", AVR32_FLAG_FORCE_DOUBLE_ALIGN, \ ++ N_("Force double-word alignment for double-word memory accesses.") }, \ ++ { "no-init-got", AVR32_FLAG_NO_INIT_GOT, \ ++ N_("Do not initialize GOT register before using it when compiling PIC code.") }, \ ++ { "relax", AVR32_FLAG_RELAX, \ ++ N_("Let invoked assembler and linker do relaxing (Enabled by default when optimization level is >1).") }, \ ++ { "no-relax", -AVR32_FLAG_RELAX, \ ++ N_("Don't let invoked assembler and linker do relaxing.") }, \ ++ { "no-reorg-opt", AVR32_FLAG_NO_REORG_OPT, \ ++ N_("Do not perform machine dependent optimizations in reorg stage.") }, \ ++ { "asm-addr-pseudos", -AVR32_FLAG_NO_ASM_ADDR_PSEUDOS, \ ++ N_("Use assembler pseudo-instructions lda.w and call for handling direct addresses. (Enabled by default)") }, \ ++ { "no-asm-addr-pseudos", AVR32_FLAG_NO_ASM_ADDR_PSEUDOS, \ ++ N_("Do not use assembler pseudo-instructions lda.w and call for handling direct addresses.") }, \ ++ { "no-pic", AVR32_FLAG_NO_PIC, \ ++ N_("Do not emit position-independent code (will break dynamic linking.)") }, \ ++ { "", 0, NULL } \ ++} ++ ++ ++extern const char *avr32_part_name; ++extern const char *avr32_arch_name; ++ ++#define TARGET_OPTIONS { \ ++ { "part=", &avr32_part_name, N_("Specify the AVR32 part name"), 0}, \ ++ { "cpu=", &avr32_part_name, N_("Specify the AVR32 part name (deprecated)"), 0}, \ ++ { "arch=", &avr32_arch_name, N_("Specify the AVR32 architecture name"), 0} } ++ ++#define CAN_DEBUG_WITHOUT_FP ++ ++/****************************************************************************** ++ * Storage Layout ++ *****************************************************************************/ ++ ++/* ++Define this macro to have the value 1 if the most significant bit in a ++byte has the lowest number; otherwise define it to have the value zero. ++This means that bit-field instructions count from the most significant ++bit. If the machine has no bit-field instructions, then this must still ++be defined, but it doesn't matter which value it is defined to. This ++macro need not be a constant. ++ ++This macro does not affect the way structure fields are packed into ++bytes or words; that is controlled by BYTES_BIG_ENDIAN. ++*/ ++#define BITS_BIG_ENDIAN 0 ++ ++/* ++Define this macro to have the value 1 if the most significant byte in a ++word has the lowest number. This macro need not be a constant. ++*/ ++/* ++ Data is stored in an big-endian way. ++*/ ++#define BYTES_BIG_ENDIAN 1 ++ ++/* ++Define this macro to have the value 1 if, in a multiword object, the ++most significant word has the lowest number. This applies to both ++memory locations and registers; GCC fundamentally assumes that the ++order of words in memory is the same as the order in registers. This ++macro need not be a constant. ++*/ ++/* ++ Data is stored in an bin-endian way. ++*/ ++#define WORDS_BIG_ENDIAN 1 ++ ++/* ++Define this macro if WORDS_BIG_ENDIAN is not constant. This must be a ++constant value with the same meaning as WORDS_BIG_ENDIAN, which will be ++used only when compiling libgcc2.c. Typically the value will be set ++based on preprocessor defines. ++*/ ++#define LIBGCC2_WORDS_BIG_ENDIAN WORDS_BIG_ENDIAN ++ ++/* ++Define this macro to have the value 1 if DFmode, XFmode or ++TFmode floating point numbers are stored in memory with the word ++containing the sign bit at the lowest address; otherwise define it to ++have the value 0. This macro need not be a constant. ++ ++You need not define this macro if the ordering is the same as for ++multi-word integers. ++*/ ++/* #define FLOAT_WORDS_BIG_ENDIAN 1 */ ++ ++/* ++Define this macro to be the number of bits in an addressable storage ++unit (byte); normally 8. ++*/ ++#define BITS_PER_UNIT 8 ++ ++/* ++Number of bits in a word; normally 32. ++*/ ++#define BITS_PER_WORD 32 ++ ++/* ++Maximum number of bits in a word. If this is undefined, the default is ++BITS_PER_WORD. Otherwise, it is the constant value that is the ++largest value that BITS_PER_WORD can have at run-time. ++*/ ++/* MAX_BITS_PER_WORD not defined*/ ++ ++/* ++Number of storage units in a word; normally 4. ++*/ ++#define UNITS_PER_WORD 4 ++ ++/* ++Minimum number of units in a word. If this is undefined, the default is ++UNITS_PER_WORD. Otherwise, it is the constant value that is the ++smallest value that UNITS_PER_WORD can have at run-time. ++*/ ++/* MIN_UNITS_PER_WORD not defined */ ++ ++/* ++Width of a pointer, in bits. You must specify a value no wider than the ++width of Pmode. If it is not equal to the width of Pmode, ++you must define POINTERS_EXTEND_UNSIGNED. ++*/ ++#define POINTER_SIZE 32 ++ ++/* ++A C expression whose value is greater than zero if pointers that need to be ++extended from being POINTER_SIZE bits wide to Pmode are to ++be zero-extended and zero if they are to be sign-extended. If the value ++is less then zero then there must be an "ptr_extend" instruction that ++extends a pointer from POINTER_SIZE to Pmode. ++ ++You need not define this macro if the POINTER_SIZE is equal ++to the width of Pmode. ++*/ ++/* #define POINTERS_EXTEND_UNSIGNED */ ++ ++/* ++A Macro to update M and UNSIGNEDP when an object whose type ++is TYPE and which has the specified mode and signedness is to be ++stored in a register. This macro is only called when TYPE is a ++scalar type. ++ ++On most RISC machines, which only have operations that operate on a full ++register, define this macro to set M to word_mode if ++M is an integer mode narrower than BITS_PER_WORD. In most ++cases, only integer modes should be widened because wider-precision ++floating-point operations are usually more expensive than their narrower ++counterparts. ++ ++For most machines, the macro definition does not change UNSIGNEDP. ++However, some machines, have instructions that preferentially handle ++either signed or unsigned quantities of certain modes. For example, on ++the DEC Alpha, 32-bit loads from memory and 32-bit add instructions ++sign-extend the result to 64 bits. On such machines, set ++UNSIGNEDP according to which kind of extension is more efficient. ++ ++Do not define this macro if it would never modify M. ++*/ ++#define PROMOTE_MODE(M, UNSIGNEDP, TYPE) \ ++ do \ ++ { \ ++ if (GET_MODE_CLASS (M) == MODE_INT \ ++ && GET_MODE_SIZE (M) < 4) \ ++ { \ ++ (M) = SImode; \ ++ } \ ++ } \ ++ while (0) ++ ++/* Define if operations between registers always perform the operation ++ on the full register even if a narrower mode is specified. */ ++#define WORD_REGISTER_OPERATIONS ++ ++/* Define if loading in MODE, an integral mode narrower than BITS_PER_WORD ++ will either zero-extend or sign-extend. The value of this macro should ++ be the code that says which one of the two operations is implicitly ++ done, UNKNOWN if not known. */ ++#define LOAD_EXTEND_OP(MODE) \ ++ (((MODE) == QImode) ? ZERO_EXTEND \ ++ : ((MODE) == HImode) ? SIGN_EXTEND : UNKNOWN) ++ ++ ++/* ++Define this macro if the promotion described by PROMOTE_MODE ++should only be performed for outgoing function arguments or ++function return values, as specified by PROMOTE_FUNCTION_ARGS ++and PROMOTE_FUNCTION_RETURN, respectively. ++*/ ++/* #define PROMOTE_FOR_CALL_ONLY */ ++ ++/* ++Normal alignment required for function parameters on the stack, in ++bits. All stack parameters receive at least this much alignment ++regardless of data type. On most machines, this is the same as the ++size of an integer. ++*/ ++#define PARM_BOUNDARY 32 ++ ++/* ++Define this macro to the minimum alignment enforced by hardware for the ++stack pointer on this machine. The definition is a C expression for the ++desired alignment (measured in bits). This value is used as a default ++if PREFERRED_STACK_BOUNDARY is not defined. On most machines, ++this should be the same as PARM_BOUNDARY. ++*/ ++#define STACK_BOUNDARY 32 ++ ++/* ++Define this macro if you wish to preserve a certain alignment for the ++stack pointer, greater than what the hardware enforces. The definition ++is a C expression for the desired alignment (measured in bits). This ++macro must evaluate to a value equal to or larger than ++STACK_BOUNDARY. ++*/ ++#define PREFERRED_STACK_BOUNDARY (TARGET_FORCE_DOUBLE_ALIGN ? 64 : 32 ) ++ ++/* ++Alignment required for a function entry point, in bits. ++*/ ++#define FUNCTION_BOUNDARY 16 ++ ++/* ++Biggest alignment that any data type can require on this machine, in bits. ++*/ ++#define BIGGEST_ALIGNMENT (TARGET_FORCE_DOUBLE_ALIGN ? 64 : 32 ) ++ ++/* ++If defined, the smallest alignment, in bits, that can be given to an ++object that can be referenced in one operation, without disturbing any ++nearby object. Normally, this is BITS_PER_UNIT, but may be larger ++on machines that don't have byte or half-word store operations. ++*/ ++#define MINIMUM_ATOMIC_ALIGNMENT BITS_PER_UNIT ++ ++ ++/* ++An integer expression for the size in bits of the largest integer machine mode that ++should actually be used. All integer machine modes of this size or smaller can be ++used for structures and unions with the appropriate sizes. If this macro is undefined, ++GET_MODE_BITSIZE (DImode) is assumed.*/ ++#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (DImode) ++ ++ ++/* ++If defined, a C expression to compute the alignment given to a constant ++that is being placed in memory. CONSTANT is the constant and ++BASIC_ALIGN is the alignment that the object would ordinarily ++have. The value of this macro is used instead of that alignment to ++align the object. ++ ++If this macro is not defined, then BASIC_ALIGN is used. ++ ++The typical use of this macro is to increase alignment for string ++constants to be word aligned so that strcpy calls that copy ++constants can be done inline. ++*/ ++#define CONSTANT_ALIGNMENT(CONSTANT, BASIC_ALIGN) \ ++ ((TREE_CODE(CONSTANT) == STRING_CST) ? BITS_PER_WORD : BASIC_ALIGN) ++ ++/* Try to align string to a word. */ ++#define DATA_ALIGNMENT(TYPE, ALIGN) \ ++ ({(TREE_CODE (TYPE) == ARRAY_TYPE \ ++ && TYPE_MODE (TREE_TYPE (TYPE)) == QImode \ ++ && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN));}) ++ ++/* Try to align local store strings to a word. */ ++#define LOCAL_ALIGNMENT(TYPE, ALIGN) \ ++ ({(TREE_CODE (TYPE) == ARRAY_TYPE \ ++ && TYPE_MODE (TREE_TYPE (TYPE)) == QImode \ ++ && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN));}) ++ ++/* ++Define this macro to be the value 1 if instructions will fail to work ++if given data not on the nominal alignment. If instructions will merely ++go slower in that case, define this macro as 0. ++*/ ++#define STRICT_ALIGNMENT 1 ++ ++/* ++Define this if you wish to imitate the way many other C compilers handle ++alignment of bit-fields and the structures that contain them. ++ ++The behavior is that the type written for a bit-field (int, ++short, or other integer type) imposes an alignment for the ++entire structure, as if the structure really did contain an ordinary ++field of that type. In addition, the bit-field is placed within the ++structure so that it would fit within such a field, not crossing a ++boundary for it. ++ ++Thus, on most machines, a bit-field whose type is written as int ++would not cross a four-byte boundary, and would force four-byte ++alignment for the whole structure. (The alignment used may not be four ++bytes; it is controlled by the other alignment parameters.) ++ ++If the macro is defined, its definition should be a C expression; ++a nonzero value for the expression enables this behavior. ++ ++Note that if this macro is not defined, or its value is zero, some ++bit-fields may cross more than one alignment boundary. The compiler can ++support such references if there are insv, extv, and ++extzv insns that can directly reference memory. ++ ++The other known way of making bit-fields work is to define ++STRUCTURE_SIZE_BOUNDARY as large as BIGGEST_ALIGNMENT. ++Then every structure can be accessed with fullwords. ++ ++Unless the machine has bit-field instructions or you define ++STRUCTURE_SIZE_BOUNDARY that way, you must define ++PCC_BITFIELD_TYPE_MATTERS to have a nonzero value. ++ ++If your aim is to make GCC use the same conventions for laying out ++bit-fields as are used by another compiler, here is how to investigate ++what the other compiler does. Compile and run this program: ++ ++struct foo1 ++{ ++ char x; ++ char :0; ++ char y; ++}; ++ ++struct foo2 ++{ ++ char x; ++ int :0; ++ char y; ++}; ++ ++main () ++{ ++ printf ("Size of foo1 is %d\n", ++ sizeof (struct foo1)); ++ printf ("Size of foo2 is %d\n", ++ sizeof (struct foo2)); ++ exit (0); ++} ++ ++If this prints 2 and 5, then the compiler's behavior is what you would ++get from PCC_BITFIELD_TYPE_MATTERS. ++*/ ++#define PCC_BITFIELD_TYPE_MATTERS 1 ++ ++ ++/****************************************************************************** ++ * Layout of Source Language Data Types ++ *****************************************************************************/ ++ ++/* ++A C expression for the size in bits of the type int on the ++target machine. If you don't define this, the default is one word. ++*/ ++#define INT_TYPE_SIZE 32 ++ ++/* ++A C expression for the size in bits of the type short on the ++target machine. If you don't define this, the default is half a word. (If ++this would be less than one storage unit, it is rounded up to one unit.) ++*/ ++#define SHORT_TYPE_SIZE 16 ++ ++/* ++A C expression for the size in bits of the type long on the ++target machine. If you don't define this, the default is one word. ++*/ ++#define LONG_TYPE_SIZE 32 ++ ++ ++/* ++A C expression for the size in bits of the type long long on the ++target machine. If you don't define this, the default is two ++words. If you want to support GNU Ada on your machine, the value of this ++macro must be at least 64. ++*/ ++#define LONG_LONG_TYPE_SIZE 64 ++ ++/* ++A C expression for the size in bits of the type char on the ++target machine. If you don't define this, the default is ++BITS_PER_UNIT. ++*/ ++#define CHAR_TYPE_SIZE 8 ++ ++ ++/* ++A C expression for the size in bits of the C++ type bool and ++C99 type _Bool on the target machine. If you don't define ++this, and you probably shouldn't, the default is CHAR_TYPE_SIZE. ++*/ ++#define BOOL_TYPE_SIZE 8 ++ ++ ++/* ++An expression whose value is 1 or 0, according to whether the type ++char should be signed or unsigned by default. The user can ++always override this default with the options -fsigned-char ++and -funsigned-char. ++*/ ++/* We are using unsigned char */ ++#define DEFAULT_SIGNED_CHAR 0 ++ ++ ++/* ++A C expression for a string describing the name of the data type to use ++for size values. The typedef name size_t is defined using the ++contents of the string. ++ ++The string can contain more than one keyword. If so, separate them with ++spaces, and write first any length keyword, then unsigned if ++appropriate, and finally int. The string must exactly match one ++of the data type names defined in the function ++init_decl_processing in the file c-decl.c. You may not ++omit int or change the order - that would cause the compiler to ++crash on startup. ++ ++If you don't define this macro, the default is "long unsigned int". ++*/ ++#define SIZE_TYPE "long unsigned int" ++ ++/* ++A C expression for a string describing the name of the data type to use ++for the result of subtracting two pointers. The typedef name ++ptrdiff_t is defined using the contents of the string. See ++SIZE_TYPE above for more information. ++ ++If you don't define this macro, the default is "long int". ++*/ ++#define PTRDIFF_TYPE "long int" ++ ++ ++/* ++A C expression for the size in bits of the data type for wide ++characters. This is used in cpp, which cannot make use of ++WCHAR_TYPE. ++*/ ++#define WCHAR_TYPE_SIZE 32 ++ ++ ++/* ++A C expression for a string describing the name of the data type to ++use for wide characters passed to printf and returned from ++getwc. The typedef name wint_t is defined using the ++contents of the string. See SIZE_TYPE above for more ++information. ++ ++If you don't define this macro, the default is "unsigned int". ++*/ ++#define WINT_TYPE "unsigned int" ++ ++/* ++A C expression for a string describing the name of the data type that ++can represent any value of any standard or extended signed integer type. ++The typedef name intmax_t is defined using the contents of the ++string. See SIZE_TYPE above for more information. ++ ++If you don't define this macro, the default is the first of ++"int", "long int", or "long long int" that has as ++much precision as long long int. ++*/ ++#define INTMAX_TYPE "long long int" ++ ++/* ++A C expression for a string describing the name of the data type that ++can represent any value of any standard or extended unsigned integer ++type. The typedef name uintmax_t is defined using the contents ++of the string. See SIZE_TYPE above for more information. ++ ++If you don't define this macro, the default is the first of ++"unsigned int", "long unsigned int", or "long long unsigned int" ++that has as much precision as long long unsigned int. ++*/ ++#define UINTMAX_TYPE "long long unsigned int" ++ ++ ++/****************************************************************************** ++ * Register Usage ++ *****************************************************************************/ ++ ++/* Convert from gcc internal register number to register number ++ used in assembly code */ ++#define ASM_REGNUM(reg) (LAST_REGNUM - (reg)) ++#define ASM_FP_REGNUM(reg) (LAST_FP_REGNUM - (reg)) ++ ++/* Convert between register number used in assembly to gcc ++ internal register number */ ++#define INTERNAL_REGNUM(reg) (LAST_REGNUM - (reg)) ++#define INTERNAL_FP_REGNUM(reg) (LAST_FP_REGNUM - (reg)) ++ ++/** Basic Characteristics of Registers **/ ++ ++/* ++Number of hardware registers known to the compiler. They receive ++numbers 0 through FIRST_PSEUDO_REGISTER-1; thus, the first ++pseudo register's number really is assigned the number ++FIRST_PSEUDO_REGISTER. ++*/ ++#define FIRST_PSEUDO_REGISTER (LAST_FP_REGNUM + 1) ++ ++#define FIRST_REGNUM 0 ++#define LAST_REGNUM 15 ++#define NUM_FP_REGS 16 ++#define FIRST_FP_REGNUM 16 ++#define LAST_FP_REGNUM (16+NUM_FP_REGS-1) ++ ++/* ++An initializer that says which registers are used for fixed purposes ++all throughout the compiled code and are therefore not available for ++general allocation. These would include the stack pointer, the frame ++pointer (except on machines where that can be used as a general ++register when no frame pointer is needed), the program counter on ++machines where that is considered one of the addressable registers, ++and any other numbered register with a standard use. ++ ++This information is expressed as a sequence of numbers, separated by ++commas and surrounded by braces. The nth number is 1 if ++register n is fixed, 0 otherwise. ++ ++The table initialized from this macro, and the table initialized by ++the following one, may be overridden at run time either automatically, ++by the actions of the macro CONDITIONAL_REGISTER_USAGE, or by ++the user with the command options -ffixed-[reg], ++-fcall-used-[reg] and -fcall-saved-[reg]. ++*/ ++ ++/* The internal gcc register numbers are reversed ++ compared to the real register numbers since ++ gcc expects data types stored over multiple ++ registers in the register file to be big endian ++ if the memory layout is big endian. But this ++ is not the case for avr32 so we fake a big ++ endian register file. */ ++ ++#define FIXED_REGISTERS { \ ++ 1, /* Program Counter */ \ ++ 0, /* Link Register */ \ ++ 1, /* Stack Pointer */ \ ++ 0, /* r12 */ \ ++ 0, /* r11 */ \ ++ 0, /* r10 */ \ ++ 0, /* r9 */ \ ++ 0, /* r8 */ \ ++ 0, /* r7 */ \ ++ 0, /* r6 */ \ ++ 0, /* r5 */ \ ++ 0, /* r4 */ \ ++ 0, /* r3 */ \ ++ 0, /* r2 */ \ ++ 0, /* r1 */ \ ++ 0, /* r0 */ \ ++ 0, /* f15 */ \ ++ 0, /* f14 */ \ ++ 0, /* f13 */ \ ++ 0, /* f12 */ \ ++ 0, /* f11 */ \ ++ 0, /* f10 */ \ ++ 0, /* f9 */ \ ++ 0, /* f8 */ \ ++ 0, /* f7 */ \ ++ 0, /* f6 */ \ ++ 0, /* f5 */ \ ++ 0, /* f4 */ \ ++ 0, /* f3 */ \ ++ 0, /* f2*/ \ ++ 0, /* f1 */ \ ++ 0 /* f0 */ \ ++} ++ ++/* ++Like FIXED_REGISTERS but has 1 for each register that is ++clobbered (in general) by function calls as well as for fixed ++registers. This macro therefore identifies the registers that are not ++available for general allocation of values that must live across ++function calls. ++ ++If a register has 0 in CALL_USED_REGISTERS, the compiler ++automatically saves it on function entry and restores it on function ++exit, if the register is used within the function. ++*/ ++#define CALL_USED_REGISTERS { \ ++ 1, /* Program Counter */ \ ++ 0, /* Link Register */ \ ++ 1, /* Stack Pointer */ \ ++ 1, /* r12 */ \ ++ 1, /* r11 */ \ ++ 1, /* r10 */ \ ++ 1, /* r9 */ \ ++ 1, /* r8 */ \ ++ 0, /* r7 */ \ ++ 0, /* r6 */ \ ++ 0, /* r5 */ \ ++ 0, /* r4 */ \ ++ 0, /* r3 */ \ ++ 0, /* r2 */ \ ++ 0, /* r1 */ \ ++ 0, /* r0 */ \ ++ 1, /* f15 */ \ ++ 1, /* f14 */ \ ++ 1, /* f13 */ \ ++ 1, /* f12 */ \ ++ 1, /* f11 */ \ ++ 1, /* f10 */ \ ++ 1, /* f9 */ \ ++ 1, /* f8 */ \ ++ 0, /* f7 */ \ ++ 0, /* f6 */ \ ++ 0, /* f5 */ \ ++ 0, /* f4 */ \ ++ 0, /* f3 */ \ ++ 0, /* f2*/ \ ++ 0, /* f1*/ \ ++ 0, /* f0 */ \ ++} ++ ++/* Interrupt functions can only use registers that have already been ++ saved by the prologue, even if they would normally be ++ call-clobbered. */ ++#define HARD_REGNO_RENAME_OK(SRC, DST) \ ++ (! IS_INTERRUPT (cfun->machine->func_type) || \ ++ regs_ever_live[DST]) ++ ++ ++/* ++Zero or more C statements that may conditionally modify five variables ++fixed_regs, call_used_regs, global_regs, ++reg_names, and reg_class_contents, to take into account ++any dependence of these register sets on target flags. The first three ++of these are of type char [] (interpreted as Boolean vectors). ++global_regs is a const char *[], and ++reg_class_contents is a HARD_REG_SET. Before the macro is ++called, fixed_regs, call_used_regs, ++reg_class_contents, and reg_names have been initialized ++from FIXED_REGISTERS, CALL_USED_REGISTERS, ++REG_CLASS_CONTENTS, and REGISTER_NAMES, respectively. ++global_regs has been cleared, and any -ffixed-[reg], ++-fcall-used-[reg] and -fcall-saved-[reg] ++command options have been applied. ++ ++You need not define this macro if it has no work to do. ++ ++If the usage of an entire class of registers depends on the target ++flags, you may indicate this to GCC by using this macro to modify ++fixed_regs and call_used_regs to 1 for each of the ++registers in the classes which should not be used by GCC. Also define ++the macro REG_CLASS_FROM_LETTER to return NO_REGS if it ++is called with a letter for a class that shouldn't be used. ++ ++ (However, if this class is not included in GENERAL_REGS and all ++of the insn patterns whose constraints permit this class are ++controlled by target switches, then GCC will automatically avoid using ++these registers when the target switches are opposed to them.) ++*/ ++#define CONDITIONAL_REGISTER_USAGE \ ++ do \ ++ { \ ++ int regno; \ ++ \ ++ if (TARGET_SOFT_FLOAT) \ ++ { \ ++ for (regno = FIRST_FP_REGNUM; \ ++ regno <= LAST_FP_REGNUM; ++regno) \ ++ fixed_regs[regno] = call_used_regs[regno] = 1; \ ++ } \ ++ if (flag_pic) \ ++ { \ ++ fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ ++ call_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1; \ ++ } \ ++ } \ ++ while (0) ++ ++ ++/* ++If the program counter has a register number, define this as that ++register number. Otherwise, do not define it. ++*/ ++ ++#define LAST_AVR32_REGNUM 16 ++ ++ ++/** Order of Allocation of Registers **/ ++ ++/* ++If defined, an initializer for a vector of integers, containing the ++numbers of hard registers in the order in which GCC should prefer ++to use them (from most preferred to least). ++ ++If this macro is not defined, registers are used lowest numbered first ++(all else being equal). ++ ++One use of this macro is on machines where the highest numbered ++registers must always be saved and the save-multiple-registers ++instruction supports only sequences of consecutive registers. On such ++machines, define REG_ALLOC_ORDER to be an initializer that lists ++the highest numbered allocable register first. ++*/ ++#define REG_ALLOC_ORDER \ ++{ \ ++ INTERNAL_REGNUM(8), \ ++ INTERNAL_REGNUM(9), \ ++ INTERNAL_REGNUM(10), \ ++ INTERNAL_REGNUM(11), \ ++ INTERNAL_REGNUM(12), \ ++ LR_REGNUM, \ ++ INTERNAL_REGNUM(7), \ ++ INTERNAL_REGNUM(6), \ ++ INTERNAL_REGNUM(5), \ ++ INTERNAL_REGNUM(4), \ ++ INTERNAL_REGNUM(3), \ ++ INTERNAL_REGNUM(2), \ ++ INTERNAL_REGNUM(1), \ ++ INTERNAL_REGNUM(0), \ ++ INTERNAL_FP_REGNUM(15), \ ++ INTERNAL_FP_REGNUM(14), \ ++ INTERNAL_FP_REGNUM(13), \ ++ INTERNAL_FP_REGNUM(12), \ ++ INTERNAL_FP_REGNUM(11), \ ++ INTERNAL_FP_REGNUM(10), \ ++ INTERNAL_FP_REGNUM(9), \ ++ INTERNAL_FP_REGNUM(8), \ ++ INTERNAL_FP_REGNUM(7), \ ++ INTERNAL_FP_REGNUM(6), \ ++ INTERNAL_FP_REGNUM(5), \ ++ INTERNAL_FP_REGNUM(4), \ ++ INTERNAL_FP_REGNUM(3), \ ++ INTERNAL_FP_REGNUM(2), \ ++ INTERNAL_FP_REGNUM(1), \ ++ INTERNAL_FP_REGNUM(0), \ ++ SP_REGNUM, \ ++ PC_REGNUM \ ++} ++ ++ ++/** How Values Fit in Registers **/ ++ ++/* ++A C expression for the number of consecutive hard registers, starting ++at register number REGNO, required to hold a value of mode ++MODE. ++ ++On a machine where all registers are exactly one word, a suitable ++definition of this macro is ++ ++#define HARD_REGNO_NREGS(REGNO, MODE) \ ++ ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) \ ++ / UNITS_PER_WORD) ++*/ ++#define HARD_REGNO_NREGS(REGNO, MODE) \ ++ ((unsigned int)((GET_MODE_SIZE(MODE) + UNITS_PER_WORD -1 ) / UNITS_PER_WORD)) ++ ++/* ++A C expression that is nonzero if it is permissible to store a value ++of mode MODE in hard register number REGNO (or in several ++registers starting with that one). For a machine where all registers ++are equivalent, a suitable definition is ++ ++ #define HARD_REGNO_MODE_OK(REGNO, MODE) 1 ++ ++You need not include code to check for the numbers of fixed registers, ++because the allocation mechanism considers them to be always occupied. ++ ++On some machines, double-precision values must be kept in even/odd ++register pairs. You can implement that by defining this macro to reject ++odd register numbers for such modes. ++ ++The minimum requirement for a mode to be OK in a register is that the ++mov[mode] instruction pattern support moves between the ++register and other hard register in the same class and that moving a ++value into the register and back out not alter it. ++ ++Since the same instruction used to move word_mode will work for ++all narrower integer modes, it is not necessary on any machine for ++HARD_REGNO_MODE_OK to distinguish between these modes, provided ++you define patterns movhi, etc., to take advantage of this. This ++is useful because of the interaction between HARD_REGNO_MODE_OK ++and MODES_TIEABLE_P; it is very desirable for all integer modes ++to be tieable. ++ ++Many machines have special registers for floating point arithmetic. ++Often people assume that floating point machine modes are allowed only ++in floating point registers. This is not true. Any registers that ++can hold integers can safely hold a floating point machine ++mode, whether or not floating arithmetic can be done on it in those ++registers. Integer move instructions can be used to move the values. ++ ++On some machines, though, the converse is true: fixed-point machine ++modes may not go in floating registers. This is true if the floating ++registers normalize any value stored in them, because storing a ++non-floating value there would garble it. In this case, ++HARD_REGNO_MODE_OK should reject fixed-point machine modes in ++floating registers. But if the floating registers do not automatically ++normalize, if you can store any bit pattern in one and retrieve it ++unchanged without a trap, then any machine mode may go in a floating ++register, so you can define this macro to say so. ++ ++The primary significance of special floating registers is rather that ++they are the registers acceptable in floating point arithmetic ++instructions. However, this is of no concern to ++HARD_REGNO_MODE_OK. You handle it by writing the proper ++constraints for those instructions. ++ ++On some machines, the floating registers are especially slow to access, ++so that it is better to store a value in a stack frame than in such a ++register if floating point arithmetic is not being done. As long as the ++floating registers are not in class GENERAL_REGS, they will not ++be used unless some pattern's constraint asks for one. ++*/ ++#define HARD_REGNO_MODE_OK(REGNO, MODE) avr32_hard_regno_mode_ok(REGNO, MODE) ++ ++/* ++A C expression that is nonzero if a value of mode ++MODE1 is accessible in mode MODE2 without copying. ++ ++If HARD_REGNO_MODE_OK(R, MODE1) and ++HARD_REGNO_MODE_OK(R, MODE2) are always the same for ++any R, then MODES_TIEABLE_P(MODE1, MODE2) ++should be nonzero. If they differ for any R, you should define ++this macro to return zero unless some other mechanism ensures the ++accessibility of the value in a narrower mode. ++ ++You should define this macro to return nonzero in as many cases as ++possible since doing so will allow GCC to perform better register ++allocation. ++*/ ++#define MODES_TIEABLE_P(MODE1, MODE2) \ ++ (GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2)) ++ ++ ++ ++/****************************************************************************** ++ * Register Classes ++ *****************************************************************************/ ++ ++/* ++An enumeral type that must be defined with all the register class names ++as enumeral values. NO_REGS must be first. ALL_REGS ++must be the last register class, followed by one more enumeral value, ++LIM_REG_CLASSES, which is not a register class but rather ++tells how many classes there are. ++ ++Each register class has a number, which is the value of casting ++the class name to type int. The number serves as an index ++in many of the tables described below. ++*/ ++enum reg_class ++{ ++ NO_REGS, ++ GENERAL_REGS, ++ FP_REGS, ++ ALL_REGS, ++ LIM_REG_CLASSES ++}; ++ ++/* ++The number of distinct register classes, defined as follows: ++ #define N_REG_CLASSES (int) LIM_REG_CLASSES ++*/ ++#define N_REG_CLASSES (int)LIM_REG_CLASSES ++ ++/* ++An initializer containing the names of the register classes as C string ++constants. These names are used in writing some of the debugging dumps. ++*/ ++#define REG_CLASS_NAMES \ ++{ \ ++ "NO_REGS", \ ++ "GENERAL_REGS", \ ++ "FLOATING_POINT_REGS", \ ++ "ALL_REGS" \ ++} ++ ++/* ++An initializer containing the contents of the register classes, as integers ++which are bit masks. The nth integer specifies the contents of class ++n. The way the integer mask is interpreted is that ++register r is in the class if mask & (1 << r) is 1. ++ ++When the machine has more than 32 registers, an integer does not suffice. ++Then the integers are replaced by sub-initializers, braced groupings containing ++several integers. Each sub-initializer must be suitable as an initializer ++for the type HARD_REG_SET which is defined in hard-reg-set.h. ++In this situation, the first integer in each sub-initializer corresponds to ++registers 0 through 31, the second integer to registers 32 through 63, and ++so on. ++*/ ++#define REG_CLASS_CONTENTS { \ ++ {0x00000000}, /* NO_REGS */ \ ++ {0x0000FFFF}, /* GENERAL_REGS */ \ ++ {0xFFFF0000}, /* FP_REGS */ \ ++ {0x7FFFFFFF}, /* ALL_REGS */ \ ++} ++ ++ ++/* ++A C expression whose value is a register class containing hard register ++REGNO. In general there is more than one such class; choose a class ++which is minimal, meaning that no smaller class also contains the ++register. ++*/ ++#define REGNO_REG_CLASS(REGNO) ((REGNO < 16) ? GENERAL_REGS : FP_REGS) ++ ++/* ++A macro whose definition is the name of the class to which a valid ++base register must belong. A base register is one used in an address ++which is the register value plus a displacement. ++*/ ++#define BASE_REG_CLASS GENERAL_REGS ++ ++/* ++This is a variation of the BASE_REG_CLASS macro which allows ++the selection of a base register in a mode depenedent manner. If ++mode is VOIDmode then it should return the same value as ++BASE_REG_CLASS. ++*/ ++#define MODE_BASE_REG_CLASS(MODE) BASE_REG_CLASS ++ ++/* ++A macro whose definition is the name of the class to which a valid ++index register must belong. An index register is one used in an ++address where its value is either multiplied by a scale factor or ++added to another register (as well as added to a displacement). ++*/ ++#define INDEX_REG_CLASS BASE_REG_CLASS ++ ++/* ++A C expression which defines the machine-dependent operand constraint ++letters for register classes. If CHAR is such a letter, the ++value should be the register class corresponding to it. Otherwise, ++the value should be NO_REGS. The register letter r, ++corresponding to class GENERAL_REGS, will not be passed ++to this macro; you do not need to handle it. ++*/ ++#define REG_CLASS_FROM_LETTER(CHAR) ((CHAR) == 'f' ? FP_REGS : NO_REGS) ++ ++ ++/* These assume that REGNO is a hard or pseudo reg number. ++ They give nonzero only if REGNO is a hard reg of the suitable class ++ or a pseudo reg currently allocated to a suitable hard reg. ++ Since they use reg_renumber, they are safe only once reg_renumber ++ has been allocated, which happens in local-alloc.c. */ ++#define TEST_REGNO(R, TEST, VALUE) \ ++ ((R TEST VALUE) || ((unsigned) reg_renumber[R] TEST VALUE)) ++ ++/* ++A C expression which is nonzero if register number num is suitable for use as a base ++register in operand addresses. It may be either a suitable hard register or a pseudo ++register that has been allocated such a hard register. ++*/ ++#define REGNO_OK_FOR_BASE_P(NUM) TEST_REGNO(NUM, <=, LAST_REGNUM) ++ ++/* ++A C expression which is nonzero if register number NUM is ++suitable for use as an index register in operand addresses. It may be ++either a suitable hard register or a pseudo register that has been ++allocated such a hard register. ++ ++The difference between an index register and a base register is that ++the index register may be scaled. If an address involves the sum of ++two registers, neither one of them scaled, then either one may be ++labeled the ``base'' and the other the ``index''; but whichever ++labeling is used must fit the machine's constraints of which registers ++may serve in each capacity. The compiler will try both labelings, ++looking for one that is valid, and will reload one or both registers ++only if neither labeling works. ++*/ ++#define REGNO_OK_FOR_INDEX_P(NUM) TEST_REGNO(NUM, <=, LAST_REGNUM) ++ ++/* ++A C expression that places additional restrictions on the register class ++to use when it is necessary to copy value X into a register in class ++CLASS. The value is a register class; perhaps CLASS, or perhaps ++another, smaller class. On many machines, the following definition is ++safe: #define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS ++ ++Sometimes returning a more restrictive class makes better code. For ++example, on the 68000, when X is an integer constant that is in range ++for a 'moveq' instruction, the value of this macro is always ++DATA_REGS as long as CLASS includes the data registers. ++Requiring a data register guarantees that a 'moveq' will be used. ++ ++If X is a const_double, by returning NO_REGS ++you can force X into a memory constant. This is useful on ++certain machines where immediate floating values cannot be loaded into ++certain kinds of registers. ++*/ ++#define PREFERRED_RELOAD_CLASS(X, CLASS) CLASS ++ ++ ++ ++/* ++A C expression for the maximum number of consecutive registers ++of class CLASS needed to hold a value of mode MODE. ++ ++This is closely related to the macro HARD_REGNO_NREGS. In fact, ++the value of the macro CLASS_MAX_NREGS(CLASS, MODE) ++should be the maximum value of HARD_REGNO_NREGS(REGNO, MODE) ++for all REGNO values in the class CLASS. ++ ++This macro helps control the handling of multiple-word values ++in the reload pass. ++*/ ++#define CLASS_MAX_NREGS(CLASS, MODE) /* ToDo:fixme */ \ ++ (unsigned int)((GET_MODE_SIZE(MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) ++ ++ ++/* ++ Using CONST_OK_FOR_CONSTRAINT_P instead of CONS_OK_FOR_LETTER_P ++ in order to support constraints with more than one letter. ++ Only two letters are then used for constant constraints, ++ the letter 'K' and the letter 'I'. The constraint starting with ++ these letters must consist of four characters. The character following ++ 'K' or 'I' must be either 'u' (unsigned) or 's' (signed) to specify ++ if the constant is zero or sign extended. The last two characters specify ++ the length in bits of the constant. The base constraint letter 'I' means ++ that this is an negated constant, meaning that actually -VAL should be ++ checked to lie withing the valid range instead of VAL which is used when ++ 'K' is the base constraint letter. ++ ++*/ ++ ++#define CONSTRAINT_LEN(C, STR) \ ++ ( ((C) == 'K' || (C) == 'I') ? 4 : \ ++ ((C) == 'R') ? 5 : \ ++ ((C) == 'N' || (C) == 'O' || \ ++ (C) == 'P' || (C) == 'L' || (C) == 'J') ? -1 : \ ++ DEFAULT_CONSTRAINT_LEN((C), (STR)) ) ++ ++#define CONST_OK_FOR_CONSTRAINT_P(VALUE, C, STR) \ ++ avr32_const_ok_for_constraint_p(VALUE, C, STR) ++ ++/* ++A C expression that defines the machine-dependent operand constraint ++letters that specify particular ranges of const_double values ('G' or 'H'). ++ ++If C is one of those letters, the expression should check that ++VALUE, an RTX of code const_double, is in the appropriate ++range and return 1 if so, 0 otherwise. If C is not one of those ++letters, the value should be 0 regardless of VALUE. ++ ++const_double is used for all floating-point constants and for ++DImode fixed-point constants. A given letter can accept either ++or both kinds of values. It can use GET_MODE to distinguish ++between these kinds. ++*/ ++#define CONST_DOUBLE_OK_FOR_LETTER_P(OP, C) \ ++ ((C) == 'G' ? avr32_const_double_immediate(OP) : 0) ++ ++/* ++A C expression that defines the optional machine-dependent constraint ++letters that can be used to segregate specific types of operands, usually ++memory references, for the target machine. Any letter that is not ++elsewhere defined and not matched by REG_CLASS_FROM_LETTER ++may be used. Normally this macro will not be defined. ++ ++If it is required for a particular target machine, it should return 1 ++if VALUE corresponds to the operand type represented by the ++constraint letter C. If C is not defined as an extra ++constraint, the value returned should be 0 regardless of VALUE. ++ ++For example, on the ROMP, load instructions cannot have their output ++in r0 if the memory reference contains a symbolic address. Constraint ++letter 'Q' is defined as representing a memory address that does ++not contain a symbolic address. An alternative is specified with ++a 'Q' constraint on the input and 'r' on the output. The next ++alternative specifies 'm' on the input and a register class that ++does not include r0 on the output. ++*/ ++#define EXTRA_CONSTRAINT_STR(OP, C, STR) \ ++ ((C) == 'W' ? avr32_address_operand(OP, GET_MODE(OP)) : \ ++ (C) == 'R' ? (avr32_indirect_register_operand(OP, GET_MODE(OP)) || \ ++ (avr32_imm_disp_memory_operand(OP, GET_MODE(OP)) \ ++ && avr32_const_ok_for_constraint_p( \ ++ INTVAL(XEXP(XEXP(OP, 0), 1)), \ ++ (STR)[1], &(STR)[1]))) : \ ++ (C) == 'S' ? avr32_indexed_memory_operand(OP, GET_MODE(OP)) : \ ++ (C) == 'T' ? avr32_const_pool_ref_operand(OP, GET_MODE(OP)) : \ ++ (C) == 'U' ? SYMBOL_REF_RCALL_FUNCTION_P(OP) : \ ++ (C) == 'Z' ? avr32_cop_memory_operand(OP, GET_MODE(OP)) : \ ++ 0) ++ ++ ++#define EXTRA_MEMORY_CONSTRAINT(C, STR) ( ((C) == 'R') || \ ++ ((C) == 'S') || \ ++ ((C) == 'Z') ) ++ ++ ++/* Returns nonzero if op is a function SYMBOL_REF which ++ can be called using an rcall instruction */ ++#define SYMBOL_REF_RCALL_FUNCTION_P(op) \ ++ ( GET_CODE(op) == SYMBOL_REF \ ++ && SYMBOL_REF_FUNCTION_P(op) \ ++ && SYMBOL_REF_LOCAL_P(op) \ ++ && !SYMBOL_REF_EXTERNAL_P(op) \ ++ && !TARGET_HAS_ASM_ADDR_PSEUDOS ) ++ ++/****************************************************************************** ++ * Stack Layout and Calling Conventions ++ *****************************************************************************/ ++ ++/** Basic Stack Layout **/ ++ ++/* ++Define this macro if pushing a word onto the stack moves the stack ++pointer to a smaller address. ++ ++When we say, ``define this macro if ...,'' it means that the ++compiler checks this macro only with #ifdef so the precise ++definition used does not matter. ++*/ ++/* pushm decrece SP: *(--SP) <-- Rx */ ++#define STACK_GROWS_DOWNWARD ++ ++/* ++This macro defines the operation used when something is pushed ++on the stack. In RTL, a push operation will be ++(set (mem (STACK_PUSH_CODE (reg sp))) ...) ++ ++The choices are PRE_DEC, POST_DEC, PRE_INC, ++and POST_INC. Which of these is correct depends on ++the stack direction and on whether the stack pointer points ++to the last item on the stack or whether it points to the ++space for the next item on the stack. ++ ++The default is PRE_DEC when STACK_GROWS_DOWNWARD is ++defined, which is almost always right, and PRE_INC otherwise, ++which is often wrong. ++*/ ++/* pushm: *(--SP) <-- Rx */ ++#define STACK_PUSH_CODE PRE_DEC ++ ++/* ++Define this macro if the addresses of local variable slots are at negative ++offsets from the frame pointer. ++*/ ++#define FRAME_GROWS_DOWNWARD ++ ++ ++/* ++Offset from the frame pointer to the first local variable slot to be allocated. ++ ++If FRAME_GROWS_DOWNWARD, find the next slot's offset by ++subtracting the first slot's length from STARTING_FRAME_OFFSET. ++Otherwise, it is found by adding the length of the first slot to the ++value STARTING_FRAME_OFFSET. ++ (i'm not sure if the above is still correct.. had to change it to get ++ rid of an overfull. --mew 2feb93 ) ++*/ ++#define STARTING_FRAME_OFFSET 0 ++ ++/* ++Offset from the stack pointer register to the first location at which ++outgoing arguments are placed. If not specified, the default value of ++zero is used. This is the proper value for most machines. ++ ++If ARGS_GROW_DOWNWARD, this is the offset to the location above ++the first location at which outgoing arguments are placed. ++*/ ++#define STACK_POINTER_OFFSET 0 ++ ++/* ++Offset from the argument pointer register to the first argument's ++address. On some machines it may depend on the data type of the ++function. ++ ++If ARGS_GROW_DOWNWARD, this is the offset to the location above ++the first argument's address. ++*/ ++#define FIRST_PARM_OFFSET(FUNDECL) 0 ++ ++ ++/* ++A C expression whose value is RTL representing the address in a stack ++frame where the pointer to the caller's frame is stored. Assume that ++FRAMEADDR is an RTL expression for the address of the stack frame ++itself. ++ ++If you don't define this macro, the default is to return the value ++of FRAMEADDR - that is, the stack frame address is also the ++address of the stack word that points to the previous frame. ++*/ ++#define DYNAMIC_CHAIN_ADDRESS(FRAMEADDR) plus_constant ((FRAMEADDR), 4) ++ ++ ++/* ++A C expression whose value is RTL representing the value of the return ++address for the frame COUNT steps up from the current frame, after ++the prologue. FRAMEADDR is the frame pointer of the COUNT ++frame, or the frame pointer of the COUNT - 1 frame if ++RETURN_ADDR_IN_PREVIOUS_FRAME is defined. ++ ++The value of the expression must always be the correct address when ++COUNT is zero, but may be NULL_RTX if there is not way to ++determine the return address of other frames. ++*/ ++#define RETURN_ADDR_RTX(COUNT, FRAMEADDR) avr32_return_addr(COUNT, FRAMEADDR) ++ ++ ++/* ++A C expression whose value is RTL representing the location of the ++incoming return address at the beginning of any function, before the ++prologue. This RTL is either a REG, indicating that the return ++value is saved in 'REG', or a MEM representing a location in ++the stack. ++ ++You only need to define this macro if you want to support call frame ++debugging information like that provided by DWARF 2. ++ ++If this RTL is a REG, you should also define ++DWARF_FRAME_RETURN_COLUMN to DWARF_FRAME_REGNUM (REGNO). ++*/ ++#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, LR_REGNUM) ++ ++ ++ ++/* ++A C expression whose value is an integer giving the offset, in bytes, ++from the value of the stack pointer register to the top of the stack ++frame at the beginning of any function, before the prologue. The top of ++the frame is defined to be the value of the stack pointer in the ++previous frame, just before the call instruction. ++ ++You only need to define this macro if you want to support call frame ++debugging information like that provided by DWARF 2. ++*/ ++#define INCOMING_FRAME_SP_OFFSET 0 ++ ++ ++/** Exception Handling Support **/ ++ ++#define DWARF2_UNWIND_INFO 1 ++ ++/* ++A C expression whose value is the Nth register number used for ++data by exception handlers, or INVALID_REGNUM if fewer than ++N registers are usable. ++ ++The exception handling library routines communicate with the exception ++handlers via a set of agreed upon registers. Ideally these registers ++should be call-clobbered; it is possible to use call-saved registers, ++but may negatively impact code size. The target must support at least ++2 data registers, but should define 4 if there are enough free registers. ++ ++You must define this macro if you want to support call frame exception ++handling like that provided by DWARF 2. ++*/ ++/* ++ Use r8-r11 ++*/ ++#define EH_RETURN_DATA_REGNO(N) \ ++ ((N) < 4 ? INTERNAL_REGNUM((N) + 8U) : INVALID_REGNUM) ++ ++/* ++A C expression whose value is RTL representing a location in which ++to store a stack adjustment to be applied before function return. ++This is used to unwind the stack to an exception handler's call frame. ++It will be assigned zero on code paths that return normally. ++ ++Typically this is a call-clobbered hard register that is otherwise ++untouched by the epilogue, but could also be a stack slot. ++ ++You must define this macro if you want to support call frame exception ++handling like that provided by DWARF 2. ++*/ ++/* ++ I don't think functions that may throw exceptions can ever be leaf ++ functions, so we may safely use LR for this. ++*/ ++#define EH_RETURN_STACKADJ_REGNO LR_REGNUM ++#define EH_RETURN_STACKADJ_RTX gen_rtx_REG(SImode, EH_RETURN_STACKADJ_REGNO) ++ ++/* ++A C expression whose value is RTL representing a location in which ++to store the address of an exception handler to which we should ++return. It will not be assigned on code paths that return normally. ++ ++Typically this is the location in the call frame at which the normal ++return address is stored. For targets that return by popping an ++address off the stack, this might be a memory address just below ++the target call frame rather than inside the current call ++frame. EH_RETURN_STACKADJ_RTX will have already been assigned, ++so it may be used to calculate the location of the target call frame. ++ ++Some targets have more complex requirements than storing to an ++address calculable during initial code generation. In that case ++the eh_return instruction pattern should be used instead. ++ ++If you want to support call frame exception handling, you must ++define either this macro or the eh_return instruction pattern. ++*/ ++/* ++ We define the eh_return instruction pattern, so this isn't needed. ++*/ ++/* #define EH_RETURN_HANDLER_RTX gen_rtx_REG(Pmode, RET_REGISTER) */ ++ ++/* ++ This macro chooses the encoding of pointers embedded in the ++ exception handling sections. If at all possible, this should be ++ defined such that the exception handling section will not require ++ dynamic relocations, and so may be read-only. ++ ++ code is 0 for data, 1 for code labels, 2 for function ++ pointers. global is true if the symbol may be affected by dynamic ++ relocations. The macro should return a combination of the DW_EH_PE_* ++ defines as found in dwarf2.h. ++ ++ If this macro is not defined, pointers will not be encoded but ++ represented directly. ++*/ ++#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ ++ ((flag_pic && (GLOBAL) ? DW_EH_PE_indirect : 0) \ ++ | (flag_pic ? DW_EH_PE_pcrel : DW_EH_PE_absptr) \ ++ | DW_EH_PE_sdata4) ++ ++/* ToDo: The rest of this subsection */ ++ ++/** Specifying How Stack Checking is Done **/ ++/* ToDo: All in this subsection */ ++ ++/** Registers That Address the Stack Frame **/ ++ ++/* ++The register number of the stack pointer register, which must also be a ++fixed register according to FIXED_REGISTERS. On most machines, ++the hardware determines which register this is. ++*/ ++/* Using r13 as stack pointer. */ ++#define STACK_POINTER_REGNUM INTERNAL_REGNUM(13) ++ ++/* ++The register number of the frame pointer register, which is used to ++access automatic variables in the stack frame. On some machines, the ++hardware determines which register this is. On other machines, you can ++choose any register you wish for this purpose. ++*/ ++/* Use r7 */ ++#define FRAME_POINTER_REGNUM INTERNAL_REGNUM(7) ++ ++ ++ ++/* ++The register number of the arg pointer register, which is used to access ++the function's argument list. On some machines, this is the same as the ++frame pointer register. On some machines, the hardware determines which ++register this is. On other machines, you can choose any register you ++wish for this purpose. If this is not the same register as the frame ++pointer register, then you must mark it as a fixed register according to ++FIXED_REGISTERS, or arrange to be able to eliminate it (see Section ++10.10.5 [Elimination], page 224). ++*/ ++/* Using r5 */ ++#define ARG_POINTER_REGNUM INTERNAL_REGNUM(4) ++ ++ ++/* ++Register numbers used for passing a function's static chain pointer. If ++register windows are used, the register number as seen by the called ++function is STATIC_CHAIN_INCOMING_REGNUM, while the register ++number as seen by the calling function is STATIC_CHAIN_REGNUM. If ++these registers are the same, STATIC_CHAIN_INCOMING_REGNUM need ++not be defined. ++ ++The static chain register need not be a fixed register. ++ ++If the static chain is passed in memory, these macros should not be ++defined; instead, the next two macros should be defined. ++*/ ++/* Using r0 */ ++#define STATIC_CHAIN_REGNUM INTERNAL_REGNUM(0) ++ ++ ++/** Eliminating Frame Pointer and Arg Pointer **/ ++ ++/* ++A C expression which is nonzero if a function must have and use a frame ++pointer. This expression is evaluated in the reload pass. If its value is ++nonzero the function will have a frame pointer. ++ ++The expression can in principle examine the current function and decide ++according to the facts, but on most machines the constant 0 or the ++constant 1 suffices. Use 0 when the machine allows code to be generated ++with no frame pointer, and doing so saves some time or space. Use 1 ++when there is no possible advantage to avoiding a frame pointer. ++ ++In certain cases, the compiler does not know how to produce valid code ++without a frame pointer. The compiler recognizes those cases and ++automatically gives the function a frame pointer regardless of what ++FRAME_POINTER_REQUIRED says. You don't need to worry about ++them. ++ ++In a function that does not require a frame pointer, the frame pointer ++register can be allocated for ordinary usage, unless you mark it as a ++fixed register. See FIXED_REGISTERS for more information. ++*/ ++/* We need the frame pointer when compiling for profiling */ ++#define FRAME_POINTER_REQUIRED (current_function_profile) ++ ++/* ++A C statement to store in the variable DEPTH_VAR the difference ++between the frame pointer and the stack pointer values immediately after ++the function prologue. The value would be computed from information ++such as the result of get_frame_size () and the tables of ++registers regs_ever_live and call_used_regs. ++ ++If ELIMINABLE_REGS is defined, this macro will be not be used and ++need not be defined. Otherwise, it must be defined even if ++FRAME_POINTER_REQUIRED is defined to always be true; in that ++case, you may set DEPTH_VAR to anything. ++*/ ++#define INITIAL_FRAME_POINTER_OFFSET(DEPTH_VAR) ((DEPTH_VAR) = get_frame_size()) ++ ++/* ++If defined, this macro specifies a table of register pairs used to ++eliminate unneeded registers that point into the stack frame. If it is not ++defined, the only elimination attempted by the compiler is to replace ++references to the frame pointer with references to the stack pointer. ++ ++The definition of this macro is a list of structure initializations, each ++of which specifies an original and replacement register. ++ ++On some machines, the position of the argument pointer is not known until ++the compilation is completed. In such a case, a separate hard register ++must be used for the argument pointer. This register can be eliminated by ++replacing it with either the frame pointer or the argument pointer, ++depending on whether or not the frame pointer has been eliminated. ++ ++In this case, you might specify: ++ #define ELIMINABLE_REGS \ ++ {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ ++ {ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \ ++ {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}} ++ ++Note that the elimination of the argument pointer with the stack pointer is ++specified first since that is the preferred elimination. ++*/ ++#define ELIMINABLE_REGS \ ++{ \ ++ { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM }, \ ++ { ARG_POINTER_REGNUM, STACK_POINTER_REGNUM }, \ ++ { ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM } \ ++} ++ ++/* ++A C expression that returns nonzero if the compiler is allowed to try ++to replace register number FROM with register number ++TO. This macro need only be defined if ELIMINABLE_REGS ++is defined, and will usually be the constant 1, since most of the cases ++preventing register elimination are things that the compiler already ++knows about. ++*/ ++#define CAN_ELIMINATE(FROM, TO) 1 ++ ++/* ++This macro is similar to INITIAL_FRAME_POINTER_OFFSET. It ++specifies the initial difference between the specified pair of ++registers. This macro must be defined if ELIMINABLE_REGS is ++defined. ++*/ ++#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ ++ ((OFFSET) = avr32_initial_elimination_offset(FROM, TO)) ++ ++/** Passing Function Arguments on the Stack **/ ++ ++ ++/* ++A C expression. If nonzero, push insns will be used to pass ++outgoing arguments. ++If the target machine does not have a push instruction, set it to zero. ++That directs GCC to use an alternate strategy: to ++allocate the entire argument block and then store the arguments into ++it. When PUSH_ARGS is nonzero, PUSH_ROUNDING must be defined too. ++*/ ++#define PUSH_ARGS 1 ++ ++ ++/* ++A C expression that is the number of bytes actually pushed onto the ++stack when an instruction attempts to push NPUSHED bytes. ++ ++On some machines, the definition ++ ++ #define PUSH_ROUNDING(BYTES) (BYTES) ++ ++will suffice. But on other machines, instructions that appear ++to push one byte actually push two bytes in an attempt to maintain ++alignment. Then the definition should be ++ ++ #define PUSH_ROUNDING(BYTES) (((BYTES) + 1) & ~1) ++*/ ++/* Push 4 bytes at the time. */ ++#define PUSH_ROUNDING(NPUSHED) (((NPUSHED) + 3) & ~3) ++ ++/* ++A C expression. If nonzero, the maximum amount of space required for ++outgoing arguments will be computed and placed into the variable ++current_function_outgoing_args_size. No space will be pushed ++onto the stack for each call; instead, the function prologue should ++increase the stack frame size by this amount. ++ ++Setting both PUSH_ARGS and ACCUMULATE_OUTGOING_ARGS is not proper. ++*/ ++#define ACCUMULATE_OUTGOING_ARGS 0 ++ ++ ++ ++ ++/* ++A C expression that should indicate the number of bytes of its own ++arguments that a function pops on returning, or 0 if the ++function pops no arguments and the caller must therefore pop them all ++after the function returns. ++ ++FUNDECL is a C variable whose value is a tree node that describes ++the function in question. Normally it is a node of type ++FUNCTION_DECL that describes the declaration of the function. ++From this you can obtain the DECL_ATTRIBUTES of the function. ++ ++FUNTYPE is a C variable whose value is a tree node that ++describes the function in question. Normally it is a node of type ++FUNCTION_TYPE that describes the data type of the function. ++From this it is possible to obtain the data types of the value and ++arguments (if known). ++ ++When a call to a library function is being considered, FUNDECL ++will contain an identifier node for the library function. Thus, if ++you need to distinguish among various library functions, you can do so ++by their names. Note that ``library function'' in this context means ++a function used to perform arithmetic, whose name is known specially ++in the compiler and was not mentioned in the C code being compiled. ++ ++STACK_SIZE is the number of bytes of arguments passed on the ++stack. If a variable number of bytes is passed, it is zero, and ++argument popping will always be the responsibility of the calling function. ++ ++On the VAX, all functions always pop their arguments, so the definition ++of this macro is STACK_SIZE. On the 68000, using the standard ++calling convention, no functions pop their arguments, so the value of ++the macro is always 0 in this case. But an alternative calling ++convention is available in which functions that take a fixed number of ++arguments pop them but other functions (such as printf) pop ++nothing (the caller pops all). When this convention is in use, ++FUNTYPE is examined to determine whether a function takes a fixed ++number of arguments. ++*/ ++#define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACK_SIZE) 0 ++ ++ ++/*Return true if this function can we use a single return instruction*/ ++#define USE_RETURN_INSN(ISCOND) avr32_use_return_insn(ISCOND) ++ ++/* ++A C expression that should indicate the number of bytes a call sequence ++pops off the stack. It is added to the value of RETURN_POPS_ARGS ++when compiling a function call. ++ ++CUM is the variable in which all arguments to the called function ++have been accumulated. ++ ++On certain architectures, such as the SH5, a call trampoline is used ++that pops certain registers off the stack, depending on the arguments ++that have been passed to the function. Since this is a property of the ++call site, not of the called function, RETURN_POPS_ARGS is not ++appropriate. ++*/ ++#define CALL_POPS_ARGS(CUM) 0 ++ ++/* Passing Arguments in Registers */ ++ ++/* ++A C expression that controls whether a function argument is passed ++in a register, and which register. ++ ++The arguments are CUM, which summarizes all the previous ++arguments; MODE, the machine mode of the argument; TYPE, ++the data type of the argument as a tree node or 0 if that is not known ++(which happens for C support library functions); and NAMED, ++which is 1 for an ordinary argument and 0 for nameless arguments that ++correspond to '...' in the called function's prototype. ++TYPE can be an incomplete type if a syntax error has previously ++occurred. ++ ++The value of the expression is usually either a reg RTX for the ++hard register in which to pass the argument, or zero to pass the ++argument on the stack. ++ ++For machines like the VAX and 68000, where normally all arguments are ++pushed, zero suffices as a definition. ++ ++The value of the expression can also be a parallel RTX. This is ++used when an argument is passed in multiple locations. The mode of the ++of the parallel should be the mode of the entire argument. The ++parallel holds any number of expr_list pairs; each one ++describes where part of the argument is passed. In each ++expr_list the first operand must be a reg RTX for the hard ++register in which to pass this part of the argument, and the mode of the ++register RTX indicates how large this part of the argument is. The ++second operand of the expr_list is a const_int which gives ++the offset in bytes into the entire argument of where this part starts. ++As a special exception the first expr_list in the parallel ++RTX may have a first operand of zero. This indicates that the entire ++argument is also stored on the stack. ++ ++The last time this macro is called, it is called with MODE == VOIDmode, ++and its result is passed to the call or call_value ++pattern as operands 2 and 3 respectively. ++ ++The usual way to make the ISO library 'stdarg.h' work on a machine ++where some arguments are usually passed in registers, is to cause ++nameless arguments to be passed on the stack instead. This is done ++by making FUNCTION_ARG return 0 whenever NAMED is 0. ++ ++You may use the macro MUST_PASS_IN_STACK (MODE, TYPE) ++in the definition of this macro to determine if this argument is of a ++type that must be passed in the stack. If REG_PARM_STACK_SPACE ++is not defined and FUNCTION_ARG returns nonzero for such an ++argument, the compiler will abort. If REG_PARM_STACK_SPACE is ++defined, the argument will be computed in the stack and then loaded into ++a register. */ ++ ++#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ ++ avr32_function_arg(&(CUM), MODE, TYPE, NAMED) ++ ++ ++ ++ ++/* ++A C type for declaring a variable that is used as the first argument of ++FUNCTION_ARG and other related values. For some target machines, ++the type int suffices and can hold the number of bytes of ++argument so far. ++ ++There is no need to record in CUMULATIVE_ARGS anything about the ++arguments that have been passed on the stack. The compiler has other ++variables to keep track of that. For target machines on which all ++arguments are passed on the stack, there is no need to store anything in ++CUMULATIVE_ARGS; however, the data structure must exist and ++should not be empty, so use int. ++*/ ++typedef struct avr32_args ++{ ++ /* Index representing the argument register the current function argument ++ will occupy */ ++ int index; ++ /* A mask with bits representing the argument registers: if a bit is set ++ then this register is used for an arguemnt */ ++ int used_index; ++ /* TRUE if this function has anonymous arguments */ ++ int uses_anonymous_args; ++ /* The size in bytes of the named arguments pushed on the stack */ ++ int stack_pushed_args_size; ++ /* Set to true if this function needs a Return Value Pointer */ ++ int use_rvp; ++ ++} CUMULATIVE_ARGS; ++ ++ ++#define FIRST_CUM_REG_INDEX 0 ++#define LAST_CUM_REG_INDEX 4 ++#define GET_REG_INDEX(CUM) ((CUM)->index) ++#define SET_REG_INDEX(CUM, INDEX) ((CUM)->index = (INDEX)); ++#define GET_USED_INDEX(CUM, INDEX) ((CUM)->used_index & (1 << (INDEX))) ++#define SET_USED_INDEX(CUM, INDEX) \ ++ do \ ++ { \ ++ if (INDEX >= 0) \ ++ (CUM)->used_index |= (1 << (INDEX)); \ ++ } \ ++ while (0) ++#define SET_INDEXES_UNUSED(CUM) ((CUM)->used_index = 0) ++ ++ ++/* ++ A C statement (sans semicolon) for initializing the variable cum for the ++ state at the beginning of the argument list. The variable has type ++ CUMULATIVE_ARGS. The value of FNTYPE is the tree node for the data type of ++ the function which will receive the args, or 0 if the args are to a compiler ++ support library function. For direct calls that are not libcalls, FNDECL ++ contain the declaration node of the function. FNDECL is also set when ++ INIT_CUMULATIVE_ARGS is used to find arguments for the function being ++ compiled. N_NAMED_ARGS is set to the number of named arguments, including a ++ structure return address if it is passed as a parameter, when making a call. ++ When processing incoming arguments, N_NAMED_ARGS is set to -1. ++ ++ When processing a call to a compiler support library function, LIBNAME ++ identifies which one. It is a symbol_ref rtx which contains the name of the ++ function, as a string. LIBNAME is 0 when an ordinary C function call is ++ being processed. Thus, each time this macro is called, either LIBNAME or ++ FNTYPE is nonzero, but never both of them at once. ++*/ ++#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \ ++ avr32_init_cumulative_args(&(CUM), FNTYPE, LIBNAME, FNDECL) ++ ++ ++/* ++A C statement (sans semicolon) to update the summarizer variable ++CUM to advance past an argument in the argument list. The ++values MODE, TYPE and NAMED describe that argument. ++Once this is done, the variable CUM is suitable for analyzing ++the following argument with FUNCTION_ARG, etc. ++ ++This macro need not do anything if the argument in question was passed ++on the stack. The compiler knows how to track the amount of stack space ++used for arguments without any special help. ++*/ ++#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ ++ avr32_function_arg_advance(&(CUM), MODE, TYPE, NAMED) ++ ++/* ++If defined, a C expression which determines whether, and in which direction, ++to pad out an argument with extra space. The value should be of type ++enum direction: either 'upward' to pad above the argument, ++'downward' to pad below, or 'none' to inhibit padding. ++ ++The amount of padding is always just enough to reach the next ++multiple of FUNCTION_ARG_BOUNDARY; this macro does not control ++it. ++ ++This macro has a default definition which is right for most systems. ++For little-endian machines, the default is to pad upward. For ++big-endian machines, the default is to pad downward for an argument of ++constant size shorter than an int, and upward otherwise. ++*/ ++#define FUNCTION_ARG_PADDING(MODE, TYPE) \ ++ avr32_function_arg_padding(MODE, TYPE) ++ ++/* ++ Specify padding for the last element of a block move between registers ++ and memory. First is nonzero if this is the only element. Defining ++ this macro allows better control of register function parameters on ++ big-endian machines, without using PARALLEL rtl. In particular, ++ MUST_PASS_IN_STACK need not test padding and mode of types in registers, ++ as there is no longer a "wrong" part of a register; For example, a three ++ byte aggregate may be passed in the high part of a register if so required. ++*/ ++#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \ ++ avr32_function_arg_padding(MODE, TYPE) ++ ++/* ++If defined, a C expression which determines whether the default ++implementation of va_arg will attempt to pad down before reading the ++next argument, if that argument is smaller than its aligned space as ++controlled by PARM_BOUNDARY. If this macro is not defined, all such ++arguments are padded down if BYTES_BIG_ENDIAN is true. ++*/ ++#define PAD_VARARGS_DOWN \ ++ (FUNCTION_ARG_PADDING (TYPE_MODE (type), type) == downward) ++ ++ ++/* ++A C expression that is nonzero if REGNO is the number of a hard ++register in which function arguments are sometimes passed. This does ++not include implicit arguments such as the static chain and ++the structure-value address. On many machines, no registers can be ++used for this purpose since all function arguments are pushed on the ++stack. ++*/ ++/* ++ Use r8 - r12 for function arguments. ++*/ ++#define FUNCTION_ARG_REGNO_P(REGNO) \ ++ (REGNO >= 3 && REGNO <= 7) ++ ++/* Number of registers used for passing function arguments */ ++#define NUM_ARG_REGS 5 ++ ++/* ++If defined, the order in which arguments are loaded into their ++respective argument registers is reversed so that the last ++argument is loaded first. This macro only affects arguments ++passed in registers. ++*/ ++/* #define LOAD_ARGS_REVERSED */ ++ ++/** How Scalar Function Values Are Returned **/ ++ ++/* AVR32 is using r12 as return register. */ ++#define RET_REGISTER (15 - 12) ++ ++/* ++Define this macro if -traditional should not cause functions ++declared to return float to convert the value to double. ++*/ ++/* #define TRADITIONAL_RETURN_FLOAT */ ++ ++/* ++A C expression to create an RTX representing the place where a ++function returns a value of data type VALTYPE. VALTYPE is ++a tree node representing a data type. Write TYPE_MODE(VALTYPE) ++to get the machine mode used to represent that type. ++On many machines, only the mode is relevant. (Actually, on most ++machines, scalar values are returned in the same place regardless of ++mode). ++ ++The value of the expression is usually a reg RTX for the hard ++register where the return value is stored. The value can also be a ++parallel RTX, if the return value is in multiple places. See ++FUNCTION_ARG for an explanation of the parallel form. ++ ++If PROMOTE_FUNCTION_RETURN is defined, you must apply the same ++promotion rules specified in PROMOTE_MODE if VALTYPE is a ++scalar type. ++ ++If the precise function being called is known, FUNC is a tree ++node (FUNCTION_DECL) for it; otherwise, FUNC is a null ++pointer. This makes it possible to use a different value-returning ++convention for specific functions when all their calls are ++known. ++ ++FUNCTION_VALUE is not used for return vales with aggregate data ++types, because these are returned in another way. See ++STRUCT_VALUE_REGNUM and related macros, below. ++*/ ++#define FUNCTION_VALUE(VALTYPE, FUNC) avr32_function_value(VALTYPE, FUNC) ++ ++ ++/* ++A C expression to create an RTX representing the place where a library ++function returns a value of mode MODE. If the precise function ++being called is known, FUNC is a tree node ++(FUNCTION_DECL) for it; otherwise, func is a null ++pointer. This makes it possible to use a different value-returning ++convention for specific functions when all their calls are ++known. ++ ++Note that "library function" in this context means a compiler ++support routine, used to perform arithmetic, whose name is known ++specially by the compiler and was not mentioned in the C code being ++compiled. ++ ++The definition of LIBRARY_VALUE need not be concerned aggregate ++data types, because none of the library functions returns such types. ++*/ ++#define LIBCALL_VALUE(MODE) avr32_libcall_value(MODE) ++ ++/* ++A C expression that is nonzero if REGNO is the number of a hard ++register in which the values of called function may come back. ++ ++A register whose use for returning values is limited to serving as the ++second of a pair (for a value of type double, say) need not be ++recognized by this macro. So for most machines, this definition ++suffices: ++ #define FUNCTION_VALUE_REGNO_P(N) ((N) == 0) ++ ++If the machine has register windows, so that the caller and the called ++function use different registers for the return value, this macro ++should recognize only the caller's register numbers. ++*/ ++/* ++ When returning a value of mode DImode, r11:r10 is used, else r12 is used. ++*/ ++#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RET_REGISTER \ ++ || (REGNO) == INTERNAL_REGNUM(11)) ++ ++ ++/** How Large Values Are Returned **/ ++ ++ ++/* ++Define this macro to be 1 if all structure and union return values must be ++in memory. Since this results in slower code, this should be defined ++only if needed for compatibility with other compilers or with an ABI. ++If you define this macro to be 0, then the conventions used for structure ++and union return values are decided by the RETURN_IN_MEMORY macro. ++ ++If not defined, this defaults to the value 1. ++*/ ++#define DEFAULT_PCC_STRUCT_RETURN 0 ++ ++ ++ ++ ++/** Generating Code for Profiling **/ ++ ++/* ++A C statement or compound statement to output to FILE some ++assembler code to call the profiling subroutine mcount. ++ ++The details of how mcount expects to be called are determined by ++your operating system environment, not by GCC. To figure them out, ++compile a small program for profiling using the system's installed C ++compiler and look at the assembler code that results. ++ ++Older implementations of mcount expect the address of a counter ++variable to be loaded into some register. The name of this variable is ++'LP' followed by the number LABELNO, so you would generate ++the name using 'LP%d' in a fprintf. ++*/ ++/* ToDo: fixme */ ++#ifndef FUNCTION_PROFILER ++#define FUNCTION_PROFILER(FILE, LABELNO) \ ++ fprintf((FILE), "/* profiler %d */", (LABELNO)) ++#endif ++ ++ ++/***************************************************************************** ++ * Trampolines for Nested Functions * ++ *****************************************************************************/ ++ ++/* ++A C statement to output, on the stream FILE, assembler code for a ++block of data that contains the constant parts of a trampoline. This ++code should not include a label - the label is taken care of ++automatically. ++ ++If you do not define this macro, it means no template is needed ++for the target. Do not define this macro on systems where the block move ++code to copy the trampoline into place would be larger than the code ++to generate it on the spot. ++*/ ++/* ToDo: correct? */ ++#define TRAMPOLINE_TEMPLATE(FILE) avr32_trampoline_template(FILE); ++ ++ ++/* ++A C expression for the size in bytes of the trampoline, as an integer. ++*/ ++/* ToDo: fixme */ ++#define TRAMPOLINE_SIZE 0x0C ++ ++/* ++Alignment required for trampolines, in bits. ++ ++If you don't define this macro, the value of BIGGEST_ALIGNMENT ++is used for aligning trampolines. ++*/ ++#define TRAMPOLINE_ALIGNMENT 16 ++ ++/* ++A C statement to initialize the variable parts of a trampoline. ++ADDR is an RTX for the address of the trampoline; FNADDR is ++an RTX for the address of the nested function; STATIC_CHAIN is an ++RTX for the static chain value that should be passed to the function ++when it is called. ++*/ ++#define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, STATIC_CHAIN) \ ++ avr32_initialize_trampoline(ADDR, FNADDR, STATIC_CHAIN) ++ ++ ++/****************************************************************************** ++ * Implicit Calls to Library Routines ++ *****************************************************************************/ ++ ++/* Tail calling. */ ++ ++/* A C expression that evaluates to true if it is ok to perform a sibling ++ call to DECL. */ ++#define FUNCTION_OK_FOR_SIBCALL(DECL) 0 ++ ++#define OVERRIDE_OPTIONS avr32_override_options () ++ ++ ++ ++/****************************************************************************** ++ * Addressing Modes ++ *****************************************************************************/ ++ ++/* ++A C expression that is nonzero if the machine supports pre-increment, ++pre-decrement, post-increment, or post-decrement addressing respectively. ++*/ ++/* ++ AVR32 supports Rp++ and --Rp ++*/ ++#define HAVE_PRE_INCREMENT 0 ++#define HAVE_PRE_DECREMENT 1 ++#define HAVE_POST_INCREMENT 1 ++#define HAVE_POST_DECREMENT 0 ++ ++/* ++A C expression that is nonzero if the machine supports pre- or ++post-address side-effect generation involving constants other than ++the size of the memory operand. ++*/ ++#define HAVE_PRE_MODIFY_DISP 0 ++#define HAVE_POST_MODIFY_DISP 0 ++ ++/* ++A C expression that is nonzero if the machine supports pre- or ++post-address side-effect generation involving a register displacement. ++*/ ++#define HAVE_PRE_MODIFY_REG 0 ++#define HAVE_POST_MODIFY_REG 0 ++ ++/* ++A C expression that is 1 if the RTX X is a constant which ++is a valid address. On most machines, this can be defined as ++CONSTANT_P (X), but a few machines are more restrictive ++in which constant addresses are supported. ++ ++CONSTANT_P accepts integer-values expressions whose values are ++not explicitly known, such as symbol_ref, label_ref, and ++high expressions and const arithmetic expressions, in ++addition to const_int and const_double expressions. ++*/ ++#define CONSTANT_ADDRESS_P(X) CONSTANT_P(X) ++ ++/* ++A number, the maximum number of registers that can appear in a valid ++memory address. Note that it is up to you to specify a value equal to ++the maximum number that GO_IF_LEGITIMATE_ADDRESS would ever ++accept. ++*/ ++#define MAX_REGS_PER_ADDRESS 2 ++ ++/* ++A C compound statement with a conditional goto LABEL; ++executed if X (an RTX) is a legitimate memory address on the ++target machine for a memory operand of mode MODE. ++ ++It usually pays to define several simpler macros to serve as ++subroutines for this one. Otherwise it may be too complicated to ++understand. ++ ++This macro must exist in two variants: a strict variant and a ++non-strict one. The strict variant is used in the reload pass. It ++must be defined so that any pseudo-register that has not been ++allocated a hard register is considered a memory reference. In ++contexts where some kind of register is required, a pseudo-register ++with no hard register must be rejected. ++ ++The non-strict variant is used in other passes. It must be defined to ++accept all pseudo-registers in every context where some kind of ++register is required. ++ ++Compiler source files that want to use the strict variant of this ++macro define the macro REG_OK_STRICT. You should use an ++#ifdef REG_OK_STRICT conditional to define the strict variant ++in that case and the non-strict variant otherwise. ++ ++Subroutines to check for acceptable registers for various purposes (one ++for base registers, one for index registers, and so on) are typically ++among the subroutines used to define GO_IF_LEGITIMATE_ADDRESS. ++Then only these subroutine macros need have two variants; the higher ++levels of macros may be the same whether strict or not. ++ ++Normally, constant addresses which are the sum of a symbol_ref ++and an integer are stored inside a const RTX to mark them as ++constant. Therefore, there is no need to recognize such sums ++specifically as legitimate addresses. Normally you would simply ++recognize any const as legitimate. ++ ++Usually PRINT_OPERAND_ADDRESS is not prepared to handle constant ++sums that are not marked with const. It assumes that a naked ++plus indicates indexing. If so, then you must reject such ++naked constant sums as illegitimate addresses, so that none of them will ++be given to PRINT_OPERAND_ADDRESS. ++ ++On some machines, whether a symbolic address is legitimate depends on ++the section that the address refers to. On these machines, define the ++macro ENCODE_SECTION_INFO to store the information into the ++symbol_ref, and then check for it here. When you see a ++const, you will have to look inside it to find the ++symbol_ref in order to determine the section. ++ ++The best way to modify the name string is by adding text to the ++beginning, with suitable punctuation to prevent any ambiguity. Allocate ++the new name in saveable_obstack. You will have to modify ++ASM_OUTPUT_LABELREF to remove and decode the added text and ++output the name accordingly, and define STRIP_NAME_ENCODING to ++access the original name string. ++ ++You can check the information stored here into the symbol_ref in ++the definitions of the macros GO_IF_LEGITIMATE_ADDRESS and ++PRINT_OPERAND_ADDRESS. ++*/ ++#ifdef REG_OK_STRICT ++# define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \ ++ do \ ++ { \ ++ if (avr32_legitimate_address(MODE, X, 1)) \ ++ goto LABEL; \ ++ } \ ++ while (0) ++#else ++# define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL) \ ++ do \ ++ { \ ++ if (avr32_legitimate_address(MODE, X, 0)) \ ++ goto LABEL; \ ++ } \ ++ while (0) ++#endif ++ ++/* ++A C expression that is nonzero if X (assumed to be a reg ++RTX) is valid for use as a base register. For hard registers, it ++should always accept those which the hardware permits and reject the ++others. Whether the macro accepts or rejects pseudo registers must be ++controlled by REG_OK_STRICT as described above. This usually ++requires two variant definitions, of which REG_OK_STRICT ++controls the one actually used. ++*/ ++#ifdef REG_OK_STRICT ++# define REG_OK_FOR_BASE_P(X) \ ++ REGNO_OK_FOR_BASE_P(REGNO(X)) ++#else ++# define REG_OK_FOR_BASE_P(X) \ ++ ((REGNO(X) <= LAST_REGNUM) || (REGNO(X) >= FIRST_PSEUDO_REGISTER)) ++#endif ++ ++ ++/* ++A C expression that is nonzero if X (assumed to be a reg ++RTX) is valid for use as an index register. ++ ++The difference between an index register and a base register is that ++the index register may be scaled. If an address involves the sum of ++two registers, neither one of them scaled, then either one may be ++labeled the "base" and the other the "index"; but whichever ++labeling is used must fit the machine's constraints of which registers ++may serve in each capacity. The compiler will try both labelings, ++looking for one that is valid, and will reload one or both registers ++only if neither labeling works. ++*/ ++#define REG_OK_FOR_INDEX_P(X) \ ++ REG_OK_FOR_BASE_P(X) ++ ++ ++/* ++A C compound statement that attempts to replace X with a valid ++memory address for an operand of mode MODE. win will be a ++C statement label elsewhere in the code; the macro definition may use ++ ++ GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN); ++ ++to avoid further processing if the address has become legitimate. ++ ++X will always be the result of a call to break_out_memory_refs, ++and OLDX will be the operand that was given to that function to produce ++X. ++ ++The code generated by this macro should not alter the substructure of ++X. If it transforms X into a more legitimate form, it ++should assign X (which will always be a C variable) a new value. ++ ++It is not necessary for this macro to come up with a legitimate ++address. The compiler has standard ways of doing so in all cases. In ++fact, it is safe for this macro to do nothing. But often a ++machine-dependent strategy can generate better code. ++*/ ++#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) \ ++ do \ ++ { \ ++ if (GET_CODE(X) == PLUS \ ++ && GET_CODE(XEXP(X, 0)) == REG \ ++ && GET_CODE(XEXP(X, 1)) == CONST_INT \ ++ && !CONST_OK_FOR_CONSTRAINT_P(INTVAL(XEXP(X, 1)), \ ++ 'K', "Ks16")) \ ++ { \ ++ rtx index = force_reg(SImode, XEXP(X, 1)); \ ++ X = gen_rtx_PLUS( SImode, XEXP(X, 0), index); \ ++ } \ ++ GO_IF_LEGITIMATE_ADDRESS(MODE, X, WIN); \ ++ } \ ++ while(0) ++ ++ ++/* ++A C statement or compound statement with a conditional ++goto LABEL; executed if memory address X (an RTX) can have ++different meanings depending on the machine mode of the memory ++reference it is used for or if the address is valid for some modes ++but not others. ++ ++Autoincrement and autodecrement addresses typically have mode-dependent ++effects because the amount of the increment or decrement is the size ++of the operand being addressed. Some machines have other mode-dependent ++addresses. Many RISC machines have no mode-dependent addresses. ++ ++You may assume that ADDR is a valid address for the machine. ++*/ ++#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \ ++ do \ ++ { \ ++ if (GET_CODE (ADDR) == POST_INC \ ++ || GET_CODE (ADDR) == PRE_DEC) \ ++ goto LABEL; \ ++ } \ ++ while (0) ++ ++/* ++A C expression that is nonzero if X is a legitimate constant for ++an immediate operand on the target machine. You can assume that ++X satisfies CONSTANT_P, so you need not check this. In fact, ++'1' is a suitable definition for this macro on machines where ++anything CONSTANT_P is valid. ++*/ ++#define LEGITIMATE_CONSTANT_P(X) avr32_legitimate_constant_p(X) ++ ++ ++/****************************************************************************** ++ * Condition Code Status ++ *****************************************************************************/ ++ ++#define HAVE_conditional_move 1 ++ ++/* ++C code for a data type which is used for declaring the mdep ++component of cc_status. It defaults to int. ++ ++This macro is not used on machines that do not use cc0. ++*/ ++ ++typedef struct ++{ ++ int flags; ++ rtx value; ++ int fpflags; ++ rtx fpvalue; ++} avr32_status_reg; ++ ++ ++#define CC_STATUS_MDEP avr32_status_reg ++ ++/* ++A C expression to initialize the mdep field to "empty". ++The default definition does nothing, since most machines don't use ++the field anyway. If you want to use the field, you should probably ++define this macro to initialize it. ++ ++This macro is not used on machines that do not use cc0. ++*/ ++ ++#define CC_STATUS_MDEP_INIT \ ++ (cc_status.mdep.flags = CC_NONE , cc_status.mdep.value = 0) ++ ++#define FPCC_STATUS_INIT \ ++ (cc_status.mdep.fpflags = CC_NONE , cc_status.mdep.fpvalue = 0) ++ ++/* ++A C compound statement to set the components of cc_status ++appropriately for an insn INSN whose body is EXP. It is ++this macro's responsibility to recognize insns that set the condition ++code as a byproduct of other activity as well as those that explicitly ++set (cc0). ++ ++This macro is not used on machines that do not use cc0. ++ ++If there are insns that do not set the condition code but do alter ++other machine registers, this macro must check to see whether they ++invalidate the expressions that the condition code is recorded as ++reflecting. For example, on the 68000, insns that store in address ++registers do not set the condition code, which means that usually ++NOTICE_UPDATE_CC can leave cc_status unaltered for such ++insns. But suppose that the previous insn set the condition code ++based on location 'a4@@(102)' and the current insn stores a new ++value in 'a4'. Although the condition code is not changed by ++this, it will no longer be true that it reflects the contents of ++'a4@@(102)'. Therefore, NOTICE_UPDATE_CC must alter ++cc_status in this case to say that nothing is known about the ++condition code value. ++ ++The definition of NOTICE_UPDATE_CC must be prepared to deal ++with the results of peephole optimization: insns whose patterns are ++parallel RTXs containing various reg, mem or ++constants which are just the operands. The RTL structure of these ++insns is not sufficient to indicate what the insns actually do. What ++NOTICE_UPDATE_CC should do when it sees one is just to run ++CC_STATUS_INIT. ++ ++A possible definition of NOTICE_UPDATE_CC is to call a function ++that looks at an attribute (see Insn Attributes) named, for example, ++'cc'. This avoids having detailed information about patterns in ++two places, the 'md' file and in NOTICE_UPDATE_CC. ++*/ ++ ++#define NOTICE_UPDATE_CC(EXP, INSN) avr32_notice_update_cc(EXP, INSN) ++ ++ ++ ++ ++/****************************************************************************** ++ * Describing Relative Costs of Operations ++ *****************************************************************************/ ++ ++ ++ ++/* ++A C expression for the cost of moving data of mode MODE from a ++register in class FROM to one in class TO. The classes are ++expressed using the enumeration values such as GENERAL_REGS. A ++value of 2 is the default; other values are interpreted relative to ++that. ++ ++It is not required that the cost always equal 2 when FROM is the ++same as TO; on some machines it is expensive to move between ++registers if they are not general registers. ++ ++If reload sees an insn consisting of a single set between two ++hard registers, and if REGISTER_MOVE_COST applied to their ++classes returns a value of 2, reload does not check to ensure that the ++constraints of the insn are met. Setting a cost of other than 2 will ++allow reload to verify that the constraints are met. You should do this ++if the movm pattern's constraints do not allow such copying. ++*/ ++#define REGISTER_MOVE_COST(MODE, FROM, TO) \ ++ ((GET_MODE_SIZE(MODE) <= 4) ? 2: \ ++ (GET_MODE_SIZE(MODE) <= 8) ? 3: \ ++ 4) ++ ++/* ++A C expression for the cost of moving data of mode MODE between a ++register of class CLASS and memory; IN is zero if the value ++is to be written to memory, nonzero if it is to be read in. This cost ++is relative to those in REGISTER_MOVE_COST. If moving between ++registers and memory is more expensive than between two registers, you ++should define this macro to express the relative cost. ++ ++If you do not define this macro, GCC uses a default cost of 4 plus ++the cost of copying via a secondary reload register, if one is ++needed. If your machine requires a secondary reload register to copy ++between memory and a register of CLASS but the reload mechanism is ++more complex than copying via an intermediate, define this macro to ++reflect the actual cost of the move. ++ ++GCC defines the function memory_move_secondary_cost if ++secondary reloads are needed. It computes the costs due to copying via ++a secondary register. If your machine copies from memory using a ++secondary register in the conventional way but the default base value of ++4 is not correct for your machine, define this macro to add some other ++value to the result of that function. The arguments to that function ++are the same as to this macro. ++*/ ++/* ++ Memory moves are costly ++*/ ++#define MEMORY_MOVE_COST(MODE, CLASS, IN) 10 ++/* ++ (((IN) ? ((GET_MODE_SIZE(MODE) < 4) ? 4 : \ ++ (GET_MODE_SIZE(MODE) > 8) ? 6 : \ ++ 3) \ ++ : ((GET_MODE_SIZE(MODE) > 8) ? 4 : 2))) ++*/ ++ ++/* ++A C expression for the cost of a branch instruction. A value of 1 is ++the default; other values are interpreted relative to that. ++*/ ++ /* Try to use conditionals as much as possible */ ++#define BRANCH_COST (TARGET_BRANCH_PRED ? 3 : 5) ++ ++/*A C expression for the maximum number of instructions to execute via conditional ++ execution instructions instead of a branch. A value of BRANCH_COST+1 is the default ++ if the machine does not use cc0, and 1 if it does use cc0.*/ ++#define MAX_CONDITIONAL_EXECUTE 3 ++ ++/* ++Define this macro as a C expression which is nonzero if accessing less ++than a word of memory (i.e.: a char or a short) is no ++faster than accessing a word of memory, i.e., if such access ++require more than one instruction or if there is no difference in cost ++between byte and (aligned) word loads. ++ ++When this macro is not defined, the compiler will access a field by ++finding the smallest containing object; when it is defined, a fullword ++load will be used if alignment permits. Unless bytes accesses are ++faster than word accesses, using word accesses is preferable since it ++may eliminate subsequent memory access if subsequent accesses occur to ++other fields in the same word of the structure, but to different bytes. ++*/ ++#define SLOW_BYTE_ACCESS 1 ++ ++ ++/* ++Define this macro if it is as good or better to call a constant ++function address than to call an address kept in a register. ++*/ ++#define NO_FUNCTION_CSE ++ ++ ++/****************************************************************************** ++ * Adjusting the Instruction Scheduler ++ *****************************************************************************/ ++ ++/***************************************************************************** ++ * Dividing the Output into Sections (Texts, Data, ...) * ++ *****************************************************************************/ ++ ++/* ++A C expression whose value is a string, including spacing, containing the ++assembler operation that should precede instructions and read-only data. ++Normally "\t.text" is right. ++*/ ++#define TEXT_SECTION_ASM_OP "\t.text" ++/* ++A C statement that switches to the default section containing instructions. ++Normally this is not needed, as simply defining TEXT_SECTION_ASM_OP ++is enough. The MIPS port uses this to sort all functions after all data ++declarations. ++*/ ++/* #define TEXT_SECTION */ ++ ++/* ++A C expression whose value is a string, including spacing, containing the ++assembler operation to identify the following data as writable initialized ++data. Normally "\t.data" is right. ++*/ ++#define DATA_SECTION_ASM_OP "\t.data" ++ ++/* ++If defined, a C expression whose value is a string, including spacing, ++containing the assembler operation to identify the following data as ++shared data. If not defined, DATA_SECTION_ASM_OP will be used. ++*/ ++ ++/* ++A C expression whose value is a string, including spacing, containing ++the assembler operation to identify the following data as read-only ++initialized data. ++*/ ++#undef READONLY_DATA_SECTION_ASM_OP ++#define READONLY_DATA_SECTION_ASM_OP \ ++ ((target_flags & USE_RODATA_SECTION) ? \ ++ "\t.section\t.rodata" : \ ++ TEXT_SECTION_ASM_OP ) ++ ++ ++/* ++If defined, a C expression whose value is a string, including spacing, ++containing the assembler operation to identify the following data as ++uninitialized global data. If not defined, and neither ++ASM_OUTPUT_BSS nor ASM_OUTPUT_ALIGNED_BSS are defined, ++uninitialized global data will be output in the data section if ++-fno-common is passed, otherwise ASM_OUTPUT_COMMON will be ++used. ++*/ ++#define BSS_SECTION_ASM_OP "\t.section\t.bss" ++ ++/* ++If defined, a C expression whose value is a string, including spacing, ++containing the assembler operation to identify the following data as ++uninitialized global shared data. If not defined, and ++BSS_SECTION_ASM_OP is, the latter will be used. ++*/ ++/*#define SHARED_BSS_SECTION_ASM_OP "\trseg\tshared_bbs_section:data:noroot(0)\n"*/ ++/* ++If defined, a C expression whose value is a string, including spacing, ++containing the assembler operation to identify the following data as ++initialization code. If not defined, GCC will assume such a section does ++not exist. ++*/ ++#undef INIT_SECTION_ASM_OP ++#define INIT_SECTION_ASM_OP "\t.section\t.init" ++ ++/* ++If defined, a C expression whose value is a string, including spacing, ++containing the assembler operation to identify the following data as ++finalization code. If not defined, GCC will assume such a section does ++not exist. ++*/ ++#undef FINI_SECTION_ASM_OP ++#define FINI_SECTION_ASM_OP "\t.section\t.fini" ++ ++/* ++If defined, an ASM statement that switches to a different section ++via SECTION_OP, calls FUNCTION, and switches back to ++the text section. This is used in crtstuff.c if ++INIT_SECTION_ASM_OP or FINI_SECTION_ASM_OP to calls ++to initialization and finalization functions from the init and fini ++sections. By default, this macro uses a simple function call. Some ++ports need hand-crafted assembly code to avoid dependencies on ++registers initialized in the function prologue or to ensure that ++constant pools don't end up too far way in the text section. ++*/ ++#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ ++ asm ( SECTION_OP "\n" \ ++ "mcall r6[" USER_LABEL_PREFIX #FUNC "@got]\n" \ ++ TEXT_SECTION_ASM_OP); ++ ++ ++/* ++Define this macro to be an expression with a nonzero value if jump ++tables (for tablejump insns) should be output in the text ++section, along with the assembler instructions. Otherwise, the ++readonly data section is used. ++ ++This macro is irrelevant if there is no separate readonly data section. ++*/ ++#define JUMP_TABLES_IN_TEXT_SECTION 1 ++ ++ ++/****************************************************************************** ++ * Position Independent Code (PIC) ++ *****************************************************************************/ ++ ++#ifndef AVR32_ALWAYS_PIC ++#define AVR32_ALWAYS_PIC 0 ++#endif ++ ++/* GOT is set to r6 */ ++#define PIC_OFFSET_TABLE_REGNUM INTERNAL_REGNUM(6) ++ ++/* ++A C expression that is nonzero if X is a legitimate immediate ++operand on the target machine when generating position independent code. ++You can assume that X satisfies CONSTANT_P, so you need not ++check this. You can also assume flag_pic is true, so you need not ++check it either. You need not define this macro if all constants ++(including SYMBOL_REF) can be immediate operands when generating ++position independent code. ++*/ ++/* We can't directly access anything that contains a symbol, ++ nor can we indirect via the constant pool. */ ++#define LEGITIMATE_PIC_OPERAND_P(X) avr32_legitimate_pic_operand_p(X) ++ ++ ++/* We need to know when we are making a constant pool; this determines ++ whether data needs to be in the GOT or can be referenced via a GOT ++ offset. */ ++extern int making_const_table; ++ ++/****************************************************************************** ++ * Defining the Output Assembler Language ++ *****************************************************************************/ ++ ++ ++/* ++A C string constant describing how to begin a comment in the target ++assembler language. The compiler assumes that the comment will end at ++the end of the line. ++*/ ++#define ASM_COMMENT_START "# " ++ ++/* ++A C string constant for text to be output before each asm ++statement or group of consecutive ones. Normally this is ++"#APP", which is a comment that has no effect on most ++assemblers but tells the GNU assembler that it must check the lines ++that follow for all valid assembler constructs. ++*/ ++#undef ASM_APP_ON ++#define ASM_APP_ON "#APP\n" ++ ++/* ++A C string constant for text to be output after each asm ++statement or group of consecutive ones. Normally this is ++"#NO_APP", which tells the GNU assembler to resume making the ++time-saving assumptions that are valid for ordinary compiler output. ++*/ ++#undef ASM_APP_OFF ++#define ASM_APP_OFF "#NO_APP\n" ++ ++ ++ ++#define FILE_ASM_OP "\t.file\n" ++#define IDENT_ASM_OP "\t.ident\t" ++#define SET_ASM_OP "\t.set\t" ++ ++ ++/* ++ * Output assembly directives to switch to section name. The section ++ * should have attributes as specified by flags, which is a bit mask ++ * of the SECTION_* flags defined in 'output.h'. If align is nonzero, ++ * it contains an alignment in bytes to be used for the section, ++ * otherwise some target default should be used. Only targets that ++ * must specify an alignment within the section directive need pay ++ * attention to align -- we will still use ASM_OUTPUT_ALIGN. ++ * ++ * NOTE: This one must not be moved to avr32.c ++ */ ++#undef TARGET_ASM_NAMED_SECTION ++#define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section ++ ++ ++/* ++You may define this macro as a C expression. You should define the ++expression to have a nonzero value if GCC should output the constant ++pool for a function before the code for the function, or a zero value if ++GCC should output the constant pool after the function. If you do ++not define this macro, the usual case, GCC will output the constant ++pool before the function. ++*/ ++#define CONSTANT_POOL_BEFORE_FUNCTION 0 ++ ++ ++/* ++Define this macro as a C expression which is nonzero if the constant ++EXP, of type tree, should be output after the code for a ++function. The compiler will normally output all constants before the ++function; you need not define this macro if this is OK. ++*/ ++#define CONSTANT_AFTER_FUNCTION_P(EXP) 1 ++ ++ ++/* ++Define this macro as a C expression which is nonzero if C is ++used as a logical line separator by the assembler. ++ ++If you do not define this macro, the default is that only ++the character ';' is treated as a logical line separator. ++*/ ++#define IS_ASM_LOGICAL_LINE_SEPARATOR(C) ((C) == '\n') ++ ++ ++/** Output of Uninitialized Variables **/ ++ ++/* ++A C statement (sans semicolon) to output to the stdio stream ++STREAM the assembler definition of a common-label named ++NAME whose size is SIZE bytes. The variable ROUNDED ++is the size rounded up to whatever alignment the caller wants. ++ ++Use the expression assemble_name(STREAM, NAME) to ++output the name itself; before and after that, output the additional ++assembler syntax for defining the name, and a newline. ++ ++This macro controls how the assembler definitions of uninitialized ++common global variables are output. ++*/ ++/* ++#define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \ ++ avr32_asm_output_common(STREAM, NAME, SIZE, ROUNDED) ++*/ ++ ++#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ ++ do \ ++ { \ ++ fputs ("\t.comm ", (FILE)); \ ++ assemble_name ((FILE), (NAME)); \ ++ fprintf ((FILE), ",%d\n", (SIZE)); \ ++ } \ ++ while (0) ++ ++/* ++ * Like ASM_OUTPUT_BSS except takes the required alignment as a ++ * separate, explicit argument. If you define this macro, it is used ++ * in place of ASM_OUTPUT_BSS, and gives you more flexibility in ++ * handling the required alignment of the variable. The alignment is ++ * specified as the number of bits. ++ * ++ * Try to use function asm_output_aligned_bss defined in file varasm.c ++ * when defining this macro. ++ */ ++#define ASM_OUTPUT_ALIGNED_BSS(STREAM, DECL, NAME, SIZE, ALIGNMENT) \ ++ asm_output_aligned_bss (STREAM, DECL, NAME, SIZE, ALIGNMENT) ++ ++/* ++A C statement (sans semicolon) to output to the stdio stream ++STREAM the assembler definition of a local-common-label named ++NAME whose size is SIZE bytes. The variable ROUNDED ++is the size rounded up to whatever alignment the caller wants. ++ ++Use the expression assemble_name(STREAM, NAME) to ++output the name itself; before and after that, output the additional ++assembler syntax for defining the name, and a newline. ++ ++This macro controls how the assembler definitions of uninitialized ++static variables are output. ++*/ ++#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ ++ do \ ++ { \ ++ fputs ("\t.lcomm ", (FILE)); \ ++ assemble_name ((FILE), (NAME)); \ ++ fprintf ((FILE), ",%d, %d\n", (SIZE), 2); \ ++ } \ ++ while (0) ++ ++ ++/* ++A C statement (sans semicolon) to output to the stdio stream ++STREAM the assembler definition of a label named NAME. ++Use the expression assemble_name(STREAM, NAME) to ++output the name itself; before and after that, output the additional ++assembler syntax for defining the name, and a newline. ++*/ ++#define ASM_OUTPUT_LABEL(STREAM, NAME) avr32_asm_output_label(STREAM, NAME) ++ ++/* A C string containing the appropriate assembler directive to ++ * specify the size of a symbol, without any arguments. On systems ++ * that use ELF, the default (in 'config/elfos.h') is '"\t.size\t"'; ++ * on other systems, the default is not to define this macro. ++ * ++ * Define this macro only if it is correct to use the default ++ * definitions of ASM_ OUTPUT_SIZE_DIRECTIVE and ++ * ASM_OUTPUT_MEASURED_SIZE for your system. If you need your own ++ * custom definitions of those macros, or if you do not need explicit ++ * symbol sizes at all, do not define this macro. ++ */ ++#define SIZE_ASM_OP "\t.size\t" ++ ++ ++/* ++A C statement (sans semicolon) to output to the stdio stream ++STREAM some commands that will make the label NAME global; ++that is, available for reference from other files. Use the expression ++assemble_name(STREAM, NAME) to output the name ++itself; before and after that, output the additional assembler syntax ++for making that name global, and a newline. ++*/ ++#define GLOBAL_ASM_OP "\t.globl\t" ++ ++ ++ ++/* ++A C expression which evaluates to true if the target supports weak symbols. ++ ++If you don't define this macro, defaults.h provides a default ++definition. If either ASM_WEAKEN_LABEL or ASM_WEAKEN_DECL ++is defined, the default definition is '1'; otherwise, it is ++'0'. Define this macro if you want to control weak symbol support ++with a compiler flag such as -melf. ++*/ ++#define SUPPORTS_WEAK 1 ++ ++/* ++A C statement (sans semicolon) to output to the stdio stream ++STREAM a reference in assembler syntax to a label named ++NAME. This should add '_' to the front of the name, if that ++is customary on your operating system, as it is in most Berkeley Unix ++systems. This macro is used in assemble_name. ++*/ ++#define ASM_OUTPUT_LABELREF(STREAM, NAME) \ ++ avr32_asm_output_labelref(STREAM, NAME) ++ ++ ++ ++/* ++A C expression to assign to OUTVAR (which is a variable of type ++char *) a newly allocated string made from the string ++NAME and the number NUMBER, with some suitable punctuation ++added. Use alloca to get space for the string. ++ ++The string will be used as an argument to ASM_OUTPUT_LABELREF to ++produce an assembler label for an internal static variable whose name is ++NAME. Therefore, the string must be such as to result in valid ++assembler code. The argument NUMBER is different each time this ++macro is executed; it prevents conflicts between similarly-named ++internal static variables in different scopes. ++ ++Ideally this string should not be a valid C identifier, to prevent any ++conflict with the user's own symbols. Most assemblers allow periods ++or percent signs in assembler symbols; putting at least one of these ++between the name and the number will suffice. ++*/ ++#define ASM_FORMAT_PRIVATE_NAME(OUTVAR, NAME, NUMBER) \ ++ do \ ++ { \ ++ (OUTVAR) = (char *) alloca (strlen ((NAME)) + 10); \ ++ sprintf ((OUTVAR), "%s.%d", (NAME), (NUMBER)); \ ++ } \ ++ while (0) ++ ++ ++/** Macros Controlling Initialization Routines **/ ++ ++ ++/* ++If defined, main will not call __main as described above. ++This macro should be defined for systems that control start-up code ++on a symbol-by-symbol basis, such as OSF/1, and should not ++be defined explicitly for systems that support INIT_SECTION_ASM_OP. ++*/ ++/* ++ __main is not defined when debugging. ++*/ ++#define HAS_INIT_SECTION ++ ++ ++/** Output of Assembler Instructions **/ ++ ++/* ++A C initializer containing the assembler's names for the machine ++registers, each one as a C string constant. This is what translates ++register numbers in the compiler into assembler language. ++*/ ++ ++#define REGISTER_NAMES \ ++{ \ ++ "pc", "lr", \ ++ "sp", "r12", \ ++ "r11", "r10", \ ++ "r9", "r8", \ ++ "r7", "r6", \ ++ "r5", "r4", \ ++ "r3", "r2", \ ++ "r1", "r0", \ ++ "f15","f14", \ ++ "f13","f12", \ ++ "f11","f10", \ ++ "f9", "f8", \ ++ "f7", "f6", \ ++ "f5", "f4", \ ++ "f3", "f2", \ ++ "f1", "f0" \ ++} ++ ++/* ++A C compound statement to output to stdio stream STREAM the ++assembler syntax for an instruction operand X. X is an ++RTL expression. ++ ++CODE is a value that can be used to specify one of several ways ++of printing the operand. It is used when identical operands must be ++printed differently depending on the context. CODE comes from ++the '%' specification that was used to request printing of the ++operand. If the specification was just '%digit' then ++CODE is 0; if the specification was '%ltr digit' ++then CODE is the ASCII code for ltr. ++ ++If X is a register, this macro should print the register's name. ++The names can be found in an array reg_names whose type is ++char *[]. reg_names is initialized from REGISTER_NAMES. ++ ++When the machine description has a specification '%punct' ++(a '%' followed by a punctuation character), this macro is called ++with a null pointer for X and the punctuation character for ++CODE. ++*/ ++#define PRINT_OPERAND(STREAM, X, CODE) avr32_print_operand(STREAM, X, CODE) ++ ++/* A C statement to be executed just prior to the output of ++ assembler code for INSN, to modify the extracted operands so ++ they will be output differently. ++ ++ Here the argument OPVEC is the vector containing the operands ++ extracted from INSN, and NOPERANDS is the number of elements of ++ the vector which contain meaningful data for this insn. ++ The contents of this vector are what will be used to convert the insn ++ template into assembler code, so you can change the assembler output ++ by changing the contents of the vector. */ ++#define FINAL_PRESCAN_INSN(INSN, OPVEC, NOPERANDS) \ ++ avr32_final_prescan_insn ((INSN), (OPVEC), (NOPERANDS)) ++ ++/* ++A C expression which evaluates to true if CODE is a valid ++punctuation character for use in the PRINT_OPERAND macro. If ++PRINT_OPERAND_PUNCT_VALID_P is not defined, it means that no ++punctuation characters (except for the standard one, '%') are used ++in this way. ++*/ ++/* ++ 'm' refers to the most significant word in a two-register mode. ++*/ ++#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == 'm' || (CODE) == 'e') ++ ++/* ++A C compound statement to output to stdio stream STREAM the ++assembler syntax for an instruction operand that is a memory reference ++whose address is X. X is an RTL expression. ++ ++On some machines, the syntax for a symbolic address depends on the ++section that the address refers to. On these machines, define the macro ++ENCODE_SECTION_INFO to store the information into the ++symbol_ref, and then check for it here. (see Assembler Format.) ++*/ ++#define PRINT_OPERAND_ADDRESS(STREAM, X) avr32_print_operand_address(STREAM, X) ++ ++ ++/** Output of Dispatch Tables **/ ++ ++/* ++ * A C statement to output to the stdio stream stream an assembler ++ * pseudo-instruction to generate a difference between two ++ * labels. value and rel are the numbers of two internal labels. The ++ * definitions of these labels are output using ++ * (*targetm.asm_out.internal_label), and they must be printed in the ++ * same way here. For example, ++ * ++ * fprintf (stream, "\t.word L%d-L%d\n", ++ * value, rel) ++ * ++ * You must provide this macro on machines where the addresses in a ++ * dispatch table are relative to the table's own address. If defined, ++ * GCC will also use this macro on all machines when producing ++ * PIC. body is the body of the ADDR_DIFF_VEC; it is provided so that ++ * the mode and flags can be read. ++ */ ++#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL) \ ++ fprintf(STREAM, "\tbral\t%sL%d\n", LOCAL_LABEL_PREFIX, VALUE) ++ ++/* ++This macro should be provided on machines where the addresses ++in a dispatch table are absolute. ++ ++The definition should be a C statement to output to the stdio stream ++STREAM an assembler pseudo-instruction to generate a reference to ++a label. VALUE is the number of an internal label whose ++definition is output using ASM_OUTPUT_INTERNAL_LABEL. ++For example, ++ ++fprintf(STREAM, "\t.word L%d\n", VALUE) ++*/ ++ ++#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \ ++ fprintf(STREAM, "\t.long %sL%d\n", LOCAL_LABEL_PREFIX, VALUE) ++ ++/** Assembler Commands for Exception Regions */ ++ ++/* ToDo: All of this subsection */ ++ ++/** Assembler Commands for Alignment */ ++ ++ ++/* ++A C statement to output to the stdio stream STREAM an assembler ++command to advance the location counter to a multiple of 2 to the ++POWER bytes. POWER will be a C expression of type int. ++*/ ++#define ASM_OUTPUT_ALIGN(STREAM, POWER) \ ++ do \ ++ { \ ++ if ((POWER) != 0) \ ++ fprintf(STREAM, "\t.align\t%d\n", POWER); \ ++ } \ ++ while (0) ++ ++/* ++Like ASM_OUTPUT_ALIGN, except that the \nop" instruction is used for padding, if ++necessary. ++*/ ++#define ASM_OUTPUT_ALIGN_WITH_NOP(STREAM, POWER) \ ++ fprintf(STREAM, "\t.balignw\t%d, 0xd703\n", (1 << POWER)) ++ ++ ++ ++/****************************************************************************** ++ * Controlling Debugging Information Format ++ *****************************************************************************/ ++ ++/* How to renumber registers for dbx and gdb. */ ++#define DBX_REGISTER_NUMBER(REGNO) ASM_REGNUM (REGNO) ++ ++/* The DWARF 2 CFA column which tracks the return address. */ ++#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM(LR_REGNUM) ++ ++/* ++Define this macro if GCC should produce dwarf version 2 format ++debugging output in response to the -g option. ++ ++To support optional call frame debugging information, you must also ++define INCOMING_RETURN_ADDR_RTX and either set ++RTX_FRAME_RELATED_P on the prologue insns if you use RTL for the ++prologue, or call dwarf2out_def_cfa and dwarf2out_reg_save ++as appropriate from TARGET_ASM_FUNCTION_PROLOGUE if you don't. ++*/ ++#define DWARF2_DEBUGGING_INFO 1 ++ ++ ++#define DWARF2_ASM_LINE_DEBUG_INFO 1 ++#define DWARF2_FRAME_INFO 1 ++ ++ ++/****************************************************************************** ++ * Miscellaneous Parameters ++ *****************************************************************************/ ++ ++/* ToDo: a lot */ ++ ++/* ++An alias for a machine mode name. This is the machine mode that ++elements of a jump-table should have. ++*/ ++#define CASE_VECTOR_MODE SImode ++ ++/* ++Define this macro to be a C expression to indicate when jump-tables ++should contain relative addresses. If jump-tables never contain ++relative addresses, then you need not define this macro. ++*/ ++#define CASE_VECTOR_PC_RELATIVE 0 ++ ++/* ++The maximum number of bytes that a single instruction can move quickly ++between memory and registers or between two memory locations. ++*/ ++#define MOVE_MAX (2*UNITS_PER_WORD) ++ ++ ++/* A C expression that is nonzero if on this machine the number of bits actually used ++ for the count of a shift operation is equal to the number of bits needed to represent ++ the size of the object being shifted. When this macro is nonzero, the compiler will ++ assume that it is safe to omit a sign-extend, zero-extend, and certain bitwise 'and' ++ instructions that truncates the count of a shift operation. On machines that have ++ instructions that act on bit-fields at variable positions, which may include 'bit test' ++ 378 GNU Compiler Collection (GCC) Internals ++ instructions, a nonzero SHIFT_COUNT_TRUNCATED also enables deletion of truncations ++ of the values that serve as arguments to bit-field instructions. ++ If both types of instructions truncate the count (for shifts) and position (for bit-field ++ operations), or if no variable-position bit-field instructions exist, you should define ++ this macro. ++ However, on some machines, such as the 80386 and the 680x0, truncation only applies ++ to shift operations and not the (real or pretended) bit-field operations. Define SHIFT_ ++ COUNT_TRUNCATED to be zero on such machines. Instead, add patterns to the 'md' file ++ that include the implied truncation of the shift instructions. ++ You need not dene this macro if it would always have the value of zero. */ ++#define SHIFT_COUNT_TRUNCATED 1 ++ ++/* ++A C expression which is nonzero if on this machine it is safe to ++convert an integer of INPREC bits to one of OUTPREC ++bits (where OUTPREC is smaller than INPREC) by merely ++operating on it as if it had only OUTPREC bits. ++ ++On many machines, this expression can be 1. ++ ++When TRULY_NOOP_TRUNCATION returns 1 for a pair of sizes for ++modes for which MODES_TIEABLE_P is 0, suboptimal code can result. ++If this is the case, making TRULY_NOOP_TRUNCATION return 0 in ++such cases may improve things. ++*/ ++#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1 ++ ++/* ++An alias for the machine mode for pointers. On most machines, define ++this to be the integer mode corresponding to the width of a hardware ++pointer; SImode on 32-bit machine or DImode on 64-bit machines. ++On some machines you must define this to be one of the partial integer ++modes, such as PSImode. ++ ++The width of Pmode must be at least as large as the value of ++POINTER_SIZE. If it is not equal, you must define the macro ++POINTERS_EXTEND_UNSIGNED to specify how pointers are extended ++to Pmode. ++*/ ++#define Pmode SImode ++ ++/* ++An alias for the machine mode used for memory references to functions ++being called, in call RTL expressions. On most machines this ++should be QImode. ++*/ ++#define FUNCTION_MODE SImode ++ ++ ++#define REG_S_P(x) \ ++ (REG_P (x) || (GET_CODE (x) == SUBREG && REG_P (XEXP (x, 0)))) ++ ++ ++/* If defined, modifies the length assigned to instruction INSN as a ++ function of the context in which it is used. LENGTH is an lvalue ++ that contains the initially computed length of the insn and should ++ be updated with the correct length of the insn. */ ++#define ADJUST_INSN_LENGTH(INSN, LENGTH) \ ++ ((LENGTH) = avr32_adjust_insn_length ((INSN), (LENGTH))) ++ ++ ++#define CLZ_DEFINED_VALUE_AT_ZERO(mode, value) \ ++ (value = 32, (mode == SImode)) ++ ++#define CTZ_DEFINED_VALUE_AT_ZERO(mode, value) \ ++ (value = 32, (mode == SImode)) ++ ++#define UNITS_PER_SIMD_WORD UNITS_PER_WORD ++ ++#define STORE_FLAG_VALUE 1 ++ ++enum avr32_builtins ++{ ++ AVR32_BUILTIN_MTSR, ++ AVR32_BUILTIN_MFSR, ++ AVR32_BUILTIN_MTDR, ++ AVR32_BUILTIN_MFDR, ++ AVR32_BUILTIN_CACHE, ++ AVR32_BUILTIN_SYNC, ++ AVR32_BUILTIN_TLBR, ++ AVR32_BUILTIN_TLBS, ++ AVR32_BUILTIN_TLBW, ++ AVR32_BUILTIN_BREAKPOINT, ++ AVR32_BUILTIN_XCHG, ++ AVR32_BUILTIN_LDXI, ++ AVR32_BUILTIN_BSWAP16, ++ AVR32_BUILTIN_BSWAP32, ++ AVR32_BUILTIN_COP, ++ AVR32_BUILTIN_MVCR_W, ++ AVR32_BUILTIN_MVRC_W, ++ AVR32_BUILTIN_MVCR_D, ++ AVR32_BUILTIN_MVRC_D, ++ AVR32_BUILTIN_MULSATHH_H, ++ AVR32_BUILTIN_MULSATHH_W, ++ AVR32_BUILTIN_MULSATRNDHH_H, ++ AVR32_BUILTIN_MULSATRNDWH_W, ++ AVR32_BUILTIN_MULSATWH_W, ++ AVR32_BUILTIN_MACSATHH_W, ++ AVR32_BUILTIN_SATADD_H, ++ AVR32_BUILTIN_SATSUB_H, ++ AVR32_BUILTIN_SATADD_W, ++ AVR32_BUILTIN_SATSUB_W, ++ AVR32_BUILTIN_MULWH_D, ++ AVR32_BUILTIN_MULNWH_D, ++ AVR32_BUILTIN_MACWH_D, ++ AVR32_BUILTIN_MACHH_D, ++ AVR32_BUILTIN_MUSFR, ++ AVR32_BUILTIN_MUSTR, ++ AVR32_BUILTIN_SATS, ++ AVR32_BUILTIN_SATU, ++ AVR32_BUILTIN_SATRNDS, ++ AVR32_BUILTIN_SATRNDU ++}; ++ ++ ++#define FLOAT_LIB_COMPARE_RETURNS_BOOL(MODE, COMPARISON) \ ++ ((MODE == SFmode) || (MODE == DFmode)) ++ ++#define RENAME_LIBRARY_SET ".set" ++ ++/* Make ABI_NAME an alias for __GCC_NAME. */ ++#define RENAME_LIBRARY(GCC_NAME, ABI_NAME) \ ++ __asm__ (".globl\t__avr32_" #ABI_NAME "\n" \ ++ ".set\t__avr32_" #ABI_NAME \ ++ ", __" #GCC_NAME "\n"); ++ ++/* Give libgcc functions avr32 ABI name. */ ++#ifdef L_muldi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, mul64) ++#endif ++#ifdef L_divdi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (divdi3, sdiv64) ++#endif ++#ifdef L_udivdi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (udivdi3, udiv64) ++#endif ++#ifdef L_moddi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (moddi3, smod64) ++#endif ++#ifdef L_umoddi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (umoddi3, umod64) ++#endif ++#ifdef L_ashldi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashldi3, lsl64) ++#endif ++#ifdef L_lshrdi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (lshrdi3, lsr64) ++#endif ++#ifdef L_ashrdi3 ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (ashrdi3, asr64) ++#endif ++ ++#ifdef L_fixsfdi ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, f32_to_s64) ++#endif ++#ifdef L_fixunssfdi ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, f32_to_u64) ++#endif ++#ifdef L_floatdidf ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, s64_to_f64) ++#endif ++#ifdef L_floatdisf ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdisf, s64_to_f32) ++#endif ++ ++#ifdef L_addsub_sf ++#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (addsf3, f32_add); RENAME_LIBRARY (subsf3, f32_sub) ++#endif ++ ++#endif +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/avr32.md gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32.md +--- gcc-4.0.2/gcc/config/avr32/avr32.md 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32.md 2006-11-09 15:04:35.000000000 +0100 +@@ -0,0 +1,4694 @@ ++;; AVR32 machine description file. ++;; Copyright 2003-2006 Atmel Corporation. ++;; ++;; Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++;; ++;; This file is part of GCC. ++;; ++;; This program is free software; you can redistribute it and/or modify ++;; it under the terms of the GNU General Public License as published by ++;; the Free Software Foundation; either version 2 of the License, or ++;; (at your option) any later version. ++;; ++;; This program 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 program; if not, write to the Free Software ++;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++;; -*- Mode: Scheme -*- ++ ++(define_attr "type" "alu,alu2,alu_sat,mulhh,mulwh,mulww_w,mulww_d,div,machh_w,macww_w,macww_d,branch,call,load,load_rm,store,load2,load4,store2,store4,fmul,fcmps,fcmpd,fcast,fmv,fmvcpu,fldd,fstd,flds,fsts,fstm" ++ (const_string "alu")) ++ ++ ++(define_attr "cc" "none,set_vncz,set_ncz,set_cz,set_z,bld,compare,clobber,call_set,fpcompare,from_fpcc" ++ (const_string "none")) ++ ++ ++(define_attr "pipeline" "ap,uc" ++ (const_string "ap")) ++ ++(define_attr "length" "" ++ (const_int 4)) ++ ++ ++;; Uses of UNSPEC in this file: ++(define_constants ++ [(UNSPEC_PUSHM 0) ++ (UNSPEC_POPM 1) ++ (UNSPEC_UDIVMODSI4_INTERNAL 2) ++ (UNSPEC_DIVMODSI4_INTERNAL 3) ++ (UNSPEC_STM 4) ++ (UNSPEC_LDM 5) ++ (UNSPEC_MOVSICC 6) ++ (UNSPEC_ADDSICC 7) ++ (UNSPEC_COND_MI 8) ++ (UNSPEC_COND_PL 9) ++ (UNSPEC_PIC_SYM 10) ++ (UNSPEC_PIC_BASE 11) ++ (UNSPEC_STORE_MULTIPLE 12) ++ (UNSPEC_STMFP 13) ++ (UNSPEC_FPCC_TO_REG 14) ++ (UNSPEC_REG_TO_CC 15) ++ (UNSPEC_FORCE_MINIPOOL 16) ++ (UNSPEC_SATS 17) ++ (UNSPEC_SATU 18) ++ (UNSPEC_SATRNDS 19) ++ (UNSPEC_SATRNDU 20) ++ ]) ++ ++(define_constants ++ [(VUNSPEC_EPILOGUE 0) ++ (VUNSPEC_CACHE 1) ++ (VUNSPEC_MTSR 2) ++ (VUNSPEC_MFSR 3) ++ (VUNSPEC_BLOCKAGE 4) ++ (VUNSPEC_SYNC 5) ++ (VUNSPEC_TLBR 6) ++ (VUNSPEC_TLBW 7) ++ (VUNSPEC_TLBS 8) ++ (VUNSPEC_BREAKPOINT 9) ++ (VUNSPEC_MTDR 10) ++ (VUNSPEC_MFDR 11) ++ (VUNSPEC_MVCR 12) ++ (VUNSPEC_MVRC 13) ++ (VUNSPEC_COP 14) ++ (VUNSPEC_ALIGN 15) ++ (VUNSPEC_POOL_START 16) ++ (VUNSPEC_POOL_END 17) ++ (VUNSPEC_POOL_4 18) ++ (VUNSPEC_POOL_8 19) ++ (VUNSPEC_MUSFR 20) ++ (VUNSPEC_MUSTR 21) ++ ]) ++ ++(define_constants ++ [ ++ ;; R7 = 15-7 = 8 ++ (FP_REGNUM 8) ++ ;; Return Register = R12 = 15 - 12 = 3 ++ (RETVAL_REGNUM 3) ++ ;; SP = R13 = 15 - 13 = 2 ++ (SP_REGNUM 2) ++ ;; LR = R14 = 15 - 14 = 1 ++ (LR_REGNUM 1) ++ ;; PC = R15 = 15 - 15 = 0 ++ (PC_REGNUM 0) ++ ;; FPSR = GENERAL_REGS + 1 = 17 ++ (FPCC_REGNUM 17) ++ ]) ++ ++ ++ ++ ++;;****************************************************************************** ++;; Macros ++;;****************************************************************************** ++ ++;; Integer Modes for basic alu insns ++(define_mode_macro INTM [SI HI QI]) ++(define_mode_attr alu_cc_attr [(SI "set_vncz") (HI "clobber") (QI "clobber")]) ++ ++;; Move word modes ++(define_mode_macro MOVM [SI V2HI V4QI]) ++ ++;; For mov/addcc insns ++(define_mode_macro ADDCC [SI HI QI]) ++(define_mode_macro MOVCC [SI HI QI]) ++(define_mode_macro CMP [DI SI HI QI]) ++(define_mode_attr cmp_constraint [(DI "r") (SI "rKs21") (HI "r") (QI "r")]) ++(define_mode_attr cmp_predicate [(DI "register_operand") ++ (SI "register_immediate_operand") ++ (HI "register_operand") ++ (QI "register_operand")]) ++ ++;; For all conditional insns ++(define_code_macro any_cond [eq ne gt ge lt le gtu geu ltu leu]) ++(define_code_attr cond [(eq "eq") (ne "ne") (gt "gt") (ge "ge") (lt "lt") (le "le") ++ (gtu "hi") (geu "hs") (ltu "lo") (leu "ls")]) ++(define_code_attr invcond [(eq "ne") (ne "eq") (gt "le") (ge "lt") (lt "ge") (le "gt") ++ (gtu "ls") (geu "lo") (ltu "hs") (leu "hi")]) ++ ++;; For logical operations ++(define_code_macro logical [and ior xor]) ++(define_code_attr logical_insn [(and "and") (ior "or") (xor "eor")]) ++ ++;; Load the predicates ++(include "predicates.md") ++ ++ ++;;****************************************************************************** ++;; Automaton pipeline description for avr32 ++;;****************************************************************************** ++ ++(define_automaton "avr32_ap") ++ ++ ++(define_cpu_unit "is" "avr32_ap") ++(define_cpu_unit "a1,m1,da" "avr32_ap") ++(define_cpu_unit "a2,m2,d" "avr32_ap") ++ ++;;Alu instructions ++(define_insn_reservation "alu_op" 1 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "alu")) ++ "is,a1,a2") ++ ++(define_insn_reservation "alu2_op" 2 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "alu2")) ++ "is,is+a1,a1+a2,a2") ++ ++(define_insn_reservation "alu_sat_op" 2 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "alu_sat")) ++ "is,a1,a2") ++ ++ ++;;Mul instructions ++(define_insn_reservation "mulhh_op" 2 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "mulhh,mulwh")) ++ "is,m1,m2") ++ ++(define_insn_reservation "mulww_w_op" 3 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "mulww_w")) ++ "is,m1,m1+m2,m2") ++ ++(define_insn_reservation "mulww_d_op" 5 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "mulww_d")) ++ "is,m1,m1+m2,m1+m2,m2,m2") ++ ++(define_insn_reservation "div_op" 33 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "div")) ++ "is,m1,m1*31 + m2*31,m2") ++ ++(define_insn_reservation "machh_w_op" 3 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "machh_w")) ++ "is*2,m1,m2") ++ ++ ++(define_insn_reservation "macww_w_op" 4 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "macww_w")) ++ "is*2,m1,m1,m2") ++ ++ ++(define_insn_reservation "macww_d_op" 6 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "macww_d")) ++ "is*2,m1,m1+m2,m1+m2,m2") ++ ++;;Bypasses for Mac instructions, because of accumulator cache. ++;;Set latency as low as possible in order to let the compiler let ++;;mul -> mac and mac -> mac combinations which use the same ++;;accumulator cache be placed close together to avoid any ++;;instructions which can ruin the accumulator cache come inbetween. ++(define_bypass 4 "machh_w_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass") ++(define_bypass 5 "macww_w_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass") ++(define_bypass 7 "macww_d_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass") ++ ++(define_bypass 3 "mulhh_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass") ++(define_bypass 4 "mulww_w_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass") ++(define_bypass 6 "mulww_d_op" "alu_op,alu2_op,alu_sat_op,load_op" "avr32_mul_waw_bypass") ++ ++ ++;;Bypasses for all mul/mac instructions followed by an instruction ++;;which reads the output AND writes the result to the same register. ++;;This will generate an Write After Write hazard which gives an ++;;extra cycle before the result is ready. ++(define_bypass 0 "machh_w_op" "machh_w_op" "avr32_valid_macmac_bypass") ++(define_bypass 0 "macww_w_op" "macww_w_op" "avr32_valid_macmac_bypass") ++(define_bypass 0 "macww_d_op" "macww_d_op" "avr32_valid_macmac_bypass") ++ ++(define_bypass 0 "mulhh_op" "machh_w_op" "avr32_valid_mulmac_bypass") ++(define_bypass 0 "mulww_w_op" "macww_w_op" "avr32_valid_mulmac_bypass") ++(define_bypass 0 "mulww_d_op" "macww_d_op" "avr32_valid_mulmac_bypass") ++ ++;;Branch and call instructions ++;;We assume that all branches and rcalls are predicted correctly :-) ++;;while calls use a lot of cycles. ++(define_insn_reservation "branch_op" 0 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "branch")) ++ "nothing") ++ ++(define_insn_reservation "call_op" 10 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "call")) ++ "nothing") ++ ++ ++;;Load store instructions ++(define_insn_reservation "load_op" 2 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "load")) ++ "is,da,d") ++ ++(define_insn_reservation "load_rm_op" 3 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "load_rm")) ++ "is,da,d") ++ ++ ++(define_insn_reservation "store_op" 0 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "store")) ++ "is,da,d") ++ ++ ++(define_insn_reservation "load_double_op" 3 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "load2")) ++ "is,da,da+d,d") ++ ++(define_insn_reservation "load_quad_op" 4 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "load4")) ++ "is,da,da+d,da+d,d") ++ ++(define_insn_reservation "store_double_op" 0 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "store2")) ++ "is,da,da+d,d") ++ ++ ++(define_insn_reservation "store_quad_op" 0 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "store4")) ++ "is,da,da+d,da+d,d") ++ ++;;For store the operand to write to memory is read in d and ++;;the real latency between any instruction and a store is therefore ++;;one less than for the instructions which reads the operands in the first ++;;excecution stage ++(define_bypass 2 "load_double_op" "store_double_op" "avr32_store_bypass") ++(define_bypass 3 "load_quad_op" "store_quad_op" "avr32_store_bypass") ++(define_bypass 1 "load_op" "store_op" "avr32_store_bypass") ++(define_bypass 2 "load_rm_op" "store_op" "avr32_store_bypass") ++(define_bypass 1 "alu_sat_op" "store_op" "avr32_store_bypass") ++(define_bypass 1 "alu2_op" "store_op" "avr32_store_bypass") ++(define_bypass 1 "mulhh_op" "store_op" "avr32_store_bypass") ++(define_bypass 2 "mulww_w_op" "store_op" "avr32_store_bypass") ++(define_bypass 4 "mulww_d_op" "store_op" "avr32_store_bypass" ) ++(define_bypass 2 "machh_w_op" "store_op" "avr32_store_bypass") ++(define_bypass 3 "macww_w_op" "store_op" "avr32_store_bypass") ++(define_bypass 5 "macww_d_op" "store_op" "avr32_store_bypass") ++ ++ ++; Bypass for load double operation. If only the first loaded word is needed ++; then the latency is 2 ++(define_bypass 2 "load_double_op" ++ "load_op,load_rm_op,alu_sat_op, alu2_op, alu_op, mulhh_op, mulww_w_op, ++ mulww_d_op, machh_w_op, macww_w_op, macww_d_op" ++ "avr32_valid_load_double_bypass") ++ ++; Bypass for load quad operation. If only the first or second loaded word is needed ++; we set the latency to 2 ++(define_bypass 2 "load_quad_op" ++ "load_op,load_rm_op,alu_sat_op, alu2_op, alu_op, mulhh_op, mulww_w_op, ++ mulww_d_op, machh_w_op, macww_w_op, macww_d_op" ++ "avr32_valid_load_quad_bypass") ++ ++ ++;;****************************************************************************** ++;; End of Automaton pipeline description for avr32 ++;;****************************************************************************** ++ ++ ++ ++;;============================================================================= ++;; move ++;;----------------------------------------------------------------------------- ++ ++;;== char - 8 bits ============================================================ ++(define_expand "movqi" ++ [(set (match_operand:QI 0 "nonimmediate_operand" "") ++ (match_operand:QI 1 "general_operand" ""))] ++ "" ++ { ++ if ( !no_new_pseudos ){ ++ if (GET_CODE (operands[1]) == MEM && optimize){ ++ rtx reg = gen_reg_rtx (SImode); ++ ++ emit_insn (gen_zero_extendqisi2 (reg, operands[1])); ++ operands[1] = gen_lowpart (QImode, reg); ++ } ++ ++ /* One of the ops has to be in a register. */ ++ if (GET_CODE (operands[0]) == MEM) ++ operands[1] = force_reg (QImode, operands[1]); ++ } ++ ++ }) ++ ++(define_insn "*movqi_internal" ++ [(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,m,r") ++ (match_operand:QI 1 "general_operand" "rKs08,m,r,i"))] ++ "" ++ "@ ++ mov\t%0, %1 ++ ld.ub\t%0, %1 ++ st.b\t%0, %1 ++ mov\t%0, %1" ++ [(set_attr "length" "2,4,4,4") ++ (set_attr "type" "alu,load_rm,store,alu")]) ++ ++ ++ ++;;== short - 16 bits ========================================================== ++(define_expand "movhi" ++ [(set (match_operand:HI 0 "nonimmediate_operand" "") ++ (match_operand:HI 1 "general_operand" ""))] ++ "" ++ { ++ if ( !no_new_pseudos ){ ++ if (GET_CODE (operands[1]) == MEM && optimize){ ++ rtx reg = gen_reg_rtx (SImode); ++ ++ emit_insn (gen_extendhisi2 (reg, operands[1])); ++ operands[1] = gen_lowpart (HImode, reg); ++ } ++ ++ /* One of the ops has to be in a register. */ ++ if (GET_CODE (operands[0]) == MEM) ++ operands[1] = force_reg (HImode, operands[1]); ++ } ++ ++ }) ++ ++(define_insn "*movhi_internal" ++ [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,m,r") ++ (match_operand:HI 1 "general_operand" "rKs08,m,r,i"))] ++ "" ++ "@ ++ mov\t%0, %1 ++ ld.sh\t%0, %1 ++ st.h\t%0, %1 ++ mov\t%0, %1" ++ [(set_attr "length" "2,4,4,4") ++ (set_attr "type" "alu,load_rm,store,alu")]) ++ ++ ++;;== int - 32 bits ============================================================ ++ ++(define_expand "movmisalignsi" ++ [(set (match_operand:SI 0 "nonimmediate_operand" "") ++ (match_operand:SI 1 "nonimmediate_operand" ""))] ++ "TARGET_UNALIGNED_WORD" ++ { ++ } ++) ++ ++(define_expand "mov<mode>" ++ [(set (match_operand:MOVM 0 "nonimmediate_operand" "") ++ (match_operand:MOVM 1 "general_operand" ""))] ++ "" ++ { ++ ++ /* One of the ops has to be in a register. */ ++ if (GET_CODE (operands[0]) == MEM) ++ operands[1] = force_reg (<MODE>mode, operands[1]); ++ ++ ++ /* Check for out of range immediate constants as these may ++ occur during reloading, since it seems like reload does ++ not check if the immediate is legitimate. Don't know if ++ this is a bug? */ ++ if ( reload_in_progress ++ && GET_CODE(operands[1]) == CONST_INT ++ && !avr32_const_ok_for_constraint_p(INTVAL(operands[1]), 'K', "Ks21") ){ ++ operands[1] = force_const_mem(SImode, operands[1]); ++ } ++ ++ if ( (flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS) ++ && !avr32_legitimate_pic_operand_p(operands[1]) ) ++ operands[1] = legitimize_pic_address (operands[1], <MODE>mode, ++ (no_new_pseudos ? operands[0] : 0)); ++ else if ( flag_pic && avr32_address_operand(operands[1], GET_MODE(operands[1])) ) ++ /* If we have an address operand then this function uses the pic register. */ ++ current_function_uses_pic_offset_table = 1; ++ }) ++ ++ ++(define_insn "mov<mode>_internal" ++ [(set (match_operand:MOVM 0 "nonimmediate_operand" "=r,r,r,m,r") ++ (match_operand:MOVM 1 "general_operand" "rKs08,Ks21,m,r,W"))] ++ "" ++ { ++ switch (which_alternative) { ++ case 0: ++ case 1: return "mov\t%0, %1"; ++ case 2: ++ if ( (REG_P(XEXP(operands[1], 0)) ++ && REGNO(XEXP(operands[1], 0)) == SP_REGNUM) ++ || (GET_CODE(XEXP(operands[1], 0)) == PLUS ++ && REGNO(XEXP(XEXP(operands[1], 0), 0)) == SP_REGNUM ++ && GET_CODE(XEXP(XEXP(operands[1], 0), 1)) == CONST_INT ++ && INTVAL(XEXP(XEXP(operands[1], 0), 1)) % 4 == 0 ++ && INTVAL(XEXP(XEXP(operands[1], 0), 1)) <= 0x1FC) ) ++ return "lddsp\t%0, %1"; ++ else if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1])) ) ++ return "lddpc\t%0, %1"; ++ else ++ return "ld.w\t%0, %1"; ++ case 3: ++ if ( (REG_P(XEXP(operands[0], 0)) ++ && REGNO(XEXP(operands[0], 0)) == SP_REGNUM) ++ || (GET_CODE(XEXP(operands[0], 0)) == PLUS ++ && REGNO(XEXP(XEXP(operands[0], 0), 0)) == SP_REGNUM ++ && GET_CODE(XEXP(XEXP(operands[0], 0), 1)) == CONST_INT ++ && INTVAL(XEXP(XEXP(operands[0], 0), 1)) % 4 == 0 ++ && INTVAL(XEXP(XEXP(operands[0], 0), 1)) <= 0x1FC) ) ++ return "stdsp\t%0, %1"; ++ else ++ return "st.w\t%0, %1"; ++ case 4: ++ if ( TARGET_HAS_ASM_ADDR_PSEUDOS ) ++ return "lda.w\t%0, %1"; ++ else ++ return "ld.w\t%0, r6[%1@got]"; ++ default: ++ abort(); ++ } ++ } ++ ++ [(set_attr "length" "2,4,4,4,8") ++ (set_attr "type" "alu,alu,load,store,load") ++ (set_attr "cc" "none,none,none,none,clobber")]) ++ ++ ++;; These instructions are for loading constants which cannot be loaded ++;; directly from the constant pool because the offset is too large ++;; high and lo_sum are used even tough for our case it should be ++;; low and high sum :-) ++(define_insn "mov_symbol_lo" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (high:SI (match_operand:SI 1 "immediate_operand" "i" )))] ++ "" ++ "mov\t%0, lo(%1)" ++ [(set_attr "type" "alu") ++ (set_attr "length" "4")] ++) ++ ++(define_insn "add_symbol_hi" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (lo_sum:SI (match_dup 0) ++ (match_operand:SI 1 "immediate_operand" "i" )))] ++ "" ++ "orh\t%0, hi(%1)" ++ [(set_attr "type" "alu") ++ (set_attr "length" "4")] ++) ++ ++ ++ ++;; When generating pic, we need to load the symbol offset into a register. ++;; So that the optimizer does not confuse this with a normal symbol load ++;; we use an unspec. The offset will be loaded from a constant pool entry, ++;; since that is the only type of relocation we can use. ++(define_insn "pic_load_addr" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (unspec:SI [(match_operand:SI 1 "" "")] UNSPEC_PIC_SYM))] ++ "flag_pic && CONSTANT_POOL_ADDRESS_P(XEXP(operands[1], 0))" ++ "lddpc\t%0, %1" ++ [(set_attr "type" "load") ++ (set_attr "length" "4")] ++) ++ ++(define_insn "pic_compute_got_from_pc" ++ [(set (match_operand:SI 0 "register_operand" "+r") ++ (unspec:SI [(minus:SI (pc) ++ (match_dup 0))] UNSPEC_PIC_BASE)) ++ (use (label_ref (match_operand 1 "" "")))] ++ "flag_pic" ++ { ++ (*targetm.asm_out.internal_label) (asm_out_file, "L", ++ CODE_LABEL_NUMBER (operands[1])); ++ return \"rsub\t%0, pc\"; ++ } ++ [(set_attr "cc" "clobber") ++ (set_attr "length" "2")] ++) ++ ++;;== long long int - 64 bits ================================================== ++(define_expand "movdi" ++ [(set (match_operand:DI 0 "nonimmediate_operand" "") ++ (match_operand:DI 1 "general_operand" ""))] ++ "" ++ { ++ ++ /* One of the ops has to be in a register. */ ++ if (GET_CODE (operands[0]) != REG) ++ operands[1] = force_reg (DImode, operands[1]); ++ ++ }) ++ ++ ++(define_insn_and_split "*movdi_internal" ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,r,r,r,m") ++ (match_operand:DI 1 "general_operand" "r,Ks08,Ks21,G,m,r"))] ++ "" ++ { ++ switch (which_alternative ){ ++ case 1: ++ case 2: ++ if ( INTVAL(operands[1]) < 0 ) ++ return "mov\t%0, %1\;mov\t%m0, -1"; ++ else ++ return "mov\t%0, %1\;mov\t%m0, 0"; ++ case 0: ++ case 3: ++ return "mov\t%0, %1\;mov\t%m0, %m1"; ++ case 4: ++ if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1]))) ++ return "ld.d\t%0, pc[%1 - .]"; ++ else ++ return "ld.d\t%0, %1"; ++ case 5: ++ return "st.d\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ "reload_completed && ++ (REG_P(operands[0]) && ++ (REG_P(operands[1]) || avr32_const_double_immediate(operands[1]) || ++ ((GET_CODE(operands[1]) == CONST_INT) && avr32_const_ok_for_constraint_p(INTVAL(operands[1]), 'K', \"Ks21\")) ))" ++ [(set (match_dup 0) (match_dup 1)) ++ (set (match_dup 2) (match_dup 3))] ++ { ++ operands[2] = gen_highpart (SImode, operands[0]); ++ operands[0] = gen_lowpart (SImode, operands[0]); ++ if ( REG_P(operands[1]) ){ ++ operands[3] = gen_highpart(SImode, operands[1]); ++ operands[1] = gen_lowpart(SImode, operands[1]); ++ } else if ( GET_CODE(operands[1]) == CONST_DOUBLE ){ ++ operands[3] = GEN_INT(CONST_DOUBLE_LOW(operands[1])); ++ operands[1] = GEN_INT(CONST_DOUBLE_HIGH(operands[1])); ++ } else if ( GET_CODE(operands[1]) == CONST_INT ){ ++ operands[3] = GEN_INT((INTVAL(operands[1]) < 0) ? -1 : 0); ++ operands[1] = operands[1]; ++ } else { ++ internal_error("Illegal operand[1] for movdi split!"); ++ } ++ } ++ ++ [(set_attr "length" "4,6,8,8,4,4") ++ (set_attr "type" "alu2,alu2,alu2,alu2,load2,store2")]) ++ ++ ++;;== 128 bits ================================================== ++(define_expand "movti" ++ [(set (match_operand:TI 0 "nonimmediate_operand" "") ++ (match_operand:TI 1 "general_operand" ""))] ++ "" ++ { ++ ++ /* One of the ops has to be in a register. */ ++ if (GET_CODE (operands[0]) != REG) ++ operands[1] = force_reg (TImode, operands[1]); ++ ++ /* We must fix any pre_dec for loads and post_inc stores */ ++ if ( GET_CODE (operands[0]) == MEM ++ && GET_CODE (XEXP(operands[0],0)) == POST_INC ){ ++ emit_move_insn(gen_rtx_MEM(TImode, XEXP(XEXP(operands[0],0),0)), operands[1]); ++ emit_insn(gen_addsi3(XEXP(XEXP(operands[0],0),0), XEXP(XEXP(operands[0],0),0), GEN_INT(GET_MODE_SIZE(TImode)))); ++ DONE; ++ } ++ ++ if ( GET_CODE (operands[1]) == MEM ++ && GET_CODE (XEXP(operands[1],0)) == PRE_DEC ){ ++ emit_insn(gen_addsi3(XEXP(XEXP(operands[1],0),0), XEXP(XEXP(operands[1],0),0), GEN_INT(-GET_MODE_SIZE(TImode)))); ++ emit_move_insn(operands[0], gen_rtx_MEM(TImode, XEXP(XEXP(operands[1],0),0))); ++ DONE; ++ } ++ ++ if (GET_CODE (operands[1]) == CONST_INT){ ++ unsigned int sign_extend = (INTVAL(operands[1]) < 0) ? 0xFFFFFFFF : 0; ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 12), operands[1]); ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 8), GEN_INT(sign_extend)); ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 4), GEN_INT(sign_extend)); ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 0), GEN_INT(sign_extend)); ++ DONE; ++ } ++ ++ if (GET_CODE (operands[0]) == REG ++ && GET_CODE (operands[1]) == REG){ ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 12), gen_rtx_SUBREG(SImode, operands[1], 12)); ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 8), gen_rtx_SUBREG(SImode, operands[1], 8)); ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 4), gen_rtx_SUBREG(SImode, operands[1], 4)); ++ emit_move_insn(gen_rtx_SUBREG(SImode, operands[0], 0), gen_rtx_SUBREG(SImode, operands[1], 0)); ++ DONE; ++ } ++ }) ++ ++ ++(define_insn "*movti_internal" ++ [(set (match_operand:TI 0 "nonimmediate_operand" "=r,r, <RKu00,r") ++ (match_operand:TI 1 "loadti_operand" " r,RKu00>,r,m"))] ++ "" ++ "@ ++ mov\t%T0, %T1\;mov\t%U0, %U1\;mov\t%L0, %L1\;mov\t%B0, %B1 ++ ldm\t%p1, %0 ++ stm\t%p0, %1 ++ ldm\t%p1, %0" ++ [(set_attr "length" "8,4,4,4") ++ (set_attr "type" "alu,load4,store4,load4")]) ++ ++ ++;;== float - 32 bits ========================================================== ++(define_expand "movsf" ++ [(set (match_operand:SF 0 "nonimmediate_operand" "") ++ (match_operand:SF 1 "general_operand" ""))] ++ "" ++ { ++ ++ ++ /* One of the ops has to be in a register. */ ++ if (GET_CODE (operands[0]) != REG) ++ operands[1] = force_reg (SFmode, operands[1]); ++ ++ }) ++ ++(define_insn "*movsf_internal" ++ [(set (match_operand:SF 0 "nonimmediate_operand" "=r,r,r,m") ++ (match_operand:SF 1 "general_operand" "r,G,m,r"))] ++ "TARGET_SOFT_FLOAT" ++ { ++ switch (which_alternative) { ++ case 0: ++ case 1: return "mov\t%0, %1"; ++ case 2: ++ if ( (REG_P(XEXP(operands[1], 0)) ++ && REGNO(XEXP(operands[1], 0)) == SP_REGNUM) ++ || (GET_CODE(XEXP(operands[1], 0)) == PLUS ++ && REGNO(XEXP(XEXP(operands[1], 0), 0)) == SP_REGNUM ++ && GET_CODE(XEXP(XEXP(operands[1], 0), 1)) == CONST_INT ++ && INTVAL(XEXP(XEXP(operands[1], 0), 1)) % 4 == 0 ++ && INTVAL(XEXP(XEXP(operands[1], 0), 1)) <= 0x1FC) ) ++ return "lddsp\t%0, %1"; ++ else if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1])) ) ++ return "lddpc\t%0, %1"; ++ else ++ return "ld.w\t%0, %1"; ++ case 3: ++ if ( (REG_P(XEXP(operands[0], 0)) ++ && REGNO(XEXP(operands[0], 0)) == SP_REGNUM) ++ || (GET_CODE(XEXP(operands[0], 0)) == PLUS ++ && REGNO(XEXP(XEXP(operands[0], 0), 0)) == SP_REGNUM ++ && GET_CODE(XEXP(XEXP(operands[0], 0), 1)) == CONST_INT ++ && INTVAL(XEXP(XEXP(operands[0], 0), 1)) % 4 == 0 ++ && INTVAL(XEXP(XEXP(operands[0], 0), 1)) <= 0x1FC) ) ++ return "stdsp\t%0, %1"; ++ else ++ return "st.w\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ ++ [(set_attr "length" "2,4,4,4") ++ (set_attr "type" "alu,alu,load,store")]) ++ ++ ++ ++;;== double - 64 bits ========================================================= ++(define_expand "movdf" ++ [(set (match_operand:DF 0 "nonimmediate_operand" "") ++ (match_operand:DF 1 "general_operand" ""))] ++ "" ++ { ++ /* One of the ops has to be in a register. */ ++ if (GET_CODE (operands[0]) != REG){ ++ operands[1] = force_reg (DFmode, operands[1]); ++ } ++ }) ++ ++ ++(define_insn_and_split "*movdf_internal" ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=r,r,r,m") ++ (match_operand:DF 1 "general_operand" "r,G,m,r"))] ++ "TARGET_SOFT_FLOAT" ++ { ++ switch (which_alternative ){ ++ case 0: ++ case 1: ++ return "mov\t%0, %1\;mov\t%m0, %m1"; ++ case 2: ++ if ( avr32_const_pool_ref_operand(operands[1], GET_MODE(operands[1]))) ++ return "ld.d\t%0, pc[%1 - .]"; ++ else ++ return "ld.d\t%0, %1"; ++ case 3: ++ return "st.d\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ "TARGET_SOFT_FLOAT ++ && reload_completed ++ && (REG_P(operands[0]) && REG_P(operands[1]))" ++ [(set (match_dup 0) (match_dup 1)) ++ (set (match_dup 2) (match_dup 3))] ++ " ++ { ++ operands[2] = gen_highpart (SImode, operands[0]); ++ operands[0] = gen_lowpart (SImode, operands[0]); ++ operands[3] = gen_highpart(SImode, operands[1]); ++ operands[1] = gen_lowpart(SImode, operands[1]); ++ } ++ " ++ ++ [(set_attr "length" "4,8,4,4") ++ (set_attr "type" "alu2,alu2,load2,store2")]) ++ ++ ++ ++ ++;;============================================================================= ++;; Move chunks of memory ++;;============================================================================= ++ ++(define_expand "movmemsi" ++ [(match_operand:BLK 0 "general_operand" "") ++ (match_operand:BLK 1 "general_operand" "") ++ (match_operand:SI 2 "const_int_operand" "") ++ (match_operand:SI 3 "const_int_operand" "")] ++ "" ++ " ++ if (avr32_gen_movmemsi (operands)) ++ DONE; ++ FAIL; ++ " ++ ) ++ ++ ++ ++ ++;;============================================================================= ++;; Bit field instructions ++;;----------------------------------------------------------------------------- ++;; Instructions to insert or extract bit-fields ++;;============================================================================= ++ ++(define_insn "insv" ++ [ (set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r") ++ (match_operand:SI 1 "immediate_operand" "Ku05") ++ (match_operand:SI 2 "immediate_operand" "Ku05")) ++ (match_operand 3 "register_operand" "r"))] ++ "" ++ "bfins\t%0, %3, %2, %1" ++ [(set_attr "type" "alu") ++ (set_attr "length" "4") ++ (set_attr "cc" "set_ncz")]) ++ ++ ++ ++ ++(define_insn "extv" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (sign_extract:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "immediate_operand" "Ku05") ++ (match_operand:SI 3 "immediate_operand" "Ku05")))] ++ "" ++ "bfexts\t%0, %1, %3, %2" ++ [(set_attr "type" "alu") ++ (set_attr "length" "4") ++ (set_attr "cc" "set_ncz")]) ++ ++ ++(define_insn "extzv" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (zero_extract:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "immediate_operand" "Ku05") ++ (match_operand:SI 3 "immediate_operand" "Ku05")))] ++ "" ++ "bfextu\t%0, %1, %3, %2" ++ [(set_attr "type" "alu") ++ (set_attr "length" "4") ++ (set_attr "cc" "set_ncz")]) ++ ++ ++ ++;;============================================================================= ++;; Some peepholes for avoiding unnecessary cast instructions ++;; followed by bfins. ++;;----------------------------------------------------------------------------- ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (zero_extend:SI (match_operand:QI 1 "register_operand" ""))) ++ (set (zero_extract:SI (match_operand 2 "register_operand" "") ++ (match_operand:SI 3 "immediate_operand" "") ++ (match_operand:SI 4 "immediate_operand" "")) ++ (match_dup 0))] ++ "((peep2_reg_dead_p(2, operands[0]) && ++ (INTVAL(operands[3]) <= 8)))" ++ [(set (zero_extract:SI (match_dup 2) ++ (match_dup 3) ++ (match_dup 4)) ++ (match_dup 1))] ++ ) ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (zero_extend:SI (match_operand:HI 1 "register_operand" ""))) ++ (set (zero_extract:SI (match_operand 2 "register_operand" "") ++ (match_operand:SI 3 "immediate_operand" "") ++ (match_operand:SI 4 "immediate_operand" "")) ++ (match_dup 0))] ++ "((peep2_reg_dead_p(2, operands[0]) && ++ (INTVAL(operands[3]) <= 16)))" ++ [(set (zero_extract:SI (match_dup 2) ++ (match_dup 3) ++ (match_dup 4)) ++ (match_dup 1))] ++ ) ++ ++;;============================================================================= ++;; push bytes ++;;----------------------------------------------------------------------------- ++;; Implements the push instruction ++;;============================================================================= ++(define_insn "pushm" ++ [(set (mem:BLK (pre_dec:BLK (reg:SI SP_REGNUM))) ++ (unspec:BLK [(match_operand 0 "const_int_operand" "")] ++ UNSPEC_PUSHM))] ++ "" ++ { ++ if (INTVAL(operands[0])) { ++ return "pushm\t%r0"; ++ } else { ++ return ""; ++ } ++ } ++ [(set_attr "type" "store") ++ (set_attr "length" "2") ++ (set_attr "cc" "none")]) ++ ++(define_insn "stm" ++ [(unspec [(match_operand 0 "register_operand" "r") ++ (match_operand 1 "const_int_operand" "") ++ (match_operand 2 "const_int_operand" "")] ++ UNSPEC_STM)] ++ "" ++ { ++ if (INTVAL(operands[1])) { ++ if (INTVAL(operands[2]) != 0) ++ return "stm\t--%0, %s1"; ++ else ++ return "stm\t%0, %s1"; ++ } else { ++ return ""; ++ } ++ } ++ [(set_attr "type" "store") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++ ++ ++(define_insn "popm" ++ [(unspec [(match_operand 0 "const_int_operand" "")] ++ UNSPEC_POPM)] ++ "" ++ { ++ if (INTVAL(operands[0])) { ++ return "popm %r0"; ++ } else { ++ return ""; ++ } ++ } ++ [(set_attr "type" "load") ++ (set_attr "length" "2")]) ++ ++ ++ ++;;============================================================================= ++;; add ++;;----------------------------------------------------------------------------- ++;; Adds reg1 with reg2 and puts the result in reg0. ++;;============================================================================= ++(define_insn "add<mode>3" ++ [(set (match_operand:INTM 0 "register_operand" "=r,r,r,r,r") ++ (plus:INTM (match_operand:INTM 1 "register_operand" "%0,r,0,r,0") ++ (match_operand:INTM 2 "avr32_add_operand" "r,r,Is08,Is16,Is21")))] ++ "" ++ "@ ++ add %0, %2 ++ add %0, %1, %2 ++ sub %0, %n2 ++ sub %0, %1, %n2 ++ sub %0, %n2" ++ ++ [(set_attr "length" "2,4,2,4,4") ++ (set_attr "cc" "<INTM:alu_cc_attr>")]) ++ ++(define_insn "*addsi3_lsl" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (plus:SI (ashift:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 3 "avr32_add_shift_immediate_operand" "Ku02")) ++ (match_operand:SI 2 "register_operand" "r")))] ++ "" ++ "add %0, %2, %1 << %3" ++ [(set_attr "length" "4") ++ (set_attr "cc" "set_vncz")]) ++ ++ ++(define_insn "*addsi3_mul" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 3 "immediate_operand" "Ku04" )) ++ (match_operand:SI 2 "register_operand" "r")))] ++ "(INTVAL(operands[3]) == 0) || (INTVAL(operands[3]) == 2) || ++ (INTVAL(operands[3]) == 4) || (INTVAL(operands[3]) == 8)" ++ "add %0, %2, %1 << %p3" ++ [(set_attr "length" "4") ++ (set_attr "cc" "set_vncz")]) ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (ashift:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" ""))) ++ (set (match_operand:SI 3 "register_operand" "") ++ (plus:SI (match_dup 0) ++ (match_operand:SI 4 "register_operand" "")))] ++ "(peep2_reg_dead_p(2, operands[0]) && ++ (INTVAL(operands[2]) < 4 && INTVAL(operands[2]) > 0))" ++ [(set (match_dup 3) ++ (plus:SI (ashift:SI (match_dup 1) ++ (match_dup 2)) ++ (match_dup 4)))] ++ ) ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (ashift:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" ""))) ++ (set (match_operand:SI 3 "register_operand" "") ++ (plus:SI (match_operand:SI 4 "register_operand" "") ++ (match_dup 0)))] ++ "(peep2_reg_dead_p(2, operands[0]) && ++ (INTVAL(operands[2]) < 4 && INTVAL(operands[2]) > 0))" ++ [(set (match_dup 3) ++ (plus:SI (ashift:SI (match_dup 1) ++ (match_dup 2)) ++ (match_dup 4)))] ++ ) ++ ++(define_insn "adddi3" ++ [(set (match_operand:DI 0 "register_operand" "=r,r") ++ (plus:DI (match_operand:DI 1 "register_operand" "%r,0") ++ (match_operand:DI 2 "register_operand" "r,r")))] ++ "" ++ "@ ++ add %0, %1, %2\;adc %m0, %m1, %m2 ++ add %0, %2\;adc %m0, %m0, %m2" ++ [(set_attr "length" "8,6") ++ (set_attr "type" "alu2") ++ (set_attr "cc" "set_vncz")]) ++ ++ ++ ++;;============================================================================= ++;; subtract ++;;----------------------------------------------------------------------------- ++;; Subtract reg2 or immediate value from reg0 and puts the result in reg0. ++;;============================================================================= ++ ++(define_peephole2 ++ [(set (match_operand:QI 0 "register_operand" "") ++ (minus:QI (match_operand:QI 1 "general_operand" "") ++ (match_operand:QI 2 "general_operand" ""))) ++ (set (match_operand:QI 3 "register_operand" "") ++ (match_dup 0))] ++ "peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 3) ++ (minus:QI (match_dup 1) (match_dup 2)))] ++ ) ++ ++(define_peephole ++ [(set (match_operand:QI 0 "register_operand" "") ++ (minus:QI (match_operand:QI 1 "immediate_operand" "Ks08") ++ (match_operand:QI 2 "register_operand" "r"))) ++ (set (match_operand:QI 3 "register_operand" "r") ++ (match_dup 0))] ++ "dead_or_set_p(insn, operands[0])" ++ "rsub %3, %2, %1" ++ [(set_attr "length" "4") ++ (set_attr "cc" "clobber")] ++ ) ++ ++ ++ ++(define_insn "sub<mode>3" ++ [(set (match_operand:INTM 0 "general_operand" "=r,r,r,r,r,r,r") ++ (minus:INTM (match_operand:INTM 1 "nonmemory_operand" "0,r,0,r,0,r,Ks08") ++ (match_operand:INTM 2 "nonmemory_operand" "r,r,Ks08,Ks16,Ks21,0,r")))] ++ "" ++ "@ ++ sub %0, %2 ++ sub %0, %1, %2 ++ sub %0, %2 ++ sub %0, %1, %2 ++ sub %0, %2 ++ rsub %0, %1 ++ rsub %0, %2, %1" ++ [(set_attr "length" "2,4,2,4,4,2,4") ++ (set_attr "cc" "<INTM:alu_cc_attr>")]) ++ ++(define_insn "*sub<mode>3_mul" ++ [(set (match_operand:INTM 0 "register_operand" "=r,r,r") ++ (minus:INTM (match_operand:INTM 1 "register_operand" "r,0,r") ++ (mult:INTM (match_operand:INTM 2 "register_operand" "r,r,0") ++ (match_operand:SI 3 "immediate_operand" "Ku04,Ku04,Ku04" ))))] ++ "(INTVAL(operands[3]) == 0) || (INTVAL(operands[3]) == 2) || ++ (INTVAL(operands[3]) == 4) || (INTVAL(operands[3]) == 8)" ++ "@ ++ sub %0, %1, %2 << %p3 ++ sub %0, %0, %2 << %p3 ++ sub %0, %1, %0 << %p3" ++ [(set_attr "length" "4,4,4") ++ (set_attr "cc" "<INTM:alu_cc_attr>")]) ++ ++(define_insn "*sub<mode>3_lsl" ++ [(set (match_operand:INTM 0 "register_operand" "=r") ++ (minus:INTM (ashift:INTM (match_operand:INTM 1 "register_operand" "r") ++ (match_operand:SI 3 "avr32_add_shift_immediate_operand" "Ku02")) ++ (match_operand:INTM 2 "register_operand" "r")))] ++ "" ++ "sub %0, %2, %1 << %3" ++ [(set_attr "length" "4") ++ (set_attr "cc" "<INTM:alu_cc_attr>")]) ++ ++ ++(define_insn "subdi3" ++ [(set (match_operand:DI 0 "register_operand" "=r,r") ++ (minus:DI (match_operand:DI 1 "register_operand" "%r,0") ++ (match_operand:DI 2 "register_operand" "r,r")))] ++ "" ++ "@ ++ sub %0, %1, %2\;sbc %m0, %m1, %m2 ++ sub %0, %2\;sbc %m0, %m0, %m2" ++ [(set_attr "length" "8,6") ++ (set_attr "type" "alu2") ++ (set_attr "cc" "set_vncz")]) ++ ++ ++ ++;;============================================================================= ++;; multiply ++;;----------------------------------------------------------------------------- ++;; Multiply op1 and op2 and put the value in op0. ++;;============================================================================= ++ ++ ++(define_insn "mulqi3" ++ [(set (match_operand:QI 0 "register_operand" "=r,r,r") ++ (mult:QI (match_operand:QI 1 "register_operand" "%0,r,r") ++ (match_operand:QI 2 "avr32_mul_operand" "r,r,Ks08")))] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "mul %0, %2"; ++ case 1: ++ return "mul %0, %1, %2"; ++ case 2: ++ return "mul %0, %1, %2"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "type" "mulww_w,mulww_w,mulwh") ++ (set_attr "length" "2,4,4") ++ (set_attr "cc" "none")]) ++ ++(define_insn "mulsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r") ++ (mult:SI (match_operand:SI 1 "register_operand" "%0,r,r") ++ (match_operand:SI 2 "avr32_mul_operand" "r,r,Ks08")))] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "mul %0, %2"; ++ case 1: ++ return "mul %0, %1, %2"; ++ case 2: ++ return "mul %0, %1, %2"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "type" "mulww_w,mulww_w,mulwh") ++ (set_attr "length" "2,4,4") ++ (set_attr "cc" "none")]) ++ ++ ++(define_insn "mulhisi3" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (mult:SI ++ (sign_extend:SI (match_operand:HI 1 "register_operand" "%r")) ++ (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))] ++ "TARGET_DSP" ++ "mulhh.w %0, %1:b, %2:b" ++ [(set_attr "type" "mulhh") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++(define_peephole2 ++ [(match_scratch:DI 6 "r") ++ (set (match_operand:SI 0 "register_operand" "") ++ (mult:SI ++ (sign_extend:SI (match_operand:HI 1 "register_operand" "")) ++ (sign_extend:SI (match_operand:HI 2 "register_operand" "")))) ++ (set (match_operand:SI 3 "register_operand" "") ++ (ashiftrt:SI (match_dup 0) ++ (const_int 16)))] ++ "TARGET_DSP ++ && (peep2_reg_dead_p(1, operands[0]) || (REGNO(operands[0]) == REGNO(operands[3])))" ++ [(set (match_dup 4) (sign_extend:SI (match_dup 1))) ++ (set (match_dup 6) ++ (ashift:DI (mult:DI (sign_extend:DI (match_dup 4)) ++ (sign_extend:DI (match_dup 2))) ++ (const_int 16))) ++ (set (match_dup 3) (match_dup 5))] ++ ++ "{ ++ operands[4] = gen_rtx_REG(SImode, REGNO(operands[1])); ++ operands[5] = gen_highpart (SImode, operands[4]); ++ }" ++ ) ++ ++(define_insn "mulnhisi3" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (mult:SI ++ (sign_extend:SI (neg:HI (match_operand:HI 1 "register_operand" "r"))) ++ (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))] ++ "TARGET_DSP" ++ "mulnhh.w %0, %1:b, %2:b" ++ [(set_attr "type" "mulhh") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++(define_insn "machisi3" ++ [(set (match_operand:SI 0 "register_operand" "+r") ++ (plus:SI (mult:SI ++ (sign_extend:SI (match_operand:HI 1 "register_operand" "%r")) ++ (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))) ++ (match_dup 0)))] ++ "TARGET_DSP" ++ "machh.w %0, %1:b, %2:b" ++ [(set_attr "type" "machh_w") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++ ++ ++(define_insn "mulsidi3" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (mult:DI ++ (sign_extend:DI (match_operand:SI 1 "register_operand" "%r")) ++ (sign_extend:DI (match_operand:SI 2 "register_operand" "r"))))] ++ "" ++ "muls.d %0, %1, %2" ++ [(set_attr "type" "mulww_d") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++(define_insn "umulsidi3" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (mult:DI ++ (zero_extend:DI (match_operand:SI 1 "register_operand" "%r")) ++ (zero_extend:DI (match_operand:SI 2 "register_operand" "r"))))] ++ "" ++ "mulu.d %0, %1, %2" ++ [(set_attr "type" "mulww_d") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++(define_insn "*mulaccsi3" ++ [(set (match_operand:SI 0 "register_operand" "+r") ++ (plus:SI (mult:SI (match_operand:SI 1 "register_operand" "%r") ++ (match_operand:SI 2 "register_operand" "r")) ++ (match_dup 0)))] ++ "" ++ "mac %0, %1, %2" ++ [(set_attr "type" "macww_w") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++(define_insn "mulaccsidi3" ++ [(set (match_operand:DI 0 "register_operand" "+r") ++ (plus:DI (mult:DI ++ (sign_extend:DI (match_operand:SI 1 "register_operand" "%r")) ++ (sign_extend:DI (match_operand:SI 2 "register_operand" "r"))) ++ (match_dup 0)))] ++ "" ++ "macs.d %0, %1, %2" ++ [(set_attr "type" "macww_d") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++(define_insn "umulaccsidi3" ++ [(set (match_operand:DI 0 "register_operand" "+r") ++ (plus:DI (mult:DI ++ (zero_extend:DI (match_operand:SI 1 "register_operand" "%r")) ++ (zero_extend:DI (match_operand:SI 2 "register_operand" "r"))) ++ (match_dup 0)))] ++ "" ++ "macu.d %0, %1, %2" ++ [(set_attr "type" "macww_d") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++ ++ ++;; Try to avoid Write-After-Write hazards for mul operations ++;; if it can be done ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (mult:SI ++ (sign_extend:SI (match_operand 1 "general_operand" "")) ++ (sign_extend:SI (match_operand 2 "general_operand" "")))) ++ (set (match_dup 0) ++ (match_operator:SI 3 "alu_operator" [(match_dup 0) ++ (match_operand 4 "general_operand" "")]))] ++ "peep2_reg_dead_p(1, operands[2])" ++ [(set (match_dup 5) ++ (mult:SI ++ (sign_extend:SI (match_dup 1)) ++ (sign_extend:SI (match_dup 2)))) ++ (set (match_dup 0) ++ (match_op_dup 3 [(match_dup 5) ++ (match_dup 4)]))] ++ "{operands[5] = gen_rtx_REG(SImode, REGNO(operands[2]));}" ++ ) ++ ++ ++ ++;;============================================================================= ++;; DSP instructions ++;;============================================================================= ++(define_insn "mulsathh_h" ++ [(set (match_operand:HI 0 "register_operand" "=r") ++ (ss_truncate:HI (ashiftrt:SI (mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "%r")) ++ (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 15))))] ++ "TARGET_DSP" ++ "mulsathh.h\t%0, %1:b, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulhh")]) ++ ++(define_insn "mulsatrndhh_h" ++ [(set (match_operand:HI 0 "register_operand" "=r") ++ (ss_truncate:HI (ashiftrt:SI ++ (plus:SI (mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "%r")) ++ (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 1073741824)) ++ (const_int 15))))] ++ "TARGET_DSP" ++ "mulsatrndhh.h\t%0, %1:b, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulhh")]) ++ ++(define_insn "mulsathh_w" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (ss_truncate:SI (ashift:DI (mult:DI (sign_extend:DI (match_operand:HI 1 "register_operand" "%r")) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 1))))] ++ "TARGET_DSP" ++ "mulsathh.w\t%0, %1:b, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulhh")]) ++ ++(define_insn "mulsatwh_w" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (ss_truncate:SI (ashiftrt:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r")) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 15))))] ++ "TARGET_DSP" ++ "mulsatwh.w\t%0, %1, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulwh")]) ++ ++(define_insn "mulsatrndwh_w" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (ss_truncate:SI (ashiftrt:DI (plus:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r")) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 1073741824)) ++ (const_int 15))))] ++ "TARGET_DSP" ++ "mulsatrndwh.w\t%0, %1, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulwh")]) ++ ++(define_insn "macsathh_w" ++ [(set (match_operand:SI 0 "register_operand" "+r") ++ (plus:SI (match_dup 0) ++ (ss_truncate:SI (ashift:DI (mult:DI (sign_extend:DI (match_operand:HI 1 "register_operand" "%r")) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 1)))))] ++ "TARGET_DSP" ++ "macsathh.w\t%0, %1:b, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulhh")]) ++ ++ ++(define_insn "mulwh_d" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (ashift:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r")) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 16)))] ++ "TARGET_DSP" ++ "mulwh.d\t%0, %1, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulwh")]) ++ ++ ++(define_insn "mulnwh_d" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (ashift:DI (mult:DI (not:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r"))) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 16)))] ++ "TARGET_DSP" ++ "mulnwh.d\t%0, %1, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulwh")]) ++ ++(define_insn "macwh_d" ++ [(set (match_operand:DI 0 "register_operand" "+r") ++ (plus:DI (match_dup 0) ++ (ashift:DI (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "%r")) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r"))) ++ (const_int 16))))] ++ "TARGET_DSP" ++ "macwh.d\t%0, %1, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulwh")]) ++ ++(define_insn "machh_d" ++ [(set (match_operand:DI 0 "register_operand" "+r") ++ (plus:DI (match_dup 0) ++ (mult:DI (sign_extend:DI (match_operand:HI 1 "register_operand" "%r")) ++ (sign_extend:DI (match_operand:HI 2 "register_operand" "r")))))] ++ "TARGET_DSP" ++ "machh.d\t%0, %1:b, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "mulwh")]) ++ ++(define_insn "satadd_w" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (ss_plus:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r")))] ++ "TARGET_DSP" ++ "satadd.w\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "alu_sat")]) ++ ++(define_insn "satsub_w" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (ss_minus:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r")))] ++ "TARGET_DSP" ++ "satsub.w\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "alu_sat")]) ++ ++(define_insn "satadd_h" ++ [(set (match_operand:HI 0 "register_operand" "=r") ++ (ss_plus:HI (match_operand:HI 1 "register_operand" "r") ++ (match_operand:HI 2 "register_operand" "r")))] ++ "TARGET_DSP" ++ "satadd.h\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "alu_sat")]) ++ ++(define_insn "satsub_h" ++ [(set (match_operand:HI 0 "register_operand" "=r") ++ (ss_minus:HI (match_operand:HI 1 "register_operand" "r") ++ (match_operand:HI 2 "register_operand" "r")))] ++ "TARGET_DSP" ++ "satsub.h\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none") ++ (set_attr "type" "alu_sat")]) ++ ++ ++;;============================================================================= ++;; smin ++;;----------------------------------------------------------------------------- ++;; Set reg0 to the smallest value of reg1 and reg2. It is used for signed ++;; values in the registers. ++;;============================================================================= ++(define_insn "sminsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (smin:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r")))] ++ "" ++ "min %0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++;;============================================================================= ++;; smax ++;;----------------------------------------------------------------------------- ++;; Set reg0 to the largest value of reg1 and reg2. It is used for signed ++;; values in the registers. ++;;============================================================================= ++(define_insn "smaxsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (smax:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r")))] ++ "" ++ "max %0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++ ++;;============================================================================= ++;; Logical operations ++;;----------------------------------------------------------------------------- ++ ++;; Split up simple DImode logical operations. Simply perform the logical ++;; operation on the upper and lower halves of the registers. ++(define_split ++ [(set (match_operand:DI 0 "register_operand" "") ++ (match_operator:DI 6 "logical_binary_operator" ++ [(match_operand:DI 1 "register_operand" "") ++ (match_operand:DI 2 "register_operand" "")]))] ++ "reload_completed" ++ [(set (match_dup 0) (match_op_dup:SI 6 [(match_dup 1) (match_dup 2)])) ++ (set (match_dup 3) (match_op_dup:SI 6 [(match_dup 4) (match_dup 5)]))] ++ " ++ { ++ operands[3] = gen_highpart (SImode, operands[0]); ++ operands[0] = gen_lowpart (SImode, operands[0]); ++ operands[4] = gen_highpart (SImode, operands[1]); ++ operands[1] = gen_lowpart (SImode, operands[1]); ++ operands[5] = gen_highpart (SImode, operands[2]); ++ operands[2] = gen_lowpart (SImode, operands[2]); ++ }" ++) ++ ++;;============================================================================= ++;; Logical operations with shifted operand ++;;============================================================================= ++(define_insn "<code>si_lshift" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (logical:SI (match_operator:SI 4 "logical_shift_operator" ++ [(match_operand:SI 2 "register_operand" "r") ++ (match_operand:SI 3 "immediate_operand" "Ku05")]) ++ (match_operand:SI 1 "register_operand" "r")))] ++ "" ++ { ++ if ( GET_CODE(operands[4]) == ASHIFT ) ++ return "<logical_insn>\t%0, %1, %2 << %3"; ++ else ++ return "<logical_insn>\t%0, %1, %2 >> %3"; ++ } ++ ++ [(set_attr "cc" "set_z")] ++) ++ ++ ++;;************************************************ ++;; Peepholes for detecting logical operantions ++;; with shifted operands ++;;************************************************ ++ ++(define_peephole ++ [(set (match_operand:SI 3 "register_operand" "") ++ (match_operator:SI 5 "logical_shift_operator" ++ [(match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" "")])) ++ (set (match_operand:SI 0 "register_operand" "") ++ (logical:SI (match_operand:SI 4 "register_operand" "") ++ (match_dup 3)))] ++ "(dead_or_set_p(insn, operands[3])) || (REGNO(operands[3]) == REGNO(operands[0]))" ++ { ++ if ( GET_CODE(operands[5]) == ASHIFT ) ++ return "<logical_insn>\t%0, %4, %1 << %2"; ++ else ++ return "<logical_insn>\t%0, %4, %1 >> %2"; ++ } ++ [(set_attr "cc" "set_z")] ++ ) ++ ++(define_peephole ++ [(set (match_operand:SI 3 "register_operand" "") ++ (match_operator:SI 5 "logical_shift_operator" ++ [(match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" "")])) ++ (set (match_operand:SI 0 "register_operand" "") ++ (logical:SI (match_dup 3) ++ (match_operand:SI 4 "register_operand" "")))] ++ "(dead_or_set_p(insn, operands[3])) || (REGNO(operands[3]) == REGNO(operands[0]))" ++ { ++ if ( GET_CODE(operands[5]) == ASHIFT ) ++ return "<logical_insn>\t%0, %4, %1 << %2"; ++ else ++ return "<logical_insn>\t%0, %4, %1 >> %2"; ++ } ++ [(set_attr "cc" "set_z")] ++ ) ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (match_operator:SI 5 "logical_shift_operator" ++ [(match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" "")])) ++ (set (match_operand:SI 3 "register_operand" "") ++ (logical:SI (match_operand:SI 4 "register_operand" "") ++ (match_dup 0)))] ++ "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[3]) == REGNO(operands[0]))" ++ ++ [(set (match_dup 3) ++ (logical:SI (match_op_dup:SI 5 [(match_dup 1) (match_dup 2)]) ++ (match_dup 4)))] ++ ++ "" ++) ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (match_operator:SI 5 "logical_shift_operator" ++ [(match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" "")])) ++ (set (match_operand:SI 3 "register_operand" "") ++ (logical:SI (match_dup 0) ++ (match_operand:SI 4 "register_operand" "")))] ++ "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[3]) == REGNO(operands[0]))" ++ ++ [(set (match_dup 3) ++ (logical:SI (match_op_dup:SI 5 [(match_dup 1) (match_dup 2)]) ++ (match_dup 4)))] ++ ++ "" ++) ++ ++ ++;;============================================================================= ++;; and ++;;----------------------------------------------------------------------------- ++;; Store the result after a bitwise logical-and between reg0 and reg2 in reg0. ++;;============================================================================= ++ ++(define_insn "andnsi" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (and:SI (match_operand:SI 1 "register_operand" "0") ++ (not:SI (match_operand:SI 2 "register_operand" "r"))))] ++ "" ++ "andn %0, %2" ++ [(set_attr "cc" "set_z") ++ (set_attr "length" "2")] ++) ++ ++ ++ ++ ++(define_insn "andsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r, r, r, r") ++ (and:SI (match_operand:SI 1 "register_operand" "%0, r, 0, r") ++ (match_operand:SI 2 "nonmemory_operand" "r, M, i, r")))] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "and\t%0, %2"; ++ case 1: ++ { ++ int i, first_set = -1; ++ /* Search for first bit set in mask */ ++ for ( i = 31; i >= 0; --i ) ++ if ( INTVAL(operands[2]) & (1 << i) ){ ++ first_set = i; ++ break; ++ } ++ operands[2] = gen_rtx_CONST_INT(SImode, first_set + 1); ++ return "bfextu\t%0, %1, 0, %2"; ++ } ++ case 2: ++ if ( one_bit_cleared_operand(operands[2], VOIDmode) ){ ++ int bitpos; ++ for ( bitpos = 0; bitpos < 32; bitpos++ ) ++ if ( !(INTVAL(operands[2]) & (1 << bitpos)) ) ++ break; ++ operands[2] = gen_rtx_CONST_INT(SImode, bitpos); ++ return "cbr\t%0, %2"; ++ } else if ( (INTVAL(operands[2]) >= 0) && ++ (INTVAL(operands[2]) <= 65535) ) ++ return "andl\t%0, %2, COH"; ++ else if ( (INTVAL(operands[2]) < 0) && ++ (INTVAL(operands[2]) >= -65536 ) ) ++ return "andl\t%0, lo(%2)"; ++ else if ( ((INTVAL(operands[2]) & 0xffff) == 0xffff) ) ++ return "andh\t%0, hi(%2)"; ++ else if ( ((INTVAL(operands[2]) & 0xffff) == 0x0) ) ++ return "andh\t%0, hi(%2), COH"; ++ else ++ return "andh\t%0, hi(%2)\;andl\t%0, lo(%2)"; ++ case 3: ++ return "and\t%0, %1, %2"; ++ default: ++ abort(); ++ } ++ } ++ ++ [(set_attr "length" "2,4,8,4") ++ (set_attr "cc" "set_z")]) ++ ++ ++(define_insn "anddi3" ++ [(set (match_operand:DI 0 "register_operand" "=&r,&r") ++ (and:DI (match_operand:DI 1 "register_operand" "%0,r") ++ (match_operand:DI 2 "register_operand" "r,r")))] ++ "" ++ "#" ++ [(set_attr "length" "8") ++ (set_attr "cc" "clobber")] ++) ++ ++;;============================================================================= ++;; or ++;;----------------------------------------------------------------------------- ++;; Store the result after a bitwise inclusive-or between reg0 and reg2 in reg0. ++;;============================================================================= ++ ++(define_insn "iorsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r") ++ (ior:SI (match_operand:SI 1 "register_operand" "%0,0,r" ) ++ (match_operand:SI 2 "nonmemory_operand" "r ,i,r")))] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "or\t%0, %2"; ++ case 1: ++ if ( one_bit_set_operand(operands[2], VOIDmode) ){ ++ int bitpos; ++ for (bitpos = 0; bitpos < 32; bitpos++) ++ if (INTVAL(operands[2]) & (1 << bitpos)) ++ break; ++ operands[2] = gen_rtx_CONST_INT( SImode, bitpos); ++ return "sbr\t%0, %2"; ++ } else if ( (INTVAL(operands[2]) >= 0) && ++ (INTVAL(operands[2]) <= 65535) ) ++ return "orl\t%0, %2"; ++ else if ( ((INTVAL(operands[2]) & 0xffff) == 0x0) ) ++ return "orh\t%0, hi(%2)"; ++ else ++ return "orh\t%0, hi(%2)\;orl\t%0, lo(%2)"; ++ case 2: ++ return "or\t%0, %1, %2"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "2,8,4") ++ (set_attr "cc" "set_z")]) ++ ++ ++;(define_insn "iorsi3" ++; [(set (match_operand:SI 0 "register_operand" "=r, r, r") ++; (ior:SI (match_operand:SI 1 "avr32_logical_insn_operand" "r, r, rA" ) ++; (match_operand:SI 2 "register_operand" "0, i, r")))] ++; "" ++; { ++; switch (which_alternative){ ++; case 0: ++; return "or %0, %2"; ++; case 1: ++; if ( one_bit_set_operand(operands[2], VOIDmode) ){ ++; int i, bitpos; ++; for ( i = 0; i < 32; i++ ) ++; if ( INTVAL(operands[2]) & (1 << i) ){ ++; bitpos = i; ++; break; ++; } ++; operands[2] = gen_rtx_CONST_INT( SImode, bitpos); ++; return "sbr %0, %2"; ++; } else if ( (INTVAL(operands[2]) >= 0) && ++; (INTVAL(operands[2]) <= 65535) ) ++; return "orl %0, %2"; ++; else if ( ((INTVAL(operands[2]) & 0xffff) == 0x0) ) ++; return "orh %0, hi(%2)"; ++; else ++; return "orh %0, hi(%2)\;orl %0, lo(%2)"; ++; case 2: ++; return "or %0, %2, %1"; ++; } ++; } ++; [(set_attr "length" "2,8,4") ++; (set_attr "cc" "set_z")]) ++ ++(define_insn "iordi3" ++ [(set (match_operand:DI 0 "register_operand" "=&r,&r") ++ (ior:DI (match_operand:DI 1 "register_operand" "%0,r") ++ (match_operand:DI 2 "register_operand" "r,r")))] ++ "" ++ "#" ++ [(set_attr "length" "8") ++ (set_attr "cc" "clobber")] ++) ++ ++;;============================================================================= ++;; xor bytes ++;;----------------------------------------------------------------------------- ++;; Store the result after a bitwise exclusive-or between reg0 and reg2 in reg0. ++;;============================================================================= ++ ++(define_insn "xorsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r") ++ (xor:SI (match_operand:SI 1 "register_operand" "0,0,r") ++ (match_operand:SI 2 "nonmemory_operand" "r,i,r")))] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "eor %0, %2"; ++ case 1: ++ if ( (INTVAL(operands[2]) >= 0) && ++ (INTVAL(operands[2]) <= 65535) ) ++ return "eorl %0, %2"; ++ else if ( ((INTVAL(operands[2]) & 0xffff) == 0x0) ) ++ return "eorh %0, hi(%2)"; ++ else ++ return "eorh %0, hi(%2)\;eorl %0, lo(%2)"; ++ case 2: ++ return "eor %0, %1, %2"; ++ default: ++ abort(); ++ } ++ } ++ ++ [(set_attr "length" "2,8,4") ++ (set_attr "cc" "set_z")]) ++ ++(define_insn "xordi3" ++ [(set (match_operand:DI 0 "register_operand" "=&r,&r") ++ (xor:DI (match_operand:DI 1 "register_operand" "%0,r") ++ (match_operand:DI 2 "register_operand" "r,r")))] ++ "" ++ "#" ++ [(set_attr "length" "8") ++ (set_attr "cc" "clobber")] ++) ++ ++;;============================================================================= ++;; divmod ++;;----------------------------------------------------------------------------- ++;; Signed division that produces both a quotient and a remainder. ++;;============================================================================= ++(define_expand "divmodsi4" ++ [(parallel [ ++ (parallel [ ++ (set (match_operand:SI 0 "register_operand" "=r") ++ (div:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r"))) ++ (set (match_operand:SI 3 "register_operand" "=r") ++ (mod:SI (match_dup 1) ++ (match_dup 2)))]) ++ (use (match_dup 4))])] ++ "" ++ { ++ if (! no_new_pseudos) { ++ operands[4] = gen_reg_rtx (DImode); ++ ++ emit_insn(gen_divmodsi4_internal(operands[4],operands[1],operands[2])); ++ emit_move_insn(operands[0], gen_rtx_SUBREG( SImode, operands[4], 4)); ++ emit_move_insn(operands[3], gen_rtx_SUBREG( SImode, operands[4], 0)); ++ ++ DONE; ++ } else { ++ FAIL; ++ } ++ ++ }) ++ ++ ++(define_insn "divmodsi4_internal" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (unspec:DI [(match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r")] ++ UNSPEC_DIVMODSI4_INTERNAL))] ++ "" ++ "divs %0, %1, %2" ++ [(set_attr "type" "div") ++ (set_attr "cc" "none")]) ++ ++ ++;;============================================================================= ++;; udivmod ++;;----------------------------------------------------------------------------- ++;; Unsigned division that produces both a quotient and a remainder. ++;;============================================================================= ++(define_expand "udivmodsi4" ++ [(parallel [ ++ (parallel [ ++ (set (match_operand:SI 0 "register_operand" "=r") ++ (udiv:SI (match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r"))) ++ (set (match_operand:SI 3 "register_operand" "=r") ++ (umod:SI (match_dup 1) ++ (match_dup 2)))]) ++ (use (match_dup 4))])] ++ "" ++ { ++ if (! no_new_pseudos) { ++ operands[4] = gen_reg_rtx (DImode); ++ ++ emit_insn(gen_udivmodsi4_internal(operands[4],operands[1],operands[2])); ++ emit_move_insn(operands[0], gen_rtx_SUBREG( SImode, operands[4], 4)); ++ emit_move_insn(operands[3], gen_rtx_SUBREG( SImode, operands[4], 0)); ++ ++ DONE; ++ } else { ++ FAIL; ++ } ++ }) ++ ++(define_insn "udivmodsi4_internal" ++ [(set (match_operand:DI 0 "register_operand" "=r") ++ (unspec:DI [(match_operand:SI 1 "register_operand" "r") ++ (match_operand:SI 2 "register_operand" "r")] ++ UNSPEC_UDIVMODSI4_INTERNAL))] ++ "" ++ "divu %0, %1, %2" ++ [(set_attr "type" "div") ++ (set_attr "cc" "none")]) ++ ++ ++;;============================================================================= ++;; Arithmetic-shift left ++;;----------------------------------------------------------------------------- ++;; Arithmetic-shift reg0 left by reg2 or immediate value. ++;;============================================================================= ++ ++(define_insn "ashlsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r") ++ (ashift:SI (match_operand:SI 1 "register_operand" "r,0,r") ++ (match_operand:SI 2 "nonmemory_operand" "r,Ku05,Ku05")))] ++ "" ++ "@ ++ lsl %0, %1, %2 ++ lsl %0, %2 ++ lsl %0, %1, %2" ++ [(set_attr "length" "4,2,4") ++ (set_attr "cc" "set_ncz")]) ++ ++;;============================================================================= ++;; Arithmetic-shift right ++;;----------------------------------------------------------------------------- ++;; Arithmetic-shift reg0 right by an immediate value. ++;;============================================================================= ++ ++(define_insn "ashrsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r") ++ (ashiftrt:SI (match_operand:SI 1 "register_operand" "r,0,r") ++ (match_operand:SI 2 "nonmemory_operand" "r,Ku05,Ku05")))] ++ "" ++ "@ ++ asr %0, %1, %2 ++ asr %0, %2 ++ asr %0, %1, %2" ++ [(set_attr "length" "4,2,4") ++ (set_attr "cc" "set_ncz")]) ++ ++;;============================================================================= ++;; Logical shift right ++;;----------------------------------------------------------------------------- ++;; Logical shift reg0 right by an immediate value. ++;;============================================================================= ++ ++(define_insn "lshrsi3" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r") ++ (lshiftrt:SI (match_operand:SI 1 "register_operand" "r,0,r") ++ (match_operand:SI 2 "nonmemory_operand" "r,Ku05,Ku05")))] ++ "" ++ "@ ++ lsr %0, %1, %2 ++ lsr %0, %2 ++ lsr %0, %1, %2" ++ [(set_attr "length" "4,2,4") ++ (set_attr "cc" "set_ncz")]) ++ ++ ++;;============================================================================= ++;; neg ++;;----------------------------------------------------------------------------- ++;; Negate operand 1 and store the result in operand 0. ++;;============================================================================= ++(define_insn "negsi2" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (neg:SI (match_operand:SI 1 "register_operand" "0")))] ++ "" ++ "neg %0" ++ [(set_attr "length" "2") ++ (set_attr "cc" "set_vncz")]) ++ ++;;============================================================================= ++;; abs ++;;----------------------------------------------------------------------------- ++;; Store the absolute value of operand 1 into operand 0. ++;;============================================================================= ++(define_insn "abssi2" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (abs:SI (match_operand:SI 1 "register_operand" "0")))] ++ "" ++ "abs %0" ++ [(set_attr "length" "2") ++ (set_attr "cc" "set_z")]) ++ ++ ++;;============================================================================= ++;; one_cmpl ++;;----------------------------------------------------------------------------- ++;; Store the bitwise-complement of operand 1 into operand 0. ++;;============================================================================= ++ ++(define_insn "one_cmplsi2" ++ [(set (match_operand:SI 0 "register_operand" "=r,r") ++ (not:SI (match_operand:SI 1 "register_operand" "r,0")))] ++ "" ++ "@ ++ rsub %0, %1, -1 ++ com %0" ++ [(set_attr "length" "4,2") ++ (set_attr "cc" "set_z")]) ++ ++ ++;;============================================================================= ++;; Bit load ++;;----------------------------------------------------------------------------- ++;; Load a bit into Z and C flags ++;;============================================================================= ++(define_insn "bldsi" ++ [(set (cc0) ++ (and:SI (match_operand:SI 0 "register_operand" "r") ++ (match_operand:SI 1 "one_bit_set_operand" "i")))] ++ "" ++ "bld\t%0, %p1" ++ [(set_attr "length" "4") ++ (set_attr "cc" "bld")] ++ ) ++ ++ ++;;============================================================================= ++;; Compare ++;;----------------------------------------------------------------------------- ++;; Compare reg0 with reg1 or an immediate value. ++;;============================================================================= ++ ++(define_expand "cmpqi" ++ [(set (cc0) ++ (compare:QI ++ (match_operand:QI 0 "general_operand" "") ++ (match_operand:QI 1 "general_operand" "")))] ++ "" ++ "{ ++ ++ if ( GET_CODE(operands[0]) != REG ++ && GET_CODE(operands[0]) != SUBREG) ++ operands[0] = force_reg(QImode, operands[0]); ++ ++ ++ if ( GET_CODE(operands[1]) != REG ++ && GET_CODE(operands[1]) != SUBREG ) ++ operands[1] = force_reg(QImode, operands[1]); ++ ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = operands[1]; ++ emit_insn(gen_cmpqi_internal(operands[0], operands[1])); ++ DONE; ++ }" ++) ++ ++(define_insn "cmpqi_internal" ++ [(set (cc0) ++ (compare:QI ++ (match_operand:QI 0 "register_operand" "r") ++ (match_operand:QI 1 "register_operand" "r")))] ++ "" ++ { ++ set_next_insn_cond(insn, ++ avr32_output_cmp(get_next_insn_cond(insn), QImode, operands[0], operands[1])); ++ return ""; ++ } ++ [(set_attr "length" "4") ++ (set_attr "cc" "compare")]) ++ ++(define_expand "cmphi" ++ [(set (cc0) ++ (compare:HI ++ (match_operand:HI 0 "general_operand" "") ++ (match_operand:HI 1 "general_operand" "")))] ++ "" ++ "{ ++ if ( GET_CODE(operands[0]) != REG ++ && GET_CODE(operands[0]) != SUBREG ) ++ operands[0] = force_reg(HImode, operands[0]); ++ ++ ++ if ( GET_CODE(operands[1]) != REG ++ && GET_CODE(operands[1]) != SUBREG) ++ operands[1] = force_reg(HImode, operands[1]); ++ ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = operands[1]; ++ emit_insn(gen_cmphi_internal(operands[0], operands[1])); ++ DONE; ++ }" ++) ++ ++ ++(define_insn "cmphi_internal" ++ [(set (cc0) ++ (compare:HI ++ (match_operand:HI 0 "register_operand" "r") ++ (match_operand:HI 1 "register_operand" "r")))] ++ "" ++ { ++ set_next_insn_cond(insn, ++ avr32_output_cmp(get_next_insn_cond(insn), HImode, operands[0], operands[1])); ++ return ""; ++ } ++ [(set_attr "length" "4") ++ (set_attr "cc" "compare")]) ++ ++ ++(define_expand "cmpsi" ++ [(set (cc0) ++ (compare:SI ++ (match_operand:SI 0 "general_operand" "") ++ (match_operand:SI 1 "general_operand" "")))] ++ "" ++ "{ ++ if ( GET_CODE(operands[0]) != REG ++ && GET_CODE(operands[0]) != SUBREG ) ++ operands[0] = force_reg(SImode, operands[0]); ++ ++ if ( GET_CODE(operands[1]) != REG ++ && GET_CODE(operands[1]) != SUBREG ++ && GET_CODE(operands[1]) != CONST_INT ) ++ operands[1] = force_reg(SImode, operands[1]); ++ ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = operands[1]; ++ ++ ++ emit_insn(gen_cmpsi_internal(operands[0], operands[1])); ++ DONE; ++ }" ++) ++ ++ ++ ++ ++(define_insn "cmpsi_internal" ++ [(set (cc0) ++ (compare:SI ++ (match_operand:SI 0 "register_operand" "r, r, r") ++ (match_operand:SI 1 "nonmemory_operand" "r, Ks06, Ks21")))] ++ "" ++ { ++ set_next_insn_cond(insn, ++ avr32_output_cmp(get_next_insn_cond(insn), SImode, operands[0], operands[1])); ++ return ""; ++ } ++ ++ [(set_attr "length" "2,2,4") ++ (set_attr "cc" "compare")]) ++ ++ ++(define_expand "cmpdi" ++ [(set (cc0) ++ (compare:DI ++ (match_operand:DI 0 "register_operand" "") ++ (match_operand:DI 1 "register_operand" "")))] ++ "" ++ { ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = operands[1]; ++ emit_insn(gen_cmpdi_internal(operands[0], operands[1])); ++ DONE; ++ } ++) ++ ++(define_insn "cmpdi_internal" ++ [(set (cc0) ++ (compare:DI ++ (match_operand:DI 0 "register_operand" "r") ++ (match_operand:DI 1 "register_operand" "r")))] ++ "" ++ { ++ set_next_insn_cond(insn, ++ avr32_output_cmp(get_next_insn_cond(insn), DImode, operands[0], operands[1])); ++ return ""; ++ } ++ ++ [(set_attr "length" "6") ++ (set_attr "type" "alu2") ++ (set_attr "cc" "compare")]) ++ ++ ++ ++;;============================================================================= ++;; Test if zero ++;;----------------------------------------------------------------------------- ++;; Compare reg against zero and set the condition codes. ++;;============================================================================= ++ ++ ++(define_expand "tstsi" ++ [(set (cc0) ++ (match_operand:SI 0 "register_operand" ""))] ++ "" ++ { ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = gen_rtx_CONST_INT(SImode, 0); ++ emit_insn(gen_tstsi_internal(operands[0])); ++ DONE; ++ } ++) ++ ++(define_insn "tstsi_internal" ++ [(set (cc0) ++ (match_operand:SI 0 "register_operand" "r"))] ++ "" ++ { ++ set_next_insn_cond(insn, ++ avr32_output_cmp(get_next_insn_cond(insn), SImode, operands[0], const0_rtx)); ++ ++ return ""; ++ } ++ [(set_attr "length" "2") ++ (set_attr "cc" "compare")]) ++ ++ ++(define_expand "tstdi" ++ [(set (cc0) ++ (match_operand:DI 0 "register_operand" ""))] ++ "" ++ { ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = gen_rtx_CONST_INT(DImode, 0); ++ emit_insn(gen_tstdi_internal(operands[0])); ++ DONE; ++ } ++) ++ ++(define_insn "tstdi_internal" ++ [(set (cc0) ++ (match_operand:DI 0 "register_operand" "r"))] ++ "" ++ { ++ set_next_insn_cond(insn, ++ avr32_output_cmp(get_next_insn_cond(insn), DImode, operands[0], const0_rtx)); ++ return ""; ++ } ++ [(set_attr "length" "4") ++ (set_attr "type" "alu2") ++ (set_attr "cc" "compare")]) ++ ++ ++ ++;;============================================================================= ++;; Convert operands ++;;----------------------------------------------------------------------------- ++;; ++;;============================================================================= ++(define_insn "truncdisi2" ++ [(set (match_operand:SI 0 "general_operand" "") ++ (truncate:SI (match_operand:DI 1 "general_operand" "")))] ++ "" ++ "truncdisi2") ++ ++;;============================================================================= ++;; Extend ++;;----------------------------------------------------------------------------- ++;; ++;;============================================================================= ++ ++ ++(define_insn "extendhisi2" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ++ (sign_extend:SI (match_operand:HI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ return "casts.h\t%0"; ++ case 1: ++ return "bfexts\t%0, %1, 0, 16"; ++ case 2: ++ case 3: ++ return "ld.sh\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "2,4,2,4") ++ (set_attr "cc" "set_ncz,set_ncz,none,none") ++ (set_attr "type" "alu,alu,load_rm,load_rm")]) ++ ++(define_insn "extendqisi2" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ++ (sign_extend:SI (match_operand:QI 1 "extendqi_operand" "0,r,RKu00,m")))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ return "casts.b\t%0"; ++ case 1: ++ return "bfexts\t%0, %1, 0, 8"; ++ case 2: ++ case 3: ++ return "ld.sb\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "2,4,2,4") ++ (set_attr "cc" "set_ncz,set_ncz,none,none") ++ (set_attr "type" "alu,alu,load_rm,load_rm")]) ++ ++(define_insn "extendqihi2" ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") ++ (sign_extend:HI (match_operand:QI 1 "extendqi_operand" "0,r,RKu00,m")))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ return "casts.b\t%0"; ++ case 1: ++ return "bfexts\t%0, %1, 0, 8"; ++ case 2: ++ case 3: ++ return "ld.sb\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "2,4,2,4") ++ (set_attr "cc" "set_ncz,set_ncz,none,none") ++ (set_attr "type" "alu,alu,load_rm,load_rm")]) ++ ++ ++;;============================================================================= ++;; Zero-extend ++;;----------------------------------------------------------------------------- ++;; ++;;============================================================================= ++ ++(define_insn "zero_extendhisi2" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ++ (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ return "castu.h\t%0"; ++ case 1: ++ return "bfextu\t%0, %1, 0, 16"; ++ case 2: ++ case 3: ++ return "ld.uh\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ ++ [(set_attr "length" "2,4,2,4") ++ (set_attr "cc" "set_ncz,set_ncz,none,none") ++ (set_attr "type" "alu,alu,load_rm,load_rm")]) ++ ++(define_insn "zero_extendqisi2" ++ [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") ++ (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ return "castu.b\t%0"; ++ case 1: ++ return "bfextu\t%0, %1, 0, 8"; ++ case 2: ++ case 3: ++ return "ld.ub\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "2,4,2,4") ++ (set_attr "cc" "set_ncz, set_ncz, none, none") ++ (set_attr "type" "alu, alu, load_rm, load_rm")]) ++ ++(define_insn "zero_extendqihi2" ++ [(set (match_operand:HI 0 "register_operand" "=r,r,r,r") ++ (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "0,r,<RKu00>,m")))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ return "castu.b\t%0"; ++ case 1: ++ return "bfextu\t%0, %1, 0, 8"; ++ case 2: ++ case 3: ++ return "ld.ub\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "2,4,2,4") ++ (set_attr "cc" "set_ncz, set_ncz, none, none") ++ (set_attr "type" "alu, alu, load_rm, load_rm")]) ++ ++ ++ ++;;============================================================================= ++;; Conditional set register ++;; sr{cond4} rd ++;;----------------------------------------------------------------------------- ++ ++;;Because of the same issue as with conditional moves and adds we must ++;;not separate the compare instrcution from the scc instruction as ++;;they might be sheduled "badly". ++ ++(define_expand "s<code>" ++ [(set (match_operand:SI 0 "register_operand" "") ++ (any_cond (cc0) ++ (const_int 0)))] ++ "" ++ { ++ if ( !avr32_expand_scc(<CODE>, operands) ){ ++ FAIL; ++ } ++ DONE; ++ } ++ ) ++ ++ ++(define_insn "comparesi_and_set" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (match_operator 1 "avr32_comparison_operator" ++ [ (compare (match_operand:SI 2 "register_operand" "r") ++ (match_operand:SI 3 "general_operand" "rKs06Ks21")) ++ (const_int 0)]))] ++ "" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[2]), operands[2], operands[3]); ++ return "sr%1\t%0"; ++ } ++ [(set_attr "length" "6") ++ (set_attr "cc" "clobber")]) ++ ++(define_insn "comparehi_and_set" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (match_operator 1 "avr32_comparison_operator" ++ [ (compare (match_operand:HI 2 "register_operand" "r") ++ (match_operand:HI 3 "register_operand" "r")) ++ (const_int 0)]))] ++ "" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[2]), operands[2], operands[3]); ++ return "sr%1\t%0"; ++ } ++ [(set_attr "length" "6") ++ (set_attr "cc" "clobber")]) ++ ++(define_insn "compareqi_and_set" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (match_operator 1 "avr32_comparison_operator" ++ [ (compare (match_operand:QI 2 "register_operand" "r") ++ (match_operand:QI 3 "register_operand" "r")) ++ (const_int 0)]))] ++ "" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[2]), operands[2], operands[3]); ++ return "sr%1\t%0"; ++ } ++ [(set_attr "length" "6") ++ (set_attr "cc" "clobber")]) ++ ++(define_insn "*comparedi_and_set" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (match_operator 1 "avr32_comparison_operator" ++ [ (compare (match_operand:DI 2 "register_operand" "r") ++ (match_operand:DI 3 "register_operand" "r")) ++ (const_int 0)]))] ++ "" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[2]), operands[2], operands[3]); ++ return "sr%1\t%0"; ++ } ++ [(set_attr "length" "6") ++ (set_attr "cc" "clobber")]) ++ ++(define_insn "*tstdi_and_set" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (match_operator 1 "avr32_comparison_operator" ++ [ (compare (match_operand:DI 2 "register_operand" "r") ++ (const_int 0)) ++ (const_int 0)]))] ++ "" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[2]), operands[2], const0_rtx); ++ return "sr%1\t%0"; ++ } ++ [(set_attr "length" "6") ++ (set_attr "cc" "clobber")]) ++ ++ ++ ++;;============================================================================= ++;; Conditional branch ++;;----------------------------------------------------------------------------- ++;; Branch to label if the specified condition codes are set. ++;;============================================================================= ++; branch if negative ++(define_insn "bmi" ++ [(set (pc) ++ (if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_MI) ++ (label_ref (match_operand 0 "" "")) ++ (pc)))] ++ "" ++ "brmi %0" ++ [(set_attr "type" "branch") ++ (set (attr "length") ++ (cond [(and (le (minus (match_dup 0) (pc)) (const_int 254)) ++ (le (minus (pc) (match_dup 0)) (const_int 256))) ++ (const_int 2)] ; use compact branch ++ (const_int 4))) ; use extended branch ++ (set_attr "cc" "none")]) ++ ++(define_insn "*bmi-reverse" ++ [(set (pc) ++ (if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_MI) ++ (pc) ++ (label_ref (match_operand 0 "" ""))))] ++ "" ++ "brpl %0" ++ [(set_attr "type" "branch") ++ (set (attr "length") ++ (cond [(and (le (minus (match_dup 0) (pc)) (const_int 254)) ++ (le (minus (pc) (match_dup 0)) (const_int 256))) ++ (const_int 2)] ; use compact branch ++ (const_int 4))) ; use extended branch ++ (set_attr "cc" "none")]) ++ ++; branch if positive ++(define_insn "bpl" ++ [(set (pc) ++ (if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_PL) ++ (label_ref (match_operand 0 "" "")) ++ (pc)))] ++ "" ++ "brpl %0" ++ [(set_attr "type" "branch") ++ (set (attr "length") ++ (cond [(and (le (minus (match_dup 0) (pc)) (const_int 254)) ++ (le (minus (pc) (match_dup 0)) (const_int 256))) ++ (const_int 2)] ; use compact branch ++ (const_int 4))) ; use extended branch ++ (set_attr "cc" "none")]) ++ ++(define_insn "*bpl-reverse" ++ [(set (pc) ++ (if_then_else (unspec:CC [(cc0) (const_int 0)] UNSPEC_COND_PL) ++ (pc) ++ (label_ref (match_operand 0 "" ""))))] ++ "" ++ "brmi %0" ++ [(set_attr "type" "branch") ++ (set (attr "length") ++ (cond [(and (le (minus (match_dup 0) (pc)) (const_int 254)) ++ (le (minus (pc) (match_dup 0)) (const_int 256))) ++ (const_int 2)] ; use compact branch ++ (const_int 4))) ; use extended branch ++ (set_attr "cc" "none")]) ++ ++; branch if equal ++(define_insn "b<code>" ++ [(set (pc) ++ (if_then_else (any_cond:CC (cc0) ++ (const_int 0)) ++ (label_ref (match_operand 0 "" "")) ++ (pc)))] ++ "" ++ "br<cond> %0 " ++ [(set_attr "type" "branch") ++ (set (attr "length") ++ (cond [(and (le (minus (match_dup 0) (pc)) (const_int 254)) ++ (le (minus (pc) (match_dup 0)) (const_int 256))) ++ (const_int 2)] ; use compact branch ++ (const_int 4))) ; use extended branch ++ (set_attr "cc" "none")]) ++ ++ ++(define_insn "*b<code>-reverse" ++ [(set (pc) ++ (if_then_else (any_cond:CC (cc0) ++ (const_int 0)) ++ (pc) ++ (label_ref (match_operand 0 "" ""))))] ++ "" ++ "br<invcond> %0 " ++ [(set_attr "type" "branch") ++ (set (attr "length") ++ (cond [(and (le (minus (match_dup 0) (pc)) (const_int 254)) ++ (le (minus (pc) (match_dup 0)) (const_int 256))) ++ (const_int 2)] ; use compact branch ++ (const_int 4))) ; use extended branch ++ (set_attr "cc" "none")]) ++ ++ ++ ++;============================================================================= ++; Conditional Add/Subtract ++;----------------------------------------------------------------------------- ++; sub{cond4} Rd, imm ++;============================================================================= ++ ++ ++(define_expand "add<mode>cc" ++ [(set (match_operand:ADDCC 0 "register_operand" "") ++ (if_then_else:ADDCC (match_operand 1 "avr32_comparison_operator" "") ++ (match_operand:ADDCC 2 "register_immediate_operand" "") ++ (match_operand:ADDCC 3 "register_immediate_operand" "")))] ++ "" ++ { ++ if ( avr32_expand_addcc(<MODE>mode, operands ) ) ++ DONE; ++ else ++ FAIL; ++ } ++ ) ++ ++ ++(define_insn "add<ADDCC:mode>cc_cmp<CMP:mode>" ++ [(set (match_operand:ADDCC 0 "register_operand" "=&r") ++ (unspec:ADDCC [(match_operand 1 "avr32_comparison_operator" "") ++ (match_operand:ADDCC 2 "register_operand" "0") ++ (match_operand:ADDCC 3 "immediate_operand" "Ks08") ++ (match_operand:CMP 4 "register_operand" "r") ++ (match_operand:CMP 5 "<CMP:cmp_predicate>" "<CMP:cmp_constraint>") ++ ] ++ UNSPEC_ADDSICC ))] ++ "" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[4]), operands[4], operands[5]); ++ ++ return "sub%1\t%0, %3"; ++ } ++ [(set_attr "length" "8") ++ (set_attr "cc" "clobber")]) ++ ++ ++;============================================================================= ++; Conditional Move ++;----------------------------------------------------------------------------- ++; mov{cond4} Rd, (Rs/imm) ++;============================================================================= ++(define_expand "mov<mode>cc" ++ [(set (match_operand:ADDCC 0 "register_operand" "") ++ (if_then_else:ADDCC (match_operand 1 "avr32_comparison_operator" "") ++ (match_operand:ADDCC 2 "register_immediate_operand" "") ++ (match_operand:ADDCC 3 "register_immediate_operand" "")))] ++ "" ++ { ++ if ( avr32_expand_movcc(<MODE>mode, operands ) ) ++ DONE; ++ else ++ FAIL; ++ } ++ ) ++ ++(define_insn "mov<MOVCC:mode>cc_cmp<CMP:mode>" ++ [(set (match_operand:MOVCC 0 "register_operand" "=r,r,r") ++ (unspec:MOVCC [(match_operand 1 "avr32_comparison_operator" "") ++ (match_operand:MOVCC 2 "register_immediate_operand" "0,rKs08,rKs08") ++ (match_operand:MOVCC 3 "register_immediate_operand" "rKs08,0,rKs08") ++ (match_operand:CMP 4 "register_operand" "r, r, r") ++ (match_operand:CMP 5 "<CMP:cmp_predicate>" "<CMP:cmp_constraint>, <CMP:cmp_constraint>, <CMP:cmp_constraint>") ++ ] ++ UNSPEC_MOVSICC ))] ++ "" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[4]), operands[4], operands[5]); ++ ++ switch( which_alternative ){ ++ case 0: ++ return "mov%i1 %0, %3"; ++ case 1: ++ return "mov%1 %0, %2"; ++ case 2: ++ return "mov%1 %0, %2\;mov%i1 %0, %3"; ++ default: ++ abort(); ++ } ++ ++ ++ } ++ [(set_attr "length" "8,8,12") ++ (set_attr "cc" "clobber")]) ++ ++ ++;;============================================================================= ++;; jump ++;;----------------------------------------------------------------------------- ++;; Jump inside a function; an unconditional branch to a label. ++;;============================================================================= ++(define_insn "jump" ++ [(set (pc) ++ (label_ref (match_operand 0 "" "")))] ++ "" ++ { ++ if (get_attr_length(insn) > 4) ++ return "Can't jump this far"; ++ return (get_attr_length(insn) == 2 ? ++ "rjmp %0" : "bral %0"); ++ } ++ [(set_attr "type" "branch") ++ (set (attr "length") ++ (cond [(and (le (minus (match_dup 0) (pc)) (const_int 1022)) ++ (le (minus (pc) (match_dup 0)) (const_int 1024))) ++ (const_int 2) ; use rjmp ++ (le (match_dup 0) (const_int 1048575)) ++ (const_int 4)] ; use bral ++ (const_int 8))) ; do something else ++ (set_attr "cc" "none")]) ++ ++;;============================================================================= ++;; call ++;;----------------------------------------------------------------------------- ++;; Subroutine call instruction returning no value. ++;;============================================================================= ++(define_insn "call_internal" ++ [(parallel [(call (mem:SI (match_operand:SI 0 "avr32_call_operand" "r,U,T,W")) ++ (match_operand 1 "" "")) ++ (clobber (reg:SI LR_REGNUM))])] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "icall\t%0"; ++ case 1: ++ return "rcall\t%0"; ++ case 2: ++ return "mcall\t%0"; ++ case 3: ++ if ( TARGET_HAS_ASM_ADDR_PSEUDOS ) ++ return "call\t%0"; ++ else ++ return "mcall\tr6[%0@got]"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "type" "call") ++ (set_attr "length" "2,4,4,10") ++ (set_attr "cc" "clobber")]) ++ ++ ++(define_expand "call" ++ [(parallel [(call (match_operand:SI 0 "" "") ++ (match_operand 1 "" "")) ++ (clobber (reg:SI LR_REGNUM))])] ++ "" ++ { ++ rtx call_address; ++ if ( GET_CODE(operands[0]) != MEM ) ++ FAIL; ++ ++ call_address = XEXP(operands[0], 0); ++ ++ /* If assembler supports call pseudo insn and the call ++ address is a symbol then nothing special needs to be done. */ ++ if ( TARGET_HAS_ASM_ADDR_PSEUDOS ++ && (GET_CODE(call_address) == SYMBOL_REF) ){ ++ /* We must however mark the function as using the GOT if ++ flag_pic is set, since the call insn might turn into ++ a mcall using the GOT ptr register. */ ++ if ( flag_pic ){ ++ current_function_uses_pic_offset_table = 1; ++ emit_call_insn(gen_call_internal(call_address, operands[1])); ++ DONE; ++ } ++ } else { ++ if ( flag_pic && ++ GET_CODE(call_address) == SYMBOL_REF ){ ++ current_function_uses_pic_offset_table = 1; ++ emit_call_insn(gen_call_internal(call_address, operands[1])); ++ DONE; ++ } ++ ++ if ( !SYMBOL_REF_RCALL_FUNCTION_P(operands[0]) ){ ++ if ( optimize_size && ++ GET_CODE(call_address) == SYMBOL_REF ){ ++ call_address = force_const_mem(SImode, call_address); ++ } else { ++ call_address = force_reg(SImode, call_address); ++ } ++ } ++ } ++ emit_call_insn(gen_call_internal(call_address, operands[1])); ++ DONE; ++ } ++) ++ ++;;============================================================================= ++;; call_value ++;;----------------------------------------------------------------------------- ++;; Subrutine call instruction returning a value. ++;;============================================================================= ++(define_expand "call_value" ++ [(parallel [(set (match_operand:SI 0 "" "") ++ (call (match_operand:SI 1 "" "") ++ (match_operand 2 "" ""))) ++ (clobber (reg:SI LR_REGNUM))])] ++ "" ++ { ++ rtx call_address; ++ if ( GET_CODE(operands[1]) != MEM ) ++ FAIL; ++ ++ call_address = XEXP(operands[1], 0); ++ ++ /* If assembler supports call pseudo insn and the call ++ address is a symbol then nothing special needs to be done. */ ++ if ( TARGET_HAS_ASM_ADDR_PSEUDOS ++ && (GET_CODE(call_address) == SYMBOL_REF) ){ ++ /* We must however mark the function as using the GOT if ++ flag_pic is set, since the call insn might turn into ++ a mcall using the GOT ptr register. */ ++ if ( flag_pic ) { ++ current_function_uses_pic_offset_table = 1; ++ emit_call_insn(gen_call_value_internal(operands[0], call_address, operands[2])); ++ DONE; ++ } ++ } else { ++ if ( flag_pic && ++ GET_CODE(call_address) == SYMBOL_REF ){ ++ current_function_uses_pic_offset_table = 1; ++ emit_call_insn(gen_call_value_internal(operands[0], call_address, operands[2])); ++ DONE; ++ } ++ ++ if ( !SYMBOL_REF_RCALL_FUNCTION_P(operands[1]) ){ ++ if ( optimize_size && ++ GET_CODE(call_address) == SYMBOL_REF){ ++ call_address = force_const_mem(SImode, call_address); ++ } else { ++ call_address = force_reg(SImode, call_address); ++ } ++ } ++ } ++ emit_call_insn(gen_call_value_internal(operands[0], call_address, ++ operands[2])); ++ DONE; ++ ++ }) ++ ++(define_insn "call_value_internal" ++ [(parallel [(set (match_operand 0 "register_operand" "=r,r,r,r") ++ (call (mem:SI (match_operand:SI 1 "avr32_call_operand" "r,U,T,W")) ++ (match_operand 2 "" ""))) ++ (clobber (reg:SI LR_REGNUM))])] ++ ;; Operand 2 not used on the AVR32. ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "icall\t%1"; ++ case 1: ++ return "rcall\t%1"; ++ case 2: ++ return "mcall\t%1"; ++ case 3: ++ if ( TARGET_HAS_ASM_ADDR_PSEUDOS ) ++ return "call\t%1"; ++ else ++ return "mcall\tr6[%1@got]"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "type" "call") ++ (set_attr "length" "2,4,4,10") ++ (set_attr "cc" "call_set")]) ++ ++ ++;;============================================================================= ++;; untyped_call ++;;----------------------------------------------------------------------------- ++;; Subrutine call instruction returning a value of any type. ++;; The code is copied from m68k.md (except gen_blockage is removed) ++;; Fixme! ++;;============================================================================= ++(define_expand "untyped_call" ++ [(parallel [(call (match_operand 0 "avr32_call_operand" "") ++ (const_int 0)) ++ (match_operand 1 "" "") ++ (match_operand 2 "" "")])] ++ "" ++ { ++ int i; ++ ++ emit_call_insn (GEN_CALL (operands[0], const0_rtx, NULL, const0_rtx)); ++ ++ for (i = 0; i < XVECLEN (operands[2], 0); i++) { ++ rtx set = XVECEXP (operands[2], 0, i); ++ emit_move_insn (SET_DEST (set), SET_SRC (set)); ++ } ++ ++ /* The optimizer does not know that the call sets the function value ++ registers we stored in the result block. We avoid problems by ++ claiming that all hard registers are used and clobbered at this ++ point. */ ++ emit_insn (gen_blockage ()); ++ ++ DONE; ++ }) ++ ++ ++;;============================================================================= ++;; return ++;;============================================================================= ++ ++(define_insn "return" ++ [(return)] ++ "USE_RETURN_INSN (FALSE)" ++ { ++ avr32_output_return_instruction(TRUE, FALSE, NULL, NULL); ++ return ""; ++ } ++ [(set_attr "length" "4") ++ (set_attr "type" "call")] ++ ) ++ ++(define_insn "*return_value_imm" ++ [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i")) ++ (use (reg RETVAL_REGNUM)) ++ (return)])] ++ "USE_RETURN_INSN (FALSE) && ++ ((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))" ++ { ++ avr32_output_return_instruction(TRUE, FALSE, NULL, operands[0]); ++ return ""; ++ } ++ [(set_attr "length" "4") ++ (set_attr "type" "call")] ++ ) ++ ++(define_insn "*return_value_si" ++ [(set (reg RETVAL_REGNUM) (match_operand:SI 0 "register_operand" "r")) ++ (use (reg RETVAL_REGNUM)) ++ (return)] ++ "USE_RETURN_INSN (TRUE)" ++ "retal %0"; ++ [(set_attr "type" "call")] ++ ) ++ ++(define_insn "*return_value_hi" ++ [(parallel [(set (reg RETVAL_REGNUM) (match_operand:HI 0 "register_operand" "r")) ++ (use (reg RETVAL_REGNUM)) ++ (return)])] ++ "USE_RETURN_INSN (TRUE)" ++ "retal %0" ++ [(set_attr "type" "call")] ++ ) ++ ++(define_insn "*return_value_qi" ++ [(parallel [(set (reg RETVAL_REGNUM) (match_operand:QI 0 "register_operand" "r")) ++ (use (reg RETVAL_REGNUM)) ++ (return)])] ++ "USE_RETURN_INSN (TRUE)" ++ "retal %0" ++ [(set_attr "type" "call")] ++ ) ++ ++;;============================================================================= ++;; nop ++;;----------------------------------------------------------------------------- ++;; No-op instruction. ++;;============================================================================= ++(define_insn "nop" ++ [(const_int 0)] ++ "" ++ "nop" ++ [(set_attr "length" "2") ++ (set_attr "type" "alu") ++ (set_attr "cc" "none")]) ++ ++;;============================================================================= ++;; nonlocal_goto ++;;----------------------------------------------------------------------------- ++;; Jump from one function to a label in an outer function. ++;; Must invalidate return stack, since the function will be exited without ++;; a return ++;;============================================================================= ++(define_expand "nonlocal_goto" ++ [(use (match_operand 0 "" "")) ++ (use (match_operand 1 "" "")) ++ (use (match_operand 2 "" "")) ++ (use (match_operand 3 "" ""))] ++ "" ++ { ++ emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__nonlocal_goto"), ++ 0, VOIDmode, 3, ++ operands[0], SImode, ++ operands[1], Pmode, ++ operands[2], SImode); ++ ++ DONE; ++ } ++) ++ ++ ++(define_expand "builtin_longjmp" ++ [(use (match_operand 0 "" ""))] ++ "" ++ { ++ rtx ops[3]; ++ ++ ops[0] = gen_rtx_MEM (Pmode, gen_rtx_PLUS(SImode, operands[0], gen_rtx_CONST_INT(SImode,0))); ++ ops[1] = gen_rtx_MEM (Pmode, gen_rtx_PLUS(SImode, operands[0], gen_rtx_CONST_INT(SImode,4))); ++ ops[2] = gen_rtx_MEM (Pmode, gen_rtx_PLUS(SImode, operands[0], gen_rtx_CONST_INT(SImode,8))); ++ ++ ++ emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__nonlocal_goto"), ++ 0, VOIDmode, 3, ++ ops[0], SImode, ++ ops[1], Pmode, ++ ops[2], SImode); ++ ++ DONE; ++ } ++ ) ++ ++ ++;;============================================================================= ++;; indirect_jump ++;;----------------------------------------------------------------------------- ++;; Jump to an address in reg or memory. ++;;============================================================================= ++(define_expand "indirect_jump" ++ [(set (pc) ++ (match_operand:SI 0 "general_operand" "r,m"))] ++ "" ++ { ++ /* One of the ops has to be in a register. */ ++ if ( (flag_pic || TARGET_HAS_ASM_ADDR_PSEUDOS ) ++ && !avr32_legitimate_pic_operand_p(operands[0]) ) ++ operands[0] = legitimize_pic_address (operands[0], SImode, 0); ++ else if ( flag_pic && avr32_address_operand(operands[0], GET_MODE(operands[0])) ) ++ /* If we have an address operand then this function uses the pic register. */ ++ current_function_uses_pic_offset_table = 1; ++ }) ++ ++ ++(define_insn "indirect_jump_internal" ++ [(set (pc) ++ (match_operand:SI 0 "general_operand" "r,m,W"))] ++ "" ++ { ++ switch( which_alternative ){ ++ case 0: ++ return "mov\tpc, %0"; ++ case 1: ++ if ( avr32_const_pool_ref_operand(operands[0], GET_MODE(operands[0])) ) ++ return "lddpc\tpc, %0"; ++ else ++ return "ld.w\tpc, %0"; ++ case 2: ++ if ( flag_pic ) ++ return "ld.w\tpc, r6[%0@got]"; ++ else ++ return "lda.w\tpc, %0"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "2,4,8") ++ (set_attr "type" "call,call,call") ++ (set_attr "cc" "none,none,clobber")]) ++ ++ ++;;============================================================================= ++;; casesi ++;;============================================================================= ++ ++ ++(define_expand "casesi" ++ [(match_operand:SI 0 "register_operand" "") ; index to jump on ++ (match_operand:SI 1 "const_int_operand" "") ; lower bound ++ (match_operand:SI 2 "const_int_operand" "") ; total range ++ (match_operand:SI 3 "" "") ; table label ++ (match_operand:SI 4 "" "")] ; Out of range label ++ "" ++ " ++ { ++ rtx reg; ++ if (operands[1] != const0_rtx) ++ { ++ if (!avr32_const_ok_for_constraint_p(INTVAL (operands[1]), 'I', \"Is21\")){ ++ reg = force_reg(SImode, GEN_INT (INTVAL (operands[1]))); ++ emit_insn (gen_subsi3 (reg, operands[0], ++ reg)); ++ } else { ++ reg = gen_reg_rtx (SImode); ++ emit_insn (gen_addsi3 (reg, operands[0], ++ GEN_INT (-INTVAL (operands[1])))); ++ } ++ operands[0] = reg; ++ } ++ ++ if (!avr32_const_ok_for_constraint_p(INTVAL (operands[2]), 'K', \"Ks21\")) ++ operands[2] = force_reg (SImode, operands[2]); ++ ++ emit_jump_insn (gen_casesi_internal (operands[0], operands[2], operands[3], ++ operands[4], gen_reg_rtx(SImode))); ++ DONE; ++ }" ++) ++ ++;; The USE in this pattern is needed to tell flow analysis that this is ++;; a CASESI insn. It has no other purpose. ++(define_insn "casesi_internal" ++ [(parallel [(set (pc) ++ (if_then_else ++ (leu (match_operand:SI 0 "register_operand" "r") ++ (match_operand:SI 1 "register_immediate_operand" "rKu03")) ++ (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4)) ++ (label_ref (match_operand 2 "" "")))) ++ (label_ref (match_operand 3 "" "")))) ++ (clobber (match_operand:SI 4 "register_operand" "=r")) ++ (use (label_ref (match_dup 2)))])] ++ "" ++ { ++ if (flag_pic) ++ return "cp.w\t%0, %1\;brhi\t%3\;sub\t%4, pc, -(%2 - .)\;add\tpc, %4, %0 << 2"; ++ return "cp.w\t%0, %1\;brhi\t%3\;sub\t%4, pc, -(%2 - .)\;ld.w\tpc, %4[%0 << 2]"; ++ } ++ [(set_attr "cc" "clobber") ++ (set_attr "length" "16")] ++) ++ ++ ++(define_insn "prefetch" ++ [(prefetch (match_operand:SI 0 "register_operand" "r") ++ (match_operand 1 "const_int_operand" "") ++ (match_operand 2 "const_int_operand" ""))] ++ "" ++ { ++ return "pref\t%0[0]"; ++ } ++ ++ [(set_attr "length" "4") ++ (set_attr "type" "load") ++ (set_attr "cc" "none")]) ++ ++ ++ ++;;============================================================================= ++;; prologue ++;;----------------------------------------------------------------------------- ++;; This pattern, if defined, emits RTL for entry to a function. The function ++;; entry i responsible for setting up the stack frame, initializing the frame ++;; pointer register, saving callee saved registers, etc. ++;;============================================================================= ++(define_expand "prologue" ++ [(clobber (const_int 0))] ++ "" ++ " ++ avr32_expand_prologue(); ++ DONE; ++ " ++ ) ++ ++;;============================================================================= ++;; eh_return ++;;----------------------------------------------------------------------------- ++;; This pattern, if defined, affects the way __builtin_eh_return, and ++;; thence the call frame exception handling library routines, are ++;; built. It is intended to handle non-trivial actions needed along ++;; the abnormal return path. ++;; ++;; The address of the exception handler to which the function should ++;; return is passed as operand to this pattern. It will normally need ++;; to copied by the pattern to some special register or memory ++;; location. If the pattern needs to determine the location of the ++;; target call frame in order to do so, it may use ++;; EH_RETURN_STACKADJ_RTX, if defined; it will have already been ++;; assigned. ++;; ++;; If this pattern is not defined, the default action will be to ++;; simply copy the return address to EH_RETURN_HANDLER_RTX. Either ++;; that macro or this pattern needs to be defined if call frame ++;; exception handling is to be used. ++(define_expand "eh_return" ++ [(use (match_operand 0 "general_operand" ""))] ++ "" ++ " ++ avr32_set_return_address (operands[0]); ++ DONE; ++ " ++ ) ++ ++;;============================================================================= ++;; ffssi2 ++;;----------------------------------------------------------------------------- ++(define_insn "ffssi2" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (ffs:SI (match_operand:SI 1 "register_operand" "r"))) ] ++ "" ++ "mov %0, %1 ++ brev %0 ++ clz %0, %0 ++ sub %0, -1 ++ cp %0, 33 ++ moveq %0, 0" ++ [(set_attr "length" "18") ++ (set_attr "cc" "clobber")] ++ ) ++ ++ ++ ++;;============================================================================= ++;; swap_h ++;;----------------------------------------------------------------------------- ++(define_insn "*swap_h" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (ior:SI (ashift:SI (match_dup 0) (const_int 16)) ++ (lshiftrt:SI (match_dup 0) (const_int 16))))] ++ "" ++ "swap.h %0" ++ [(set_attr "length" "2")] ++ ) ++ ++(define_insn_and_split "bswap_16" ++ [ (set (match_operand:HI 0 "avr32_bswap_operand" "=r,RKs13,r") ++ (ior:HI (and:HI (lshiftrt:HI (match_operand:HI 1 "avr32_bswap_operand" "r,r,RKs13") ++ (const_int 8)) ++ (const_int 255)) ++ (ashift:HI (and:HI (match_dup 1) ++ (const_int 255)) ++ (const_int 8))))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ if ( REGNO(operands[0]) == REGNO(operands[1])) ++ return "swap.bh\t%0"; ++ else ++ return "mov\t%0, %1\;swap.bh\t%0"; ++ case 1: ++ return "stswp.h\t%0, %1"; ++ case 2: ++ return "ldswp.sh\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ ++ "(reload_completed && ++ REG_P(operands[0]) && REG_P(operands[1]) ++ && (REGNO(operands[0]) != REGNO(operands[1])))" ++ [(set (match_dup 0) (match_dup 1)) ++ (set (match_dup 0) ++ (ior:HI (and:HI (lshiftrt:HI (match_dup 0) ++ (const_int 8)) ++ (const_int 255)) ++ (ashift:HI (and:HI (match_dup 0) ++ (const_int 255)) ++ (const_int 8))))] ++ "" ++ ++ [(set_attr "length" "4,4,4") ++ (set_attr "type" "alu,store,load_rm")] ++ ) ++ ++(define_insn_and_split "bswap_32" ++ [ (set (match_operand:SI 0 "avr32_bswap_operand" "=r,RKs14,r") ++ (ior:SI (ior:SI (lshiftrt:SI (and:SI (match_operand:SI 1 "avr32_bswap_operand" "=r,r,RKs14") ++ (const_int 4278190080)) ++ (const_int 24)) ++ (lshiftrt:SI (and:SI (match_dup 1) ++ (const_int 16711680)) ++ (const_int 8))) ++ (ior:SI (ashift:SI (and:SI (match_dup 1) ++ (const_int 65280)) ++ (const_int 8)) ++ (ashift:SI (and:SI (match_dup 1) ++ (const_int 255)) ++ (const_int 24)))))] ++ "" ++ { ++ switch ( which_alternative ){ ++ case 0: ++ if ( REGNO(operands[0]) == REGNO(operands[1])) ++ return "swap.b\t%0"; ++ else ++ return "mov\t%0, %1\;swap.b\t%0"; ++ case 1: ++ return "stswp.w\t%0, %1"; ++ case 2: ++ return "ldswp.w\t%0, %1"; ++ default: ++ abort(); ++ } ++ } ++ "(reload_completed && ++ REG_P(operands[0]) && REG_P(operands[1]) ++ && (REGNO(operands[0]) != REGNO(operands[1])))" ++ [(set (match_dup 0) (match_dup 1)) ++ (set (match_dup 0) ++ (ior:SI (ior:SI (lshiftrt:SI (and:SI (match_dup 0) ++ (const_int 4278190080)) ++ (const_int 24)) ++ (lshiftrt:SI (and:SI (match_dup 0) ++ (const_int 16711680)) ++ (const_int 8))) ++ (ior:SI (ashift:SI (and:SI (match_dup 0) ++ (const_int 65280)) ++ (const_int 8)) ++ (ashift:SI (and:SI (match_dup 0) ++ (const_int 255)) ++ (const_int 24)))))] ++ "" ++ ++ [(set_attr "length" "4,4,4") ++ (set_attr "type" "alu,store,load_rm")] ++ ) ++ ++ ++;;============================================================================= ++;; blockage ++;;----------------------------------------------------------------------------- ++;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and ++;; all of memory. This blocks insns from being moved across this point. ++ ++(define_insn "blockage" ++ [(unspec_volatile [(const_int 0)] VUNSPEC_BLOCKAGE)] ++ "" ++ "" ++ [(set_attr "length" "0")] ++) ++ ++;;============================================================================= ++;; clzsi2 ++;;----------------------------------------------------------------------------- ++(define_insn "clzsi2" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (clz:SI (match_operand:SI 1 "register_operand" "r"))) ] ++ "" ++ "clz %0, %1" ++ [(set_attr "length" "4") ++ (set_attr "cc" "set_z")] ++ ) ++ ++;;============================================================================= ++;; ctzsi2 ++;;----------------------------------------------------------------------------- ++(define_insn "ctzsi2" ++ [ (set (match_operand:SI 0 "register_operand" "=r,r") ++ (ctz:SI (match_operand:SI 1 "register_operand" "0,r"))) ] ++ "" ++ "@ ++ brev\t%0\;clz\t%0, %0 ++ mov\t%0, %1\;brev\t%0\;clz\t%0, %0" ++ [(set_attr "length" "8") ++ (set_attr "cc" "set_z")] ++ ) ++ ++;;============================================================================= ++;; cache instructions ++;;----------------------------------------------------------------------------- ++(define_insn "cache" ++ [ (unspec_volatile [(match_operand:SI 0 "register_operand" "r") ++ (match_operand:SI 1 "immediate_operand" "Ku05")] VUNSPEC_CACHE)] ++ "" ++ "cache %0[0], %1" ++ [(set_attr "length" "4")] ++ ) ++ ++(define_insn "sync" ++ [ (unspec_volatile [(match_operand:SI 0 "immediate_operand" "Ku08")] VUNSPEC_SYNC)] ++ "" ++ "sync %0" ++ [(set_attr "length" "4")] ++ ) ++ ++;;============================================================================= ++;; TLB instructions ++;;----------------------------------------------------------------------------- ++(define_insn "tlbr" ++ [ (unspec_volatile [(const_int 0)] VUNSPEC_TLBR)] ++ "" ++ "tlbr" ++ [(set_attr "length" "2")] ++ ) ++ ++(define_insn "tlbw" ++ [ (unspec_volatile [(const_int 0)] VUNSPEC_TLBW)] ++ "" ++ "tlbw" ++ [(set_attr "length" "2")] ++ ) ++ ++(define_insn "tlbs" ++ [ (unspec_volatile [(const_int 0)] VUNSPEC_TLBS)] ++ "" ++ "tlbs" ++ [(set_attr "length" "2")] ++ ) ++ ++;;============================================================================= ++;; Breakpoint instruction ++;;----------------------------------------------------------------------------- ++(define_insn "breakpoint" ++ [ (unspec_volatile [(const_int 0)] VUNSPEC_BREAKPOINT)] ++ "" ++ "breakpoint" ++ [(set_attr "length" "2")] ++ ) ++ ++;;============================================================================= ++;; Xchg instruction ++;;----------------------------------------------------------------------------- ++(define_insn "xchg" ++ [ (parallel [(set (match_operand:SI 0 "register_operand" "=&r") ++ (mem:SI (match_operand:SI 1 "register_operand" "r"))) ++ (set (mem:SI (match_operand:SI 2 "register_operand" "=1")) ++ (match_operand:SI 3 "register_operand" "r"))])] ++ "" ++ "xchg\t%0, %1, %3" ++ [(set_attr "length" "4")] ++ ) ++ ++;;============================================================================= ++;; mtsr/mfsr instruction ++;;----------------------------------------------------------------------------- ++(define_insn "mtsr" ++ [ (unspec_volatile [(match_operand 0 "immediate_operand" "i") ++ (match_operand:SI 1 "register_operand" "r")] VUNSPEC_MTSR)] ++ "" ++ "mtsr\t%0, %1" ++ [(set_attr "length" "4")] ++ ) ++ ++(define_insn "mfsr" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (unspec_volatile:SI [(match_operand 1 "immediate_operand" "i")] VUNSPEC_MFSR)) ] ++ "" ++ "mfsr\t%0, %1" ++ [(set_attr "length" "4")] ++ ) ++ ++;;============================================================================= ++;; mtdr/mfdr instruction ++;;----------------------------------------------------------------------------- ++(define_insn "mtdr" ++ [ (unspec_volatile [(match_operand 0 "immediate_operand" "i") ++ (match_operand:SI 1 "register_operand" "r")] VUNSPEC_MTDR)] ++ "" ++ "mtdr\t%0, %1" ++ [(set_attr "length" "4")] ++ ) ++ ++(define_insn "mfdr" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (unspec_volatile:SI [(match_operand 1 "immediate_operand" "i")] VUNSPEC_MFDR)) ] ++ "" ++ "mfdr\t%0, %1" ++ [(set_attr "length" "4")] ++ ) ++ ++;;============================================================================= ++;; musfr ++;;----------------------------------------------------------------------------- ++(define_insn "musfr" ++ [ (unspec_volatile [(match_operand:SI 0 "register_operand" "r")] VUNSPEC_MUSFR)] ++ "" ++ "musfr\t%0" ++ [(set_attr "length" "2") ++ (set_attr "cc" "clobber")] ++ ) ++ ++(define_insn "mustr" ++ [ (set (match_operand:SI 0 "register_operand" "=r") ++ (unspec_volatile:SI [(const_int 0)] VUNSPEC_MUSTR)) ] ++ "" ++ "mustr\t%0" ++ [(set_attr "length" "2")] ++ ) ++ ++;;============================================================================= ++;; Saturation Round Scale instruction ++;;----------------------------------------------------------------------------- ++(define_insn "sats" ++ [ (set (match_operand:SI 0 "register_operand" "+r") ++ (unspec:SI [(match_dup 0) ++ (match_operand 1 "immediate_operand" "Ku05") ++ (match_operand 2 "immediate_operand" "Ku05")] ++ UNSPEC_SATS)) ] ++ "TARGET_DSP" ++ "sats\t%0 >> %1, %2" ++ [(set_attr "type" "alu_sat") ++ (set_attr "length" "4")] ++ ) ++ ++(define_insn "satu" ++ [ (set (match_operand:SI 0 "register_operand" "+r") ++ (unspec:SI [(match_dup 0) ++ (match_operand 1 "immediate_operand" "Ku05") ++ (match_operand 2 "immediate_operand" "Ku05")] ++ UNSPEC_SATU)) ] ++ "TARGET_DSP" ++ "satu\t%0 >> %1, %2" ++ [(set_attr "type" "alu_sat") ++ (set_attr "length" "4")] ++ ) ++ ++(define_insn "satrnds" ++ [ (set (match_operand:SI 0 "register_operand" "+r") ++ (unspec:SI [(match_dup 0) ++ (match_operand 1 "immediate_operand" "Ku05") ++ (match_operand 2 "immediate_operand" "Ku05")] ++ UNSPEC_SATRNDS)) ] ++ "TARGET_DSP" ++ "satrnds\t%0 >> %1, %2" ++ [(set_attr "type" "alu_sat") ++ (set_attr "length" "4")] ++ ) ++ ++(define_insn "satrndu" ++ [ (set (match_operand:SI 0 "register_operand" "+r") ++ (unspec:SI [(match_dup 0) ++ (match_operand 1 "immediate_operand" "Ku05") ++ (match_operand 2 "immediate_operand" "Ku05")] ++ UNSPEC_SATRNDU)) ] ++ "TARGET_DSP" ++ "sats\t%0 >> %1, %2" ++ [(set_attr "type" "alu_sat") ++ (set_attr "length" "4")] ++ ) ++ ++;; Special patterns for dealing with the constant pool ++ ++(define_insn "align_4" ++ [(unspec_volatile [(const_int 0)] VUNSPEC_ALIGN)] ++ "" ++ { ++ assemble_align (32); ++ return ""; ++ } ++ [(set_attr "length" "2")] ++) ++ ++(define_insn "consttable_start" ++ [(unspec_volatile [(const_int 0)] VUNSPEC_POOL_START)] ++ "" ++ { ++ return ".cpool"; ++ } ++ [(set_attr "length" "0")] ++ ) ++ ++(define_insn "consttable_end" ++ [(unspec_volatile [(const_int 0)] VUNSPEC_POOL_END)] ++ "" ++ { ++ making_const_table = FALSE; ++ return ""; ++ } ++ [(set_attr "length" "0")] ++) ++ ++ ++(define_insn "consttable_4" ++ [(unspec_volatile [(match_operand 0 "" "")] VUNSPEC_POOL_4)] ++ "" ++ { ++ making_const_table = TRUE; ++ switch (GET_MODE_CLASS (GET_MODE (operands[0]))) ++ { ++ case MODE_FLOAT: ++ { ++ REAL_VALUE_TYPE r; ++ char real_string[1024]; ++ REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]); ++ real_to_decimal(real_string, &r, 1024, 0, 1); ++ asm_fprintf (asm_out_file, "\t.float\t%s\n", real_string); ++ break; ++ } ++ default: ++ assemble_integer (operands[0], 4, 0, 1); ++ break; ++ } ++ return ""; ++ } ++ [(set_attr "length" "4")] ++) ++ ++(define_insn "consttable_8" ++ [(unspec_volatile [(match_operand 0 "" "")] VUNSPEC_POOL_8)] ++ "" ++ { ++ making_const_table = TRUE; ++ switch (GET_MODE_CLASS (GET_MODE (operands[0]))) ++ { ++ case MODE_FLOAT: ++ { ++ REAL_VALUE_TYPE r; ++ char real_string[1024]; ++ REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]); ++ real_to_decimal(real_string, &r, 1024, 0, 1); ++ asm_fprintf (asm_out_file, "\t.double\t%s\n", real_string); ++ break; ++ } ++ default: ++ assemble_integer(operands[0], 8, 0, 1); ++ break; ++ } ++ return ""; ++ } ++ [(set_attr "length" "8")] ++) ++ ++;;============================================================================= ++;; coprocessor instructions ++;;----------------------------------------------------------------------------- ++(define_insn "cop" ++ [ (unspec_volatile [(match_operand 0 "immediate_operand" "Ku03") ++ (match_operand 1 "immediate_operand" "Ku04") ++ (match_operand 2 "immediate_operand" "Ku04") ++ (match_operand 3 "immediate_operand" "Ku04") ++ (match_operand 4 "immediate_operand" "Ku07")] VUNSPEC_COP)] ++ "" ++ "cop\tcp%0, cr%1, cr%2, cr%3, %4" ++ [(set_attr "length" "4")] ++ ) ++ ++(define_insn "mvcrsi" ++ [ (set (match_operand:SI 0 "avr32_cop_move_operand" "=r,<,Z") ++ (unspec_volatile:SI [(match_operand 1 "immediate_operand" "Ku03,Ku03,Ku03") ++ (match_operand 2 "immediate_operand" "Ku04,Ku04,Ku04")] ++ VUNSPEC_MVCR)) ] ++ "" ++ "@ ++ mvcr.w\tcp%1, %0, cr%2 ++ stcm.w\tcp%1, %0, cr%2 ++ stc.w\tcp%1, %0, cr%2" ++ [(set_attr "length" "4")] ++ ) ++ ++(define_insn "mvcrdi" ++ [ (set (match_operand:DI 0 "avr32_cop_move_operand" "=r,<,Z") ++ (unspec_volatile:DI [(match_operand 1 "immediate_operand" "Ku03,Ku03,Ku03") ++ (match_operand 2 "immediate_operand" "Ku04,Ku04,Ku04")] ++ VUNSPEC_MVCR)) ] ++ "" ++ "@ ++ mvcr.d\tcp%1, %0, cr%2 ++ stcm.d\tcp%1, %0, cr%2-cr%i2 ++ stc.d\tcp%1, %0, cr%2" ++ [(set_attr "length" "4")] ++ ) ++ ++(define_insn "mvrcsi" ++ [ (unspec_volatile:SI [(match_operand 0 "immediate_operand" "Ku03,Ku03,Ku03") ++ (match_operand 1 "immediate_operand" "Ku04,Ku04,Ku04") ++ (match_operand:SI 2 "avr32_cop_move_operand" "r,>,Z")] ++ VUNSPEC_MVRC)] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "mvrc.w\tcp%0, cr%1, %2"; ++ case 1: ++ return "ldcm.w\tcp%0, %2, cr%1"; ++ case 2: ++ return "ldc.w\tcp%0, cr%1, %2"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "4")] ++ ) ++ ++(define_insn "mvrcdi" ++ [ (unspec_volatile:DI [(match_operand 0 "immediate_operand" "Ku03,Ku03,Ku03") ++ (match_operand 1 "immediate_operand" "Ku04,Ku04,Ku04") ++ (match_operand:DI 2 "avr32_cop_move_operand" "r,>,Z")] ++ VUNSPEC_MVRC)] ++ "" ++ { ++ switch (which_alternative){ ++ case 0: ++ return "mvrc.d\tcp%0, cr%1, %2"; ++ case 1: ++ return "ldcm.d\tcp%0, %2, cr%1-cr%i1"; ++ case 2: ++ return "ldc.d\tcp%0, cr%1, %2"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "length" "4")] ++ ) ++ ++;;============================================================================= ++;; epilogue ++;;----------------------------------------------------------------------------- ++;; This pattern emits RTL for exit from a function. The function exit is ++;; responsible for deallocating the stack frame, restoring callee saved ++;; registers and emitting the return instruction. ++;; ToDo: using TARGET_ASM_FUNCTION_PROLOGUE instead. ++;;============================================================================= ++(define_expand "epilogue" ++ [(unspec_volatile [(return)] VUNSPEC_EPILOGUE)] ++ "" ++ " ++ if (USE_RETURN_INSN (FALSE)){ ++ emit_jump_insn (gen_return ()); ++ DONE; ++ } ++ emit_jump_insn (gen_rtx_UNSPEC_VOLATILE (VOIDmode, ++ gen_rtvec (1, ++ gen_rtx_RETURN (VOIDmode)), ++ VUNSPEC_EPILOGUE)); ++ DONE; ++ " ++ ) ++ ++(define_insn "*epilogue_insns" ++ [(unspec_volatile [(return)] VUNSPEC_EPILOGUE)] ++ "" ++ { ++ avr32_output_return_instruction (FALSE, FALSE, NULL, NULL); ++ return ""; ++ } ++ ; Length is absolute worst case ++ [(set_attr "type" "branch") ++ (set_attr "length" "12")] ++ ) ++ ++(define_insn "*epilogue_insns_ret_imm" ++ [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i")) ++ (use (reg RETVAL_REGNUM)) ++ (unspec_volatile [(return)] VUNSPEC_EPILOGUE)])] ++ "((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))" ++ { ++ avr32_output_return_instruction (FALSE, FALSE, NULL, operands[0]); ++ return ""; ++ } ++ ; Length is absolute worst case ++ [(set_attr "type" "branch") ++ (set_attr "length" "12")] ++ ) ++ ++(define_insn "sibcall_epilogue" ++ [(unspec_volatile [(const_int 0)] VUNSPEC_EPILOGUE)] ++ "" ++ { ++ avr32_output_return_instruction (FALSE, FALSE, NULL, NULL); ++ return ""; ++ } ++;; Length is absolute worst case ++ [(set_attr "type" "branch") ++ (set_attr "length" "12")] ++ ) ++ ++(define_insn "*sibcall_epilogue_insns_ret_imm" ++ [(parallel [(set (reg RETVAL_REGNUM) (match_operand 0 "immediate_operand" "i")) ++ (use (reg RETVAL_REGNUM)) ++ (unspec_volatile [(const_int 0)] VUNSPEC_EPILOGUE)])] ++ "((INTVAL(operands[0]) == -1) || (INTVAL(operands[0]) == 0) || (INTVAL(operands[0]) == 1))" ++ { ++ avr32_output_return_instruction (FALSE, FALSE, NULL, operands[0]); ++ return ""; ++ } ++ ; Length is absolute worst case ++ [(set_attr "type" "branch") ++ (set_attr "length" "12")] ++ ) ++ ++(define_insn "ldxi" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (mem:SI (plus:SI ++ (match_operand:SI 1 "register_operand" "r") ++ (mult:SI (zero_extract:SI (match_operand:SI 2 "register_operand" "r") ++ (const_int 8) ++ (match_operand:SI 3 "immediate_operand" "Ku05")) ++ (const_int 4)))))] ++ "(INTVAL(operands[3]) == 24 || INTVAL(operands[3]) == 16 || INTVAL(operands[3]) == 8 ++ || INTVAL(operands[3]) == 0)" ++ { ++ switch ( INTVAL(operands[3]) ){ ++ case 0: ++ return "ld.w %0, %1[%2:b << 2]"; ++ case 8: ++ return "ld.w %0, %1[%2:l << 2]"; ++ case 16: ++ return "ld.w %0, %1[%2:u << 2]"; ++ case 24: ++ return "ld.w %0, %1[%2:t << 2]"; ++ default: ++ internal_error("illegal operand for ldxi"); ++ } ++ } ++ [(set_attr "type" "load") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) ++ ++ ++ ++ ++ ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; sub r8, r7, 8 ++;; st.w r8[0x0], r12 ++;; to ++;; sub r8, r7, 8 ++;; st.w r7[-0x8], r12 ++;;============================================================================= ++; (set (reg:SI 9 r8) ++; (plus:SI (reg/f:SI 6 r7) ++; (const_int ...))) ++; (set (mem:SI (reg:SI 9 r8)) ++; (reg:SI 12 r12)) ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (plus:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" ""))) ++ (set (mem:SI (match_dup 0)) ++ (match_operand:SI 3 "register_operand" ""))] ++ "REGNO(operands[0]) != REGNO(operands[1])" ++ [(set (match_dup 0) ++ (plus:SI (match_dup 1) ++ (match_dup 2))) ++ (set (mem:SI (plus:SI (match_dup 1) ++ (match_dup 2))) ++ (match_dup 3))] ++ "") ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; sub r6, r7, 4 ++;; ld.w r6, r6[0x0] ++;; to ++;; sub r6, r7, 4 ++;; ld.w r6, r7[-0x4] ++;;============================================================================= ++; (set (reg:SI 7 r6) ++; (plus:SI (reg/f:SI 6 r7) ++; (const_int -4 [0xfffffffc]))) ++; (set (reg:SI 7 r6) ++; (mem:SI (reg:SI 7 r6))) ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (plus:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" ""))) ++ (set (match_operand:SI 3 "register_operand" "") ++ (mem:SI (match_dup 0)))] ++ "REGNO(operands[0]) != REGNO(operands[1])" ++ [(set (match_dup 0) ++ (plus:SI (match_dup 1) ++ (match_dup 2))) ++ (set (match_dup 3) ++ (mem:SI (plus:SI (match_dup 1) ++ (match_dup 2))))] ++ "") ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; ld.sb r0, r7[-0x6] ++;; cashs.b r0 ++;; to ++;; ld.sb r0, r7[-0x6] ++;;============================================================================= ++(define_peephole2 ++ [(set (match_operand:QI 0 "register_operand" "") ++ (match_operand:QI 1 "load_sb_memory_operand" "")) ++ (set (match_operand:SI 2 "register_operand" "") ++ (sign_extend:SI (match_dup 0)))] ++ "(REGNO(operands[0]) == REGNO(operands[2]) || peep2_reg_dead_p(2, operands[0]))" ++ [(set (match_dup 2) ++ (sign_extend:SI (match_dup 1)))] ++ "") ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; ld.ub r0, r7[-0x6] ++;; cashu.b r0 ++;; to ++;; ld.ub r0, r7[-0x6] ++;;============================================================================= ++(define_peephole2 ++ [(set (match_operand:QI 0 "register_operand" "") ++ (match_operand:QI 1 "memory_operand" "")) ++ (set (match_operand:SI 2 "register_operand" "") ++ (zero_extend:SI (match_dup 0)))] ++ "(REGNO(operands[0]) == REGNO(operands[2])) || peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 2) ++ (zero_extend:SI (match_dup 1)))] ++ "") ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; ld.sh r0, r7[-0x6] ++;; casts.h r0 ++;; to ++;; ld.sh r0, r7[-0x6] ++;;============================================================================= ++(define_peephole2 ++ [(set (match_operand:HI 0 "register_operand" "") ++ (match_operand:HI 1 "memory_operand" "")) ++ (set (match_operand:SI 2 "register_operand" "") ++ (sign_extend:SI (match_dup 0)))] ++ "(REGNO(operands[0]) == REGNO(operands[2])) || peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 2) ++ (sign_extend:SI (match_dup 1)))] ++ "") ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; ld.uh r0, r7[-0x6] ++;; castu.h r0 ++;; to ++;; ld.uh r0, r7[-0x6] ++;;============================================================================= ++(define_peephole2 ++ [(set (match_operand:HI 0 "register_operand" "") ++ (match_operand:HI 1 "memory_operand" "")) ++ (set (match_operand:SI 2 "register_operand" "") ++ (zero_extend:SI (match_dup 0)))] ++ "(REGNO(operands[0]) == REGNO(operands[2])) || peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 2) ++ (zero_extend:SI (match_dup 1)))] ++ "") ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; mul rd, rx, ry ++;; add rd2, rd ++;; to ++;; mac rd2, rx, ry ++;;============================================================================= ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (mult:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "register_operand" ""))) ++ (set (match_operand:SI 3 "register_operand" "") ++ (plus:SI (match_dup 3) ++ (match_dup 0)))] ++ "peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 3) ++ (plus:SI (mult:SI (match_dup 1) ++ (match_dup 2)) ++ (match_dup 3)))] ++ "") ++ ++ ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Changing ++;; bfextu rd, rs, k5, 1 or and(h/l) rd, one_bit_set_mask ++;; to ++;; bld rs, k5 ++;; ++;; If rd is dead after the operation. ++;;============================================================================= ++(define_peephole2 ++ [ (set (match_operand:SI 0 "register_operand" "") ++ (zero_extract:SI (match_operand:SI 1 "register_operand" "") ++ (const_int 1) ++ (match_operand:SI 2 "immediate_operand" ""))) ++ (set (cc0) ++ (match_dup 0))] ++ "peep2_reg_dead_p(2, operands[0])" ++ [(set (cc0) ++ (and:SI (match_dup 1) ++ (match_dup 2)))] ++ "operands[2] = GEN_INT(1 << INTVAL(operands[2]));") ++ ++(define_peephole2 ++ [ (set (match_operand:SI 0 "register_operand" "") ++ (and:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "one_bit_set_operand" ""))) ++ (set (cc0) ++ (match_dup 0))] ++ "peep2_reg_dead_p(2, operands[0])" ++ [(set (cc0) ++ (and:SI (match_dup 1) ++ (match_dup 2)))] ++ "") ++ ++;;============================================================================= ++;; Peephole optimizing ++;;----------------------------------------------------------------------------- ++;; Load with extracted index: ld.w Rd, Rb[Ri:{t/u/b/l} << 2] ++;; ++;;============================================================================= ++ ++ ++(define_peephole ++ [(set (match_operand:SI 0 "register_operand" "") ++ (zero_extract:SI (match_operand:SI 1 "register_operand" "") ++ (const_int 8) ++ (match_operand:SI 2 "avr32_extract_shift_operand" ""))) ++ (set (match_operand:SI 3 "register_operand" "") ++ (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4)) ++ (match_operand:SI 4 "register_operand" ""))))] ++ ++ "(dead_or_set_p(insn, operands[0]))" ++ { ++ switch ( INTVAL(operands[2]) ){ ++ case 0: ++ return "ld.w %3, %4[%1:b << 2]"; ++ case 8: ++ return "ld.w %3, %4[%1:l << 2]"; ++ case 16: ++ return "ld.w %3, %4[%1:u << 2]"; ++ case 24: ++ return "ld.w %3, %4[%1:t << 2]"; ++ default: ++ internal_error("illegal operand for ldxi"); ++ } ++ } ++ [(set_attr "type" "load") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")] ++ ) ++ ++ ++ ++(define_peephole ++ [(set (match_operand:SI 0 "register_operand" "") ++ (and:SI (match_operand:SI 1 "register_operand" "") (const_int 255))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4)) ++ (match_operand:SI 3 "register_operand" ""))))] ++ ++ "(dead_or_set_p(insn, operands[0]))" ++ ++ "ld.w %2, %3[%1:b << 2]" ++ [(set_attr "type" "load") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")] ++ ) ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (zero_extract:SI (match_operand:SI 1 "register_operand" "") ++ (const_int 8) ++ (match_operand:SI 2 "avr32_extract_shift_operand" ""))) ++ (set (match_operand:SI 3 "register_operand" "") ++ (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4)) ++ (match_operand:SI 4 "register_operand" ""))))] ++ ++ "(peep2_reg_dead_p(2, operands[0])) ++ || (REGNO(operands[0]) == REGNO(operands[3]))" ++ [(set (match_dup 3) ++ (mem:SI (plus:SI ++ (match_dup 4) ++ (mult:SI (zero_extract:SI (match_dup 1) ++ (const_int 8) ++ (match_dup 2)) ++ (const_int 4)))))] ++ ) ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (zero_extend:SI (match_operand:QI 1 "register_operand" ""))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4)) ++ (match_operand:SI 3 "register_operand" ""))))] ++ ++ "(peep2_reg_dead_p(2, operands[0])) ++ || (REGNO(operands[0]) == REGNO(operands[2]))" ++ [(set (match_dup 2) ++ (mem:SI (plus:SI ++ (match_dup 3) ++ (mult:SI (zero_extract:SI (match_dup 1) ++ (const_int 8) ++ (const_int 0)) ++ (const_int 4)))))] ++ "operands[1] = gen_rtx_REG(SImode, REGNO(operands[1]));" ++ ) ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (and:SI (match_operand:SI 1 "register_operand" "") ++ (const_int 255))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4)) ++ (match_operand:SI 3 "register_operand" ""))))] ++ ++ "(peep2_reg_dead_p(2, operands[0])) ++ || (REGNO(operands[0]) == REGNO(operands[2]))" ++ [(set (match_dup 2) ++ (mem:SI (plus:SI ++ (match_dup 3) ++ (mult:SI (zero_extract:SI (match_dup 1) ++ (const_int 8) ++ (const_int 0)) ++ (const_int 4)))))] ++ "" ++ ) ++ ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (lshiftrt:SI (match_operand:SI 1 "register_operand" "") ++ (const_int 24))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (mem:SI (plus:SI (mult:SI (match_dup 0) (const_int 4)) ++ (match_operand:SI 3 "register_operand" ""))))] ++ ++ "(peep2_reg_dead_p(2, operands[0])) ++ || (REGNO(operands[0]) == REGNO(operands[2]))" ++ [(set (match_dup 2) ++ (mem:SI (plus:SI ++ (match_dup 3) ++ (mult:SI (zero_extract:SI (match_dup 1) ++ (const_int 8) ++ (const_int 24)) ++ (const_int 4)))))] ++ "" ++ ) ++ ++ ++;;************************************************ ++;; ANDN ++;; ++;;************************************************ ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (not:SI (match_operand:SI 1 "register_operand" ""))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (and:SI (match_dup 2) ++ (match_dup 0)))] ++ "peep2_reg_dead_p(2, operands[0])" ++ ++ [(set (match_dup 2) ++ (and:SI (match_dup 2) ++ (not:SI (match_dup 1)) ++ ))] ++ "" ++) ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (not:SI (match_operand:SI 1 "register_operand" ""))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (and:SI (match_dup 0) ++ (match_dup 2) ++ ))] ++ "peep2_reg_dead_p(2, operands[0])" ++ ++ [(set (match_dup 2) ++ (and:SI (match_dup 2) ++ (not:SI (match_dup 1)) ++ ))] ++ ++ "" ++) ++ ++ ++;;================================================================= ++;; Addabs peephole ++;;================================================================= ++ ++(define_peephole ++ [(set (match_operand:SI 2 "register_operand" "=r") ++ (abs:SI (match_operand:SI 1 "register_operand" "r"))) ++ (set (match_operand:SI 0 "register_operand" "=r") ++ (plus:SI (match_operand:SI 3 "register_operand" "r") ++ (match_dup 2)))] ++ "dead_or_set_p(insn, operands[2])" ++ "addabs %0, %3, %1" ++ [(set_attr "length" "4") ++ (set_attr "cc" "set_z")]) ++ ++(define_peephole ++ [(set (match_operand:SI 2 "register_operand" "=r") ++ (abs:SI (match_operand:SI 1 "register_operand" "r"))) ++ (set (match_operand:SI 0 "register_operand" "=r") ++ (plus:SI (match_dup 2) ++ (match_operand:SI 3 "register_operand" "r")))] ++ "dead_or_set_p(insn, operands[2])" ++ "addabs %0, %3, %1" ++ [(set_attr "length" "4") ++ (set_attr "cc" "set_z")]) ++ ++ ++;;================================================================= ++;; Detect roundings ++;;================================================================= ++ ++(define_insn "*round" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (ashiftrt:SI (plus:SI (match_operand:SI 1 "register_operand" "0") ++ (match_operand:SI 2 "immediate_operand" "i")) ++ (match_operand:SI 3 "immediate_operand" "i")))] ++ "avr32_rnd_operands(operands[2], operands[3])" ++ ++ "satrnds %0 >> %3, 31" ++ ++ [(set_attr "type" "alu_sat") ++ (set_attr "length" "4")] ++ ++ ) ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (plus:SI (match_dup 0) ++ (match_operand:SI 1 "immediate_operand" ""))) ++ (set (match_dup 0) ++ (ashiftrt:SI (match_dup 0) ++ (match_operand:SI 2 "immediate_operand" "")))] ++ "avr32_rnd_operands(operands[1], operands[2])" ++ ++ [(set (match_dup 0) ++ (ashiftrt:SI (plus:SI (match_dup 0) ++ (match_dup 1)) ++ (match_dup 2)))] ++ ) ++ ++(define_peephole ++ [(set (match_operand:SI 0 "register_operand" "r") ++ (plus:SI (match_dup 0) ++ (match_operand:SI 1 "immediate_operand" "i"))) ++ (set (match_dup 0) ++ (ashiftrt:SI (match_dup 0) ++ (match_operand:SI 2 "immediate_operand" "i")))] ++ "avr32_rnd_operands(operands[1], operands[2])" ++ ++ "satrnds %0 >> %2, 31" ++ ++ [(set_attr "type" "alu_sat") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")] ++ ++ ) ++ ++ ++ ++ ++;;================================================================= ++;; Conditional Subtract ++;;================================================================= ++ ++ ++(define_peephole ++ [(set (match_operand:SI 0 "register_operand" "") ++ (minus:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" ""))) ++ (set (match_dup 1) ++ (unspec:SI [(match_operand 5 "avr32_comparison_operator" "") ++ (match_dup 0) ++ (match_dup 1) ++ (match_operand 3 "general_operand" "") ++ (match_operand 4 "general_operand" "")] ++ UNSPEC_MOVSICC))] ++ ++ "(dead_or_set_p(insn, operands[0])) && avr32_const_ok_for_constraint_p(INTVAL(operands[2]), 'K', \"Ks08\")" ++ ++ { ++ ++ operands[5] = avr32_output_cmp(operands[5], GET_MODE(operands[3]), operands[3], operands[4]); ++ ++ return "sub%5 %1, %2"; ++ } ++ ++ [(set_attr "length" "10") ++ (set_attr "cc" "clobber")] ++ ) ++ ++(define_peephole ++ [(set (match_operand:SI 0 "register_operand" "") ++ (plus:SI (match_operand:SI 1 "register_operand" "") ++ (match_operand:SI 2 "immediate_operand" ""))) ++ (set (match_dup 1) ++ (unspec:SI [(match_operand 5 "avr32_comparison_operator" "") ++ (match_dup 0) ++ (match_dup 1) ++ (match_operand 3 "general_operand" "") ++ (match_operand 4 "general_operand" "")] ++ UNSPEC_MOVSICC))] ++ ++ "(dead_or_set_p(insn, operands[0]) && avr32_const_ok_for_constraint_p(INTVAL(operands[2]), 'I', \"Is08\"))" ++ ++ { ++ operands[5] = avr32_output_cmp(operands[5], GET_MODE(operands[3]), operands[3], operands[4]); ++ ++ return "sub%5 %1, %n2"; ++ } ++ [(set_attr "length" "10") ++ (set_attr "cc" "clobber")] ++ ) ++ ++;;================================================================= ++;; mcall ++;;================================================================= ++(define_peephole ++ [(set (match_operand:SI 0 "register_operand" "") ++ (match_operand 1 "avr32_const_pool_ref_operand" "")) ++ (parallel [(call (mem:SI (match_dup 0)) ++ (match_operand 2 "" "")) ++ (clobber (reg:SI LR_REGNUM))])] ++ "dead_or_set_p(insn, operands[0])" ++ "mcall %1" ++ [(set_attr "type" "call") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")] ++) ++ ++(define_peephole ++ [(set (match_operand:SI 2 "register_operand" "") ++ (match_operand 1 "avr32_const_pool_ref_operand" "")) ++ (parallel [(set (match_operand 0 "register_operand" "") ++ (call (mem:SI (match_dup 2)) ++ (match_operand 3 "" ""))) ++ (clobber (reg:SI LR_REGNUM))])] ++ "dead_or_set_p(insn, operands[2])" ++ "mcall %1" ++ [(set_attr "type" "call") ++ (set_attr "length" "4") ++ (set_attr "cc" "call_set")] ++) ++ ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (match_operand 1 "avr32_const_pool_ref_operand" "")) ++ (parallel [(call (mem:SI (match_dup 0)) ++ (match_operand 2 "" "")) ++ (clobber (reg:SI LR_REGNUM))])] ++ "peep2_reg_dead_p(2, operands[0])" ++ [(parallel [(call (mem:SI (match_dup 1)) ++ (match_dup 2)) ++ (clobber (reg:SI LR_REGNUM))])] ++ "" ++) ++ ++(define_peephole2 ++ [(set (match_operand:SI 0 "register_operand" "") ++ (match_operand 1 "avr32_const_pool_ref_operand" "")) ++ (parallel [(set (match_operand 2 "register_operand" "") ++ (call (mem:SI (match_dup 0)) ++ (match_operand 3 "" ""))) ++ (clobber (reg:SI LR_REGNUM))])] ++ "(peep2_reg_dead_p(2, operands[0]) || (REGNO(operands[2]) == REGNO(operands[0])))" ++ [(parallel [(set (match_dup 2) ++ (call (mem:SI (match_dup 1)) ++ (match_dup 3))) ++ (clobber (reg:SI LR_REGNUM))])] ++ "" ++) ++ ++;;================================================================= ++;; Returning a value ++;;================================================================= ++ ++ ++(define_peephole ++ [(set (match_operand 0 "register_operand" "") ++ (match_operand 1 "register_operand" "")) ++ (return)] ++ "USE_RETURN_INSN (TRUE) && (REGNO(operands[0]) == RETVAL_REGNUM) ++ && (REGNO(operands[1]) != LR_REGNUM) ++ && (REGNO_REG_CLASS(REGNO(operands[1])) == GENERAL_REGS)" ++ "retal %1" ++ [(set_attr "type" "call") ++ (set_attr "length" "2")] ++ ) ++ ++ ++(define_peephole ++ [(set (match_operand 0 "register_operand" "r") ++ (match_operand 1 "immediate_operand" "i")) ++ (return)] ++ "(USE_RETURN_INSN (FALSE) && (REGNO(operands[0]) == RETVAL_REGNUM) && ++ ((INTVAL(operands[1]) == -1) || (INTVAL(operands[1]) == 0) || (INTVAL(operands[1]) == 1)))" ++ { ++ avr32_output_return_instruction (TRUE, FALSE, NULL, operands[1]); ++ return ""; ++ } ++ [(set_attr "type" "call") ++ (set_attr "length" "4")] ++ ) ++ ++(define_peephole ++ [(set (match_operand 0 "register_operand" "r") ++ (match_operand 1 "immediate_operand" "i")) ++ (unspec_volatile [(return)] VUNSPEC_EPILOGUE)] ++ "(REGNO(operands[0]) == RETVAL_REGNUM) && ++ ((INTVAL(operands[1]) == -1) || (INTVAL(operands[1]) == 0) || (INTVAL(operands[1]) == 1))" ++ { ++ avr32_output_return_instruction (FALSE, FALSE, NULL, operands[1]); ++ return ""; ++ } ++ ; Length is absolute worst case ++ [(set_attr "type" "branch") ++ (set_attr "length" "12")] ++ ) ++ ++(define_peephole ++ [(set (match_operand 0 "register_operand" "r") ++ (unspec [(match_operand 1 "avr32_comparison_operator" "") ++ (match_operand 2 "register_immediate_operand" "rKs08") ++ (match_operand 3 "register_immediate_operand" "rKs08") ++ (match_operand 4 "register_immediate_operand" "r") ++ (match_operand 5 "register_immediate_operand" "rKs21") ++ ] ++ UNSPEC_MOVSICC )) ++ (return)] ++ "USE_RETURN_INSN (TRUE) && (REGNO(operands[0]) == RETVAL_REGNUM) && ++ ((GET_MODE(operands[4]) == SImode) || ++ ((GET_MODE(operands[4]) != SImode) && (GET_CODE(operands[5]) == REG)))" ++ { ++ operands[1] = avr32_output_cmp(operands[1], GET_MODE(operands[4]), operands[4], operands[5]); ++ ++ if ( GET_CODE(operands[2]) == REG ++ && GET_CODE(operands[3]) == REG ++ && REGNO(operands[2]) != LR_REGNUM ++ && REGNO(operands[3]) != LR_REGNUM ){ ++ return "ret%1 %2\;ret%i1 %3"; ++ } else if ( GET_CODE(operands[2]) == REG ++ && GET_CODE(operands[3]) == CONST_INT ){ ++ if ( INTVAL(operands[3]) == -1 ++ || INTVAL(operands[3]) == 0 ++ || INTVAL(operands[3]) == 1 ){ ++ return "ret%1 %2\;ret%i1 %d3"; ++ } else { ++ return "mov%1 r12, %2\;mov%i1 r12, %3\;retal r12"; ++ } ++ } else if ( GET_CODE(operands[2]) == CONST_INT ++ && GET_CODE(operands[3]) == REG ){ ++ if ( INTVAL(operands[2]) == -1 ++ || INTVAL(operands[2]) == 0 ++ || INTVAL(operands[2]) == 1 ){ ++ return "ret%1 %d2\;ret%i1 %3"; ++ } else { ++ return "mov%1 r12, %2\;mov%i1 r12, %3\;retal r12"; ++ } ++ } else { ++ if ( (INTVAL(operands[2]) == -1 ++ || INTVAL(operands[2]) == 0 ++ || INTVAL(operands[2]) == 1 ) ++ && (INTVAL(operands[3]) == -1 ++ || INTVAL(operands[3]) == 0 ++ || INTVAL(operands[3]) == 1 )){ ++ return "ret%1 %d2\;ret%i1 %d3"; ++ } else { ++ return "mov%1 r12, %2\;mov%i1 r12, %3\;retal r12"; ++ } ++ } ++ } ++ ++ [(set_attr "length" "14") ++ (set_attr "cc" "clobber") ++ (set_attr "type" "call")]) ++ ++ ++;;================================================================= ++;; mulnhh.w ++;;================================================================= ++ ++(define_peephole2 ++ [(set (match_operand:HI 0 "register_operand" "") ++ (neg:HI (match_operand:HI 1 "register_operand" ""))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (mult:SI ++ (sign_extend:SI (match_dup 0)) ++ (sign_extend:SI (match_operand:HI 3 "register_operand" ""))))] ++ "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[2]) == REGNO(operands[0]))" ++ [ (set (match_dup 2) ++ (mult:SI ++ (sign_extend:SI (neg:HI (match_dup 1))) ++ (sign_extend:SI (match_dup 3))))] ++ "" ++ ) ++ ++(define_peephole2 ++ [(set (match_operand:HI 0 "register_operand" "") ++ (neg:HI (match_operand:HI 1 "register_operand" ""))) ++ (set (match_operand:SI 2 "register_operand" "") ++ (mult:SI ++ (sign_extend:SI (match_operand:HI 3 "register_operand" "")) ++ (sign_extend:SI (match_dup 0))))] ++ "(peep2_reg_dead_p(2, operands[0])) || (REGNO(operands[2]) == REGNO(operands[0]))" ++ [ (set (match_dup 2) ++ (mult:SI ++ (sign_extend:SI (neg:HI (match_dup 1))) ++ (sign_extend:SI (match_dup 3))))] ++ "" ++ ) ++ ++ ++ ++;;================================================================= ++;; sthh.w ++;;================================================================= ++(define_insn "vec_setv2hi" ++ [(set (match_operand:V2HI 0 "register_operand" "=r") ++ (vec_merge:V2HI ++ (match_dup 0) ++ (vec_duplicate:V2HI ++ (match_operand:HI 1 "register_operand" "r")) ++ (const_int 1)))] ++ "" ++ "bfins\t%0, %1, 16, 16" ++ [(set_attr "type" "alu") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")]) ++ ++(define_insn "vec_setv2lo" ++ [(set (match_operand:V2HI 0 "register_operand" "+r") ++ (vec_merge:V2HI ++ (match_dup 0) ++ (vec_duplicate:V2HI ++ (match_operand:HI 1 "register_operand" "r")) ++ (const_int 2)))] ++ "" ++ "bfins\t%0, %1, 0, 16" ++ [(set_attr "type" "alu") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")]) ++ ++(define_expand "vec_setv2" ++ [(set (match_operand:V2HI 0 "register_operand" "") ++ (vec_merge:V2HI ++ (match_dup 0) ++ (vec_duplicate:V2HI ++ (match_operand:HI 1 "register_operand" "")) ++ (match_operand 2 "immediate_operand" "")))] ++ "" ++ { operands[2] = GEN_INT(INTVAL(operands[2]) + 1); } ++ ) ++ ++(define_insn "vec_extractv2hi" ++ [(set (match_operand:HI 0 "register_operand" "=r") ++ (vec_select:HI ++ (match_operand:V2HI 1 "register_operand" "r") ++ (parallel [(match_operand:SI 2 "immediate_operand" "i")])))] ++ "" ++ { ++ if ( INTVAL(operands[2]) == 0 ) ++ return "bfextu\t%0, %1, 16, 16"; ++ else ++ return "bfextu\t%0, %1, 0, 16"; ++ } ++ [(set_attr "type" "alu") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")]) ++ ++(define_insn "vec_extractv4qi" ++ [(set (match_operand:QI 0 "register_operand" "=r") ++ (vec_select:QI ++ (match_operand:V4QI 1 "register_operand" "r") ++ (parallel [(match_operand:SI 2 "immediate_operand" "i")])))] ++ "" ++ { ++ switch ( INTVAL(operands[2]) ){ ++ case 0: ++ return "bfextu\t%0, %1, 24, 8"; ++ case 1: ++ return "bfextu\t%0, %1, 16, 8"; ++ case 2: ++ return "bfextu\t%0, %1, 8, 8"; ++ case 3: ++ return "bfextu\t%0, %1, 0, 8"; ++ default: ++ abort(); ++ } ++ } ++ [(set_attr "type" "alu") ++ (set_attr "length" "4") ++ (set_attr "cc" "clobber")]) ++ ++ ++(define_insn "concatv2hi" ++ [(set (match_operand:V2HI 0 "register_operand" "=r, r, r") ++ (vec_concat:V2HI ++ (match_operand:HI 1 "register_operand" "r, r, 0") ++ (match_operand:HI 2 "register_operand" "r, 0, r")))] ++ "" ++ "@ ++ mov\t%0, %1\;bfins\t%0, %2, 0, 16 ++ bfins\t%0, %2, 0, 16 ++ bfins\t%0, %1, 16, 16" ++ [(set_attr "length" "6, 4, 4") ++ (set_attr "type" "alu")]) ++ ++;(define_peephole2 ++; [(set (match_operand:HI 0 "register_operand" "r") ++; (plus:HI (match_operand:HI 3 "register_operand" "r") ++; (match_operand:HI 4 "register_operand" "r"))) ++; (set (match_operand:HI 1 "register_operand" "r") ++; (minus:HI (match_dup 3) ++; (match_dup 4)))] ++; "REGNO(operands[0]) != REGNO(operands[3])" ++; [(set (match_dup 2) ++; (vec_concat:V2HI ++; (minus:HI (match_dup 3) ++; (match_dup 4)) ++; (plus:HI (match_dup 3) (match_dup 4)))) ++; (set (match_dup 1) (vec_select:HI (match_dup 2) ++; (parallel [(const_int 0)])))] ++; ++; "operands[2] = gen_rtx_REG(V2HImode, REGNO(operands[0]));" ++; ) ++; ++;(define_peephole2 ++; [(set (match_operand:HI 0 "register_operand" "r") ++; (minus:HI (match_operand:HI 3 "register_operand" "r") ++; (match_operand:HI 4 "register_operand" "r"))) ++; (set (match_operand:HI 1 "register_operand" "r") ++; (plus:HI (match_dup 3) ++; (match_dup 4)))] ++; "REGNO(operands[0]) != REGNO(operands[3])" ++; [(set (match_dup 2) ++; (vec_concat:V2HI ++; (plus:HI (match_dup 3) ++; (match_dup 4)) ++; (minus:HI (match_dup 3) (match_dup 4)))) ++; (set (match_dup 1) (vec_select:HI (match_dup 2) ++; (parallel [(const_int 0)])))] ++; ++; "operands[2] = gen_rtx_REG(V2HImode, REGNO(operands[0]));" ++; ) ++ ++ ++;(define_peephole2 ++; [(match_scratch:V2HI 5 "r") ++; (set (mem:HI (plus:SI (match_operand:SI 0 "register_operand" "") ++; (match_operand:HI 1 "immediate_operand" ""))) ++; (match_operand:HI 2 "register_operand" "r")) ++; (set (mem:HI (plus:SI (match_dup 0) ++; (match_operand:HI 3 "immediate_operand" ""))) ++; (match_operand:HI 4 "register_operand" "r"))] ++; "(GET_CODE(operands[1]) == CONST_INT) && (GET_CODE(operands[3]) == CONST_INT) ++; && (INTVAL(operands[3]) == (INTVAL(operands[1]) + 2))" ++; ++; [(set (match_dup 5) ++; (vec_concat:V2HI ++; (match_dup 2) ++; (match_dup 4))) ++; (set (mem:V2HI (plus:SI (match_dup 0) (match_dup 1))) ++; (match_dup 5))] ++; "" ++; ) ++; ++ ++;(define_insn "sthh_w" ++; [(set (match_operand:V2HI 0 "avr32_sthh_w_memory_operand" "m") ++; (vec_concat:V2HI ++; (vec_select:HI (match_operand:V2HI 1 "register_operand" "r") ++; (parallel [(match_operand 3 "immediate_operand" "i")])) ++; (vec_select:HI (match_operand:V2HI 2 "register_operand" "r") ++; (parallel [(match_operand 4 "immediate_operand" "i")]))))] ++; "MEM_ALIGN(operands[0]) >= 32" ++; "sthh.w\t%0, %1:%h3, %2:%h4" ++; [(set_attr "length" "4") ++; (set_attr "type" "store")]) ++; ++;(define_peephole2 ++; [(set (mem:HI (plus:SI (match_operand:SI 0 "register_operand" "") ++; (match_operand:HI 1 "immediate_operand" ""))) ++; (match_operand:HI 2 "register_operand" "r")) ++; (set (mem:HI (plus:SI (match_dup 0) ++; (match_operand:HI 3 "avr32_sthh_operand" ""))) ++; (match_operand:HI 4 "register_operand" "r"))] ++; "(GET_CODE(operands[1]) == CONST_INT) && (GET_CODE(operands[3]) == CONST_INT) ++; && (INTVAL(operands[3]) == (INTVAL(operands[1]) - 2))" ++; ++; [(paralell [(set (mem:HI (plus:SI (match_dup 0) ++; (match_dup 3))) ++; (match_dup 4)) ++; (set (mem:HI (plus:SI (match_dup 0) ++; (plus:SI (match_dup 3) (const_int 2)))) ++; (match_dup 2))])] ++; "" ++; ) ++ ++ ++;; Load the SIMD description ++(include "simd.md") ++ ++;; Load the FP coprocessor patterns ++(include "fpcp.md") +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/avr32-modes.def gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32-modes.def +--- gcc-4.0.2/gcc/config/avr32/avr32-modes.def 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32-modes.def 2005-08-19 14:17:15.000000000 +0200 +@@ -0,0 +1 @@ ++VECTOR_MODES (INT, 4); /* V4QI V2HI */ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/avr32-protos.h gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32-protos.h +--- gcc-4.0.2/gcc/config/avr32/avr32-protos.h 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/avr32-protos.h 2006-10-10 13:03:42.000000000 +0200 +@@ -0,0 +1,175 @@ ++/* ++ Prototypes for exported functions defined in avr32.c ++ Copyright 2003-2006 Atmel Corporation. ++ ++ Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++ Initial porting by Anders dland. ++ ++ This file is part of GCC. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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 program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++ ++#ifndef AVR32_PROTOS_H ++#define AVR32_PROTOS_H ++ ++extern const int swap_reg[]; ++ ++extern int avr32_valid_macmac_bypass (rtx, rtx); ++extern int avr32_valid_mulmac_bypass (rtx, rtx); ++ ++extern int avr32_decode_lcomm_symbol_offset (rtx, int *); ++extern void avr32_encode_lcomm_symbol_offset (tree, char *, int); ++ ++extern const char *avr32_strip_name_encoding (const char *); ++ ++extern rtx avr32_get_note_reg_equiv (rtx insn); ++ ++extern int avr32_use_return_insn (int iscond); ++ ++extern void avr32_make_reglist16 (int reglist16_vect, char *reglist16_string); ++ ++extern void avr32_make_reglist8 (int reglist8_vect, char *reglist8_string); ++extern void avr32_make_fp_reglist_w (int reglist_mask, char *reglist_string); ++extern void avr32_make_fp_reglist_d (int reglist_mask, char *reglist_string); ++ ++extern void avr32_output_return_instruction (int single_ret_inst, ++ int iscond, rtx cond, ++ rtx r12_imm); ++extern void avr32_expand_prologue (void); ++extern void avr32_set_return_address (rtx source); ++ ++extern int avr32_hard_regno_mode_ok (int regno, enum machine_mode mode); ++extern int avr32_extra_constraint_s (rtx value, const int strict); ++extern int avr32_eh_return_data_regno (const int n); ++extern int avr32_initial_elimination_offset (const int from, const int to); ++extern rtx avr32_function_arg (CUMULATIVE_ARGS * cum, enum machine_mode mode, ++ tree type, int named); ++extern void avr32_init_cumulative_args (CUMULATIVE_ARGS * cum, tree fntype, ++ rtx libname, tree fndecl); ++extern void avr32_function_arg_advance (CUMULATIVE_ARGS * cum, ++ enum machine_mode mode, ++ tree type, int named); ++#ifdef ARGS_SIZE_RTX ++/* expr.h defines ARGS_SIZE_RTX and `enum direction'. */ ++extern enum direction avr32_function_arg_padding (enum machine_mode mode, ++ tree type); ++#endif /* ARGS_SIZE_RTX */ ++extern rtx avr32_function_value (tree valtype, tree func); ++extern rtx avr32_libcall_value (enum machine_mode mode); ++extern int avr32_sched_use_dfa_pipeline_interface (void); ++extern bool avr32_return_in_memory (tree type, tree fntype); ++extern void avr32_regs_to_save (char *operand); ++extern void avr32_target_asm_function_prologue (FILE * file, ++ HOST_WIDE_INT size); ++extern void avr32_target_asm_function_epilogue (FILE * file, ++ HOST_WIDE_INT size); ++extern void avr32_trampoline_template (FILE * file); ++extern void avr32_initialize_trampoline (rtx addr, rtx fnaddr, ++ rtx static_chain); ++extern int avr32_legitimate_address (enum machine_mode mode, rtx x, ++ int strict); ++extern int avr32_legitimate_constant_p (rtx x); ++ ++extern int avr32_legitimate_pic_operand_p (rtx x); ++ ++extern rtx avr32_find_symbol (rtx x); ++extern void avr32_select_section (rtx exp, int reloc, int align); ++extern void avr32_encode_section_info (tree decl, rtx rtl, int first); ++extern void avr32_asm_file_end (FILE * stream); ++extern void avr32_asm_output_ascii (FILE * stream, char *ptr, int len); ++extern void avr32_asm_output_common (FILE * stream, const char *name, ++ int size, int rounded); ++extern void avr32_asm_output_label (FILE * stream, const char *name); ++extern void avr32_asm_declare_object_name (FILE * stream, char *name, ++ tree decl); ++extern void avr32_asm_globalize_label (FILE * stream, const char *name); ++extern void avr32_asm_weaken_label (FILE * stream, const char *name); ++extern void avr32_asm_output_external (FILE * stream, tree decl, ++ const char *name); ++extern void avr32_asm_output_external_libcall (FILE * stream, rtx symref); ++extern void avr32_asm_output_labelref (FILE * stream, const char *name); ++extern void avr32_notice_update_cc (rtx exp, rtx insn); ++extern void avr32_print_operand (FILE * stream, rtx x, int code); ++extern void avr32_print_operand_address (FILE * stream, rtx x); ++ ++extern int avr32_symbol (rtx x); ++ ++extern void avr32_select_rtx_section (enum machine_mode mode, rtx x, ++ unsigned HOST_WIDE_INT align); ++ ++extern int avr32_load_multiple_operation (rtx op, enum machine_mode mode); ++extern int avr32_store_multiple_operation (rtx op, enum machine_mode mode); ++ ++extern int avr32_const_ok_for_constraint_p (HOST_WIDE_INT value, char c, ++ const char *str); ++ ++extern bool avr32_cannot_force_const_mem (rtx x); ++ ++extern void avr32_init_builtins (void); ++ ++extern rtx avr32_expand_builtin (tree exp, rtx target, rtx subtarget, ++ enum machine_mode mode, int ignore); ++ ++extern bool avr32_must_pass_in_stack (enum machine_mode mode, tree type); ++ ++extern bool avr32_strict_argument_naming (CUMULATIVE_ARGS * ca); ++ ++extern bool avr32_pass_by_reference (CUMULATIVE_ARGS * cum, ++ enum machine_mode mode, ++ tree type, bool named); ++ ++extern rtx avr32_gen_load_multiple (rtx * regs, int count, rtx from, ++ int write_back, int in_struct_p, ++ int scalar_p); ++extern rtx avr32_gen_store_multiple (rtx * regs, int count, rtx to, ++ int in_struct_p, int scalar_p); ++extern int avr32_gen_movmemsi (rtx * operands); ++ ++extern int avr32_rnd_operands (rtx add, rtx shift); ++extern int avr32_adjust_insn_length (rtx insn, int length); ++ ++extern int symbol_mentioned_p (rtx x); ++extern int label_mentioned_p (rtx x); ++extern rtx legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg); ++extern int avr32_address_register_rtx_p (rtx x, int strict_p); ++extern int avr32_legitimate_index_p (enum machine_mode mode, rtx index, ++ int strict_p); ++ ++extern int avr32_const_double_immediate (rtx value); ++extern void avr32_init_expanders (void); ++extern rtx avr32_return_addr (int count, rtx frame); ++extern bool avr32_got_mentioned_p (rtx addr); ++ ++extern void avr32_final_prescan_insn (rtx insn, rtx * opvec, int noperands); ++ ++extern int avr32_expand_movcc (enum machine_mode mode, rtx operands[]); ++extern int avr32_expand_addcc (enum machine_mode mode, rtx operands[]); ++#ifdef RTX_CODE ++extern int avr32_expand_scc (RTX_CODE cond, rtx * operands); ++#endif ++ ++extern int avr32_store_bypass (rtx insn_out, rtx insn_in); ++extern int avr32_mul_waw_bypass (rtx insn_out, rtx insn_in); ++extern int avr32_valid_load_double_bypass (rtx insn_out, rtx insn_in); ++extern int avr32_valid_load_quad_bypass (rtx insn_out, rtx insn_in); ++extern rtx avr32_output_cmp (rtx cond, enum machine_mode mode, ++ rtx op0, rtx op1); ++ ++rtx get_next_insn_cond (rtx cur_insn); ++int set_next_insn_cond (rtx cur_insn, rtx cond); ++void avr32_override_options (void); ++ ++#endif /* AVR32_PROTOS_H */ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/crti.asm gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/crti.asm +--- gcc-4.0.2/gcc/config/avr32/crti.asm 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/crti.asm 2006-10-10 12:36:34.000000000 +0200 +@@ -0,0 +1,64 @@ ++/* ++ Init/fini stuff for AVR32. ++ Copyright 2003-2006 Atmel Corporation. ++ ++ Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++ ++ This file is part of GCC. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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 program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++ ++/* The code in sections .init and .fini is supposed to be a single ++ regular function. The function in .init is called directly from ++ start in crt1.asm. The function in .fini is atexit()ed in crt1.asm ++ too. ++ ++ crti.asm contributes the prologue of a function to these sections, ++ and crtn.asm comes up the epilogue. STARTFILE_SPEC should list ++ crti.o before any other object files that might add code to .init ++ or .fini sections, and ENDFILE_SPEC should list crtn.o after any ++ such object files. */ ++ ++ .file "crti.asm" ++ ++ .section ".init" ++/* Just load the GOT */ ++ .align 2 ++ .global _init ++_init: ++ stm --sp, r6, lr ++ lddpc r6, 1f ++0: ++ rsub r6, pc ++ rjmp 2f ++ .align 2 ++1: .long 0b - _GLOBAL_OFFSET_TABLE_ ++2: ++ ++ .section ".fini" ++/* Just load the GOT */ ++ .align 2 ++ .global _fini ++_fini: ++ stm --sp, r6, lr ++ lddpc r6, 1f ++0: ++ rsub r6, pc ++ rjmp 2f ++ .align 2 ++1: .long 0b - _GLOBAL_OFFSET_TABLE_ ++2: ++ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/crtn.asm gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/crtn.asm +--- gcc-4.0.2/gcc/config/avr32/crtn.asm 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/crtn.asm 2006-10-10 12:36:34.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Copyright (C) 2001 Free Software Foundation, Inc. ++ Written By Nick Clifton ++ ++ This file 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. ++ ++ In addition to the permissions in the GNU General Public License, the ++ Free Software Foundation gives you unlimited permission to link the ++ compiled version of this file with other programs, and to distribute ++ those programs without any restriction coming from the use of this ++ file. (The General Public License restrictions do apply in other ++ respects; for example, they cover modification of the file, and ++ distribution when not linked into another program.) ++ ++ This file 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 program; 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, if you link this library with files ++ compiled with GCC to produce an executable, this does not 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. ++*/ ++ ++ ++ ++ ++ .file "crtn.asm" ++ ++ .section ".init" ++ ldm sp++, r6, pc ++ ++ .section ".fini" ++ ldm sp++, r6, pc ++ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/fpcp.md gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/fpcp.md +--- gcc-4.0.2/gcc/config/avr32/fpcp.md 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/fpcp.md 2006-10-10 12:36:34.000000000 +0200 +@@ -0,0 +1,551 @@ ++;; AVR32 machine description file for Floating-Point instructions. ++;; Copyright 2003-2006 Atmel Corporation. ++;; ++;; Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++;; ++;; This file is part of GCC. ++;; ++;; This program is free software; you can redistribute it and/or modify ++;; it under the terms of the GNU General Public License as published by ++;; the Free Software Foundation; either version 2 of the License, or ++;; (at your option) any later version. ++;; ++;; This program 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 program; if not, write to the Free Software ++;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++;; -*- Mode: Scheme -*- ++ ++;;****************************************************************************** ++;; Automaton pipeline description for floating-point coprocessor insns ++;;****************************************************************************** ++(define_cpu_unit "fid,fm1,fm2,fm3,fm4,fwb,fcmp,fcast" "avr32_ap") ++ ++(define_insn_reservation "fmv_op" 1 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fmv")) ++ "is,da,d,fid,fwb") ++ ++(define_insn_reservation "fmul_op" 5 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fmul")) ++ "is,da,d,fid,fm1,fm2,fm3,fm4,fwb") ++ ++(define_insn_reservation "fcmps_op" 1 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fcmps")) ++ "is,da,d,fid,fcmp") ++ ++(define_insn_reservation "fcmpd_op" 2 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fcmpd")) ++ "is,da,d,fid*2,fcmp") ++ ++(define_insn_reservation "fcast_op" 3 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fcast")) ++ "is,da,d,fid,fcmp,fcast,fwb") ++ ++(define_insn_reservation "fmvcpu_op" 2 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fmvcpu")) ++ "is,da,d") ++ ++(define_insn_reservation "fldd_op" 1 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fldd")) ++ "is,da,d,fwb") ++ ++(define_insn_reservation "flds_op" 1 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "flds")) ++ "is,da,d,fwb") ++ ++(define_insn_reservation "fsts_op" 0 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fsts")) ++ "is,da*2,d") ++ ++(define_insn_reservation "fstd_op" 0 ++ (and (eq_attr "pipeline" "ap") ++ (eq_attr "type" "fstd")) ++ "is,da*2,d") ++ ++ ++(define_insn "*movsf_fpcp" ++ [(set (match_operand:SF 0 "nonimmediate_operand" "=f,f,r,f,m,r,r,r,m") ++ (match_operand:SF 1 "general_operand" " f,r,f,m,f,r,G,m,r"))] ++ "TARGET_HARD_FLOAT" ++ "@ ++ fmov.s\t%0, %1 ++ fmov.s\t%0, %1 ++ fmov.s\t%0, %1 ++ fld.s\t%0, %1 ++ fst.s\t%0, %1 ++ mov\t%0, %1 ++ mov\t%0, %1 ++ ld.w\t%0, %1 ++ st.w\t%0, %1" ++ [(set_attr "length" "4,4,4,4,4,2,4,4,4") ++ (set_attr "type" "fmv,flds,fmvcpu,flds,fsts,alu,alu,load,store")]) ++ ++(define_insn_and_split "*movdf_fpcp" ++ [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f,r,f,m,r,r,m") ++ (match_operand:DF 1 "general_operand" " f,r,f,m,f,r,m,r"))] ++ "TARGET_HARD_FLOAT" ++ "@ ++ fmov.d\t%0, %1 ++ fmov.d\t%0, %1 ++ fmov.d\t%0, %1 ++ fld.d\t%0, %1 ++ fst.d\t%0, %1 ++ mov\t%0, %1\;mov\t%m0, %m1 ++ ld.d\t%0, %1 ++ st.d\t%0, %1" ++ ++ "TARGET_HARD_FLOAT ++ && reload_completed ++ && (REG_P(operands[0]) && (REGNO_REG_CLASS(REGNO(operands[0])) == GENERAL_REGS)) ++ && (REG_P(operands[1]) && (REGNO_REG_CLASS(REGNO(operands[1])) == GENERAL_REGS))" ++ [(set (match_dup 0) (match_dup 1)) ++ (set (match_dup 2) (match_dup 3))] ++ " ++ { ++ operands[2] = gen_highpart (SImode, operands[0]); ++ operands[0] = gen_lowpart (SImode, operands[0]); ++ operands[3] = gen_highpart(SImode, operands[1]); ++ operands[1] = gen_lowpart(SImode, operands[1]); ++ } ++ " ++ ++ [(set_attr "length" "4,4,4,4,4,4,4,4") ++ (set_attr "type" "fmv,fldd,fmvcpu,fldd,fstd,alu2,load2,store2")]) ++ ++ ++(define_insn "mulsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fmul.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "nmulsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (neg:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f"))))] ++ "TARGET_HARD_FLOAT" ++ "fnmul.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_peephole2 ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "") ++ (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "") ++ (match_operand:SF 2 "avr32_fp_register_operand" ""))) ++ (set (match_operand:SF 3 "avr32_fp_register_operand" "") ++ (neg:SF (match_dup 0)))] ++ "TARGET_HARD_FLOAT && ++ (peep2_reg_dead_p(2, operands[0]) || (REGNO(operands[3]) == REGNO(operands[0])))" ++ [(set (match_dup 3) ++ (neg:SF (mult:SF (match_dup 1) ++ (match_dup 2))))] ++) ++ ++ ++(define_insn "macsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (plus:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f")) ++ (match_operand:SF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fmac.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "nmacsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (plus:SF (neg:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f"))) ++ (match_operand:SF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fnmac.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_peephole2 ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "") ++ (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "") ++ (match_operand:SF 2 "avr32_fp_register_operand" ""))) ++ (set (match_operand:SF 3 "avr32_fp_register_operand" "") ++ (minus:SF ++ (match_dup 3) ++ (match_dup 0)))] ++ "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 3) ++ (plus:SF (neg:SF (mult:SF (match_dup 1) ++ (match_dup 2))) ++ (match_dup 3)))] ++) ++ ++ ++(define_insn "msubacsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (minus:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f")) ++ (match_operand:SF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fmsc.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_peephole2 ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "") ++ (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "") ++ (match_operand:SF 2 "avr32_fp_register_operand" ""))) ++ (set (match_operand:SF 3 "avr32_fp_register_operand" "") ++ (minus:SF ++ (match_dup 0) ++ (match_dup 3)))] ++ "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 3) ++ (minus:SF (mult:SF (match_dup 1) ++ (match_dup 2)) ++ (match_dup 3)))] ++) ++ ++(define_insn "nmsubacsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (minus:SF (neg:SF (mult:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f"))) ++ (match_operand:SF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fnmsc.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++ ++ ++(define_insn "addsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (plus:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fadd.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "subsf3" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (minus:SF (match_operand:SF 1 "avr32_fp_register_operand" "f") ++ (match_operand:SF 2 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fsub.s\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++ ++(define_insn "negsf2" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (neg:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fneg.s\t%0, %1" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmv")]) ++ ++(define_insn "abssf2" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (abs:SF (match_operand:SF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fabs.s\t%0, %1" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmv")]) ++ ++(define_insn "truncdfsf2" ++ [(set (match_operand:SF 0 "avr32_fp_register_operand" "=f") ++ (float_truncate:SF ++ (match_operand:DF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fcastd.s\t%0, %1" ++ [(set_attr "length" "4") ++ (set_attr "type" "fcast")]) ++ ++(define_insn "extendsfdf2" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (float_extend:DF ++ (match_operand:SF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fcasts.d\t%0, %1" ++ [(set_attr "length" "4") ++ (set_attr "type" "fcast")]) ++ ++(define_insn "muldf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fmul.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "nmuldf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (neg:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f"))))] ++ "TARGET_HARD_FLOAT" ++ "fnmul.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_peephole2 ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "") ++ (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "") ++ (match_operand:DF 2 "avr32_fp_register_operand" ""))) ++ (set (match_operand:DF 3 "avr32_fp_register_operand" "") ++ (neg:DF (match_dup 0)))] ++ "TARGET_HARD_FLOAT && ++ (peep2_reg_dead_p(2, operands[0]) || (REGNO(operands[3]) == REGNO(operands[0])))" ++ [(set (match_dup 3) ++ (neg:DF (mult:DF (match_dup 1) ++ (match_dup 2))))] ++) ++ ++(define_insn "macdf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (plus:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f")) ++ (match_operand:DF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fmac.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "msubacdf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (minus:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f")) ++ (match_operand:DF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fmsc.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_peephole2 ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "") ++ (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "") ++ (match_operand:DF 2 "avr32_fp_register_operand" ""))) ++ (set (match_operand:DF 3 "avr32_fp_register_operand" "") ++ (minus:DF ++ (match_dup 0) ++ (match_dup 3)))] ++ "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 3) ++ (minus:DF (mult:DF (match_dup 1) ++ (match_dup 2)) ++ (match_dup 3)))] ++ ) ++ ++(define_insn "nmsubacdf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (minus:DF (neg:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f"))) ++ (match_operand:DF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fnmsc.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "nmacdf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (plus:DF (neg:DF (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f"))) ++ (match_operand:DF 3 "avr32_fp_register_operand" "0")))] ++ "TARGET_HARD_FLOAT" ++ "fnmac.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_peephole2 ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "") ++ (mult:DF (match_operand:DF 1 "avr32_fp_register_operand" "") ++ (match_operand:DF 2 "avr32_fp_register_operand" ""))) ++ (set (match_operand:DF 3 "avr32_fp_register_operand" "") ++ (minus:DF ++ (match_dup 3) ++ (match_dup 0)))] ++ "TARGET_HARD_FLOAT && peep2_reg_dead_p(2, operands[0])" ++ [(set (match_dup 3) ++ (plus:DF (neg:DF (mult:DF (match_dup 1) ++ (match_dup 2))) ++ (match_dup 3)))] ++) ++ ++(define_insn "adddf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (plus:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fadd.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "subdf3" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (minus:DF (match_operand:DF 1 "avr32_fp_register_operand" "f") ++ (match_operand:DF 2 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fsub.d\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmul")]) ++ ++(define_insn "negdf2" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (neg:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fneg.d\t%0, %1" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmv")]) ++ ++(define_insn "absdf2" ++ [(set (match_operand:DF 0 "avr32_fp_register_operand" "=f") ++ (abs:DF (match_operand:DF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ "fabs.d\t%0, %1" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmv")]) ++ ++ ++(define_expand "cmpdf" ++ [(set (cc0) ++ (compare:DF ++ (match_operand:DF 0 "general_operand" "") ++ (match_operand:DF 1 "general_operand" "")))] ++ "TARGET_HARD_FLOAT" ++ "{ ++ rtx tmpreg; ++ if ( !REG_P(operands[0]) ) ++ operands[0] = force_reg(DFmode, operands[0]); ++ ++ if ( !REG_P(operands[1]) ) ++ operands[1] = force_reg(DFmode, operands[1]); ++ ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = operands[1]; ++ ++ emit_insn(gen_cmpdf_internal(operands[0], operands[1])); ++ ++ tmpreg = gen_reg_rtx(SImode); ++ emit_insn(gen_fpcc_to_reg(tmpreg)); ++ emit_insn(gen_reg_to_cc(tmpreg)); ++ ++ DONE; ++ }" ++) ++ ++(define_insn "cmpdf_internal" ++ [(set (reg:CC FPCC_REGNUM) ++ (compare:CC ++ (match_operand:DF 0 "avr32_fp_register_operand" "f") ++ (match_operand:DF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ { ++ if (!rtx_equal_p(cc_prev_status.mdep.fpvalue, SET_SRC(PATTERN (insn))) ) ++ return "fcmp.d\t%0, %1"; ++ return ""; ++ } ++ [(set_attr "length" "4") ++ (set_attr "type" "fcmpd") ++ (set_attr "cc" "fpcompare")]) ++ ++(define_expand "cmpsf" ++ [(set (cc0) ++ (compare:SF ++ (match_operand:SF 0 "general_operand" "") ++ (match_operand:SF 1 "general_operand" "")))] ++ "TARGET_HARD_FLOAT" ++ "{ ++ rtx tmpreg; ++ if ( !REG_P(operands[0]) ) ++ operands[0] = force_reg(SFmode, operands[0]); ++ ++ if ( !REG_P(operands[1]) ) ++ operands[1] = force_reg(SFmode, operands[1]); ++ ++ avr32_compare_op0 = operands[0]; ++ avr32_compare_op1 = operands[1]; ++ ++ emit_insn(gen_cmpsf_internal(operands[0], operands[1])); ++ ++ tmpreg = gen_reg_rtx(SImode); ++ emit_insn(gen_fpcc_to_reg(tmpreg)); ++ emit_insn(gen_reg_to_cc(tmpreg)); ++ ++ DONE; ++ }" ++) ++ ++(define_insn "cmpsf_internal" ++ [(set (reg:CC FPCC_REGNUM) ++ (compare:CC ++ (match_operand:SF 0 "avr32_fp_register_operand" "f") ++ (match_operand:SF 1 "avr32_fp_register_operand" "f")))] ++ "TARGET_HARD_FLOAT" ++ { ++ if (!rtx_equal_p(cc_prev_status.mdep.fpvalue, SET_SRC(PATTERN (insn))) ) ++ return "fcmp.s\t%0, %1"; ++ return ""; ++ } ++ [(set_attr "length" "4") ++ (set_attr "type" "fcmps") ++ (set_attr "cc" "fpcompare")]) ++ ++(define_insn "fpcc_to_reg" ++ [(set (match_operand:SI 0 "register_operand" "=r") ++ (unspec:SI [(reg:CC FPCC_REGNUM)] ++ UNSPEC_FPCC_TO_REG))] ++ "TARGET_HARD_FLOAT" ++ "fmov.s\t%0, fsr" ++ [(set_attr "length" "4") ++ (set_attr "type" "fmvcpu")]) ++ ++(define_insn "reg_to_cc" ++ [(set (cc0) ++ (unspec:SI [(match_operand:SI 0 "register_operand" "r")] ++ UNSPEC_REG_TO_CC))] ++ "TARGET_HARD_FLOAT" ++ "musfr\t%0" ++ [(set_attr "length" "2") ++ (set_attr "type" "alu") ++ (set_attr "cc" "from_fpcc")]) ++ ++(define_insn "stm_fp" ++ [(unspec [(match_operand 0 "register_operand" "r") ++ (match_operand 1 "const_int_operand" "") ++ (match_operand 2 "const_int_operand" "")] ++ UNSPEC_STMFP)] ++ "TARGET_HARD_FLOAT" ++ { ++ int cop_reglist = INTVAL(operands[1]); ++ ++ if (INTVAL(operands[2]) != 0) ++ return "stcm.w\tcp0, --%0, %C1"; ++ else ++ return "stcm.w\tcp0, %0, %C1"; ++ ++ if ( cop_reglist & ~0xff ){ ++ operands[1] = GEN_INT(cop_reglist & ~0xff); ++ if (INTVAL(operands[2]) != 0) ++ return "stcm.d\tcp0, --%0, %D1"; ++ else ++ return "stcm.d\tcp0, %0, %D1"; ++ } ++ } ++ [(set_attr "type" "fstm") ++ (set_attr "length" "4") ++ (set_attr "cc" "none")]) +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/lib1funcs.S gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/lib1funcs.S +--- gcc-4.0.2/gcc/config/avr32/lib1funcs.S 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/lib1funcs.S 2006-10-10 12:36:34.000000000 +0200 +@@ -0,0 +1,1678 @@ ++/*#define __IEEE_LARGE_FLOATS__*/ ++ ++/* Adjust the unpacked double number if it is a subnormal number. ++ The exponent and mantissa pair are stored ++ in [mant_hi,mant_lo] and [exp]. A register with the correct sign bit in ++ the MSB is passed in [sign]. Needs two scratch ++ registers [scratch1] and [scratch2]. An adjusted and packed double float ++ is present in [mant_hi,mant_lo] after macro has executed */ ++.macro adjust_subnormal_df exp, mant_lo, mant_hi, sign, scratch1, scratch2 ++ /* We have an exponent which is <=0 indicating a subnormal number ++ As it should be stored as if the exponent was 1 (although the ++ exponent field is all zeros to indicate a subnormal number) ++ we have to shift down the mantissa to its correct position. */ ++ neg \exp ++ sub \exp,-1 /* amount to shift down */ ++ cp.w \exp,54 ++ brlo 50f /* if more than 53 shift steps, the ++ entire mantissa will disappear ++ without any rounding to occur */ ++ mov \mant_hi, 0 ++ mov \mant_lo, 0 ++ rjmp 52f ++50: ++ sub \exp,-10 /* do the shift to position the ++ mantissa at the same time ++ note! this does not include the ++ final 1 step shift to add the sign */ ++ ++ /* when shifting, save all shifted out bits in [scratch2]. we may need to ++ look at them to make correct rounding. */ ++ ++ rsub \scratch1,\exp,32 /* get inverted shift count */ ++ cp.w \exp,32 /* handle shifts >= 32 separately */ ++ brhs 51f ++ ++ /* small (<32) shift amount, both words are part of the shift */ ++ lsl \scratch2,\mant_lo,\scratch1 /* save bits to shift out from lsw*/ ++ lsl \scratch1,\mant_hi,\scratch1 /* get bits from msw destined for lsw*/ ++ lsr \mant_lo,\mant_lo,\exp /* shift down lsw */ ++ lsr \mant_hi,\mant_hi,\exp /* shift down msw */ ++ or \mant_hi,\scratch1 /* add bits from msw with prepared lsw */ ++ rjmp 50f ++ ++ /* large (>=32) shift amount, only lsw will have bits left after shift. ++ note that shift operations will use ((shift count) mod 32) so ++ we do not need to subtract 32 from shift count. */ ++51: ++ lsl \scratch2,\mant_hi,\scratch1 /* save bits to shift out from msw */ ++ or \scratch2,\mant_lo /* also save all bits from lsw */ ++ mov \mant_lo,\mant_hi /* msw -> lsw (i.e. "shift 32 first") */ ++ mov \mant_hi,0 /* clear msw */ ++ lsr \mant_lo,\mant_lo,\exp /* make rest of shift inside lsw */ ++ ++50: ++ /* result is almost ready to return, except that least significant bit ++ and the part we already shifted out may cause the result to be ++ rounded */ ++ bld \mant_lo,0 /* get bit to be shifted out */ ++ brcc 51f /* if bit was 0, no rounding */ ++ ++ /* msb of part to remove is 1, so rounding depends on rest of bits */ ++ tst \scratch2,\scratch2 /* get shifted out tail */ ++ brne 50f /* if rest > 0, do round */ ++ bld \mant_lo,1 /* we have to look at lsb in result */ ++ brcc 51f /* if lsb is 0, don't round */ ++ ++50: ++ /* subnormal result requires rounding ++ rounding may cause subnormal to become smallest normal number ++ luckily, smallest normal number has exactly the representation ++ we got by rippling a one bit up from mantissa into exponent field. */ ++ sub \mant_lo,-1 ++ subcc \mant_hi,-1 ++ ++51: ++ /* shift and return packed double with correct sign */ ++ rol \sign ++ ror \mant_hi ++ ror \mant_lo ++52: ++.endm ++ ++ ++/* Adjust subnormal single float number with exponent [exp] ++ and mantissa [mant] and round. */ ++.macro adjust_subnormal_sf sf, exp, mant, sign, scratch ++ /* subnormal number */ ++ rsub \exp,\exp, 1 /* shift amount */ ++ cp.w \exp, 25 ++ movhs \mant, 0 ++ brhs 90f /* Return zero */ ++ rsub \scratch, \exp, 32 ++ lsl \scratch, \mant,\scratch/* Check if there are any bits set ++ in the bits discarded in the mantissa */ ++ srne \scratch /* If so set the lsb of the shifted mantissa */ ++ lsr \mant,\mant,\exp /* Shift the mantissa */ ++ or \mant, \scratch /* Round lsb if any bits were shifted out */ ++ /* Rounding : For explaination, see round_sf. */ ++ mov \scratch, 0x7f /* Set rounding constant */ ++ bld \mant, 8 ++ subeq \scratch, -1 /* For odd numbers use rounding constant 0x80 */ ++ add \mant, \scratch /* Add rounding constant to mantissa */ ++ /* We can't overflow because mantissa is at least shifted one position ++ to the right so the implicit bit is zero. We can however get the implicit ++ bit set after rounding which means that we have the lowest normal number ++ but this is ok since this bit has the same position as the LSB of the ++ exponent */ ++ lsr \sf, \mant, 7 ++ /* Rotate in sign */ ++ lsl \sign, 1 ++ ror \sf ++90: ++.endm ++ ++ ++/* Round the unpacked df number with exponent [exp] and ++ mantissa [mant_hi, mant_lo]. Uses scratch register ++ [scratch] */ ++.macro round_df exp, mant_lo, mant_hi, scratch ++ mov \scratch, 0x3ff /* Rounding constant */ ++ bld \mant_lo,11 /* Check if lsb in the final result is ++ set */ ++ subeq \scratch, -1 /* Adjust rounding constant to 0x400 ++ if rounding 0.5 upwards */ ++ add \mant_lo, \scratch /* Round */ ++ acr \mant_hi /* If overflowing we know that ++ we have all zeros in the bits not ++ scaled out so we can leave them ++ but we must increase the exponent with ++ two since we had an implicit bit ++ which is lost + the extra overflow bit */ ++ subcs \exp, -2 /* Update exponent */ ++.endm ++ ++/* Round single float number stored in [mant] and [exp] */ ++.macro round_sf exp, mant, scratch ++ /* Round: ++ For 0.5 we round to nearest even integer ++ for all other cases we round to nearest integer. ++ This means that if the digit left of the "point" (.) ++ is 1 we can add 0x80 to the mantissa since the ++ corner case 0x180 will round up to 0x200. If the ++ digit left of the "point" is 0 we will have to ++ add 0x7f since this will give 0xff and hence a ++ truncation/rounding downwards for the corner ++ case when the 9 lowest bits are 0x080 */ ++ mov \scratch, 0x7f /* Set rounding constant */ ++ /* Check if the mantissa is even or odd */ ++ bld \mant, 8 ++ subeq \scratch, -1 /* Rounding constant should be 0x80 */ ++ add \mant, \scratch ++ subcs \exp, -2 /* Adjust exponent if we overflowed */ ++.endm ++ ++/* Scale mantissa [mant_hi, mant_lo] with amount [shift_count]. ++ Uses scratch registers [scratch1] and [scratch2] */ ++.macro scale_df shift_count, mant_lo, mant_hi, scratch1, scratch2 ++ /* Scale [mant_hi, mant_lo] with shift_amount. ++ Must not forget the sticky bits we intend to shift out. */ ++ ++ rsub \scratch1,\shift_count,32/* get (32 - shift count) ++ (if shift count > 32 we get a ++ negative value, but that will ++ work as well in the code below.) */ ++ ++ cp.w \shift_count,32 /* handle shifts >= 32 separately */ ++ brhs 70f ++ ++ /* small (<32) shift amount, both words are part of the shift ++ first remember whether part that is lost contains any 1 bits ... */ ++ lsl \scratch2,\mant_lo,\scratch1 /*shift away bits that are part of ++ final mantissa. only part that goes ++ to scratch2 are bits that will be lost */ ++ ++ /* ... and now to the actual shift */ ++ lsl \scratch1,\mant_hi,\scratch1 /* get bits from msw destined for lsw*/ ++ lsr \mant_lo,\mant_lo,\shift_count /* shift down lsw of mantissa */ ++ lsr \mant_hi,\mant_hi,\shift_count /* shift down msw of mantissa */ ++ or \mant_lo,\scratch1 /* combine these bits with prepared lsw*/ ++ rjmp 71f ++ ++ /* large (>=32) shift amount, only lsw will have bits left after shift. ++ note that shift operations will use ((shift count) mod 32) so ++ we do not need to subtract 32 from shift count. */ ++70: ++ /* first remember whether part that is lost contains any 1 bits ... */ ++ lsl \scratch2,\mant_hi,\scratch1 /* save all lost bits from msw */ ++ or \scratch2,\mant_lo /* also save lost bits (all) from lsw ++ now scratch2<>0 if we lose any bits */ ++ ++ /* ... and now to the actual shift */ ++ mov \mant_lo,\mant_hi /* msw -> lsw (i.e. "shift 32 first")*/ ++ mov \mant_hi,0 /* clear msw */ ++ lsr \mant_lo,\mant_lo,\shift_count /* make rest of shift inside lsw*/ ++ ++71: ++ cp.w \scratch2,0 /* if any '1' bit in part we lost ...*/ ++ breq 70f ++ ++ sbr \mant_lo,0 /* ... we need to set sticky bit*/ ++70: ++.endm ++ ++/* Unpack exponent and mantissa from the double number ++ stored in [df_hi,df_lo]. The exponent is stored in [exp] ++ while the mantissa is stored in [df_hi,df_lo]. */ ++ ++.macro unpack_df exp, df_lo, df_hi ++ lsr \exp, \df_hi,21 /* Extract exponent */ ++ lsl \df_hi,10 /* Get mantissa */ ++ or \df_hi,\df_hi,\df_lo>>21 ++ lsl \df_lo,11 ++ ++ neg \exp /* Fix implicit bit */ ++ bst \df_hi,31 ++ subeq \exp,1 ++ neg \exp /* negate back exponent */ ++ .endm ++ ++/* Unpack exponent and mantissa from the single float number ++ stored in [sf]. The exponent is stored in [exp] ++ while the mantissa is stored in [sf]. */ ++.macro unpack_sf exp, sf ++ lsr \exp, \sf, 24 ++ brne 80f ++ /* Fix subnormal number */ ++ lsl \sf,7 ++ clz \exp,\sf ++ lsl \sf,\sf,\exp ++ rsub \exp,\exp,1 ++ rjmp 81f ++80: ++ lsl \sf,7 ++ sbr \sf, 31 /*Implicit bit*/ ++81: ++.endm ++ ++ ++ ++/* Pack a single float number stored in [mant] and [exp] ++ into a single float number in [sf] */ ++.macro pack_sf sf, exp, mant ++ bld \mant,31 /* implicit bit to z */ ++ subne \exp,1 /* if subnormal (implicit bit 0) ++ adjust exponent to storage format */ ++ ++ lsr \sf, \mant, 7 ++ bfins \sf, \exp, 24, 8 ++.endm ++ ++/* Pack exponent [exp] and mantissa [mant_hi, mant_lo] ++ into [df_hi, df_lo]. [df_hi] is shifted ++ one bit up so the sign bit can be shifted into it */ ++ ++.macro pack_df exp, mant_lo, mant_hi, df_lo, df_hi ++ bld \mant_hi,31 /* implicit bit to z */ ++ subne \exp,1 /* if subnormal (implicit bit 0) ++ adjust exponent to storage format */ ++ ++ lsr \mant_lo,11 /* shift back lsw */ ++ or \df_lo,\mant_lo,\mant_hi<<21 /* combine with low bits from msw */ ++ lsl \mant_hi,1 /* get rid of implicit bit */ ++ lsr \mant_hi,11 /* shift back msw except for one step*/ ++ or \df_hi,\mant_hi,\exp<<21 /* combine msw with exponent */ ++.endm ++ ++/* Normalize single float number stored in [mant] and [exp] ++ using scratch register [scratch] */ ++.macro normalize_sf exp, mant, scratch ++ /* Adjust exponent and mantissa */ ++ clz \scratch, \mant ++ sub \exp, \scratch ++ lsl \mant, \mant, \scratch ++.endm ++ ++/* Normalize the exponent and mantissa pair stored ++ in [mant_hi,mant_lo] and [exp]. Needs two scratch ++ registers [scratch1] and [scratch2]. */ ++.macro normalize_df exp, mant_lo, mant_hi, scratch1, scratch2 ++ clz \scratch1,\mant_hi /* Check if we have zeros in high bits */ ++ breq 80f /* No need for scaling if no zeros in high bits */ ++ cp.w \scratch1,32 /* Check for all zeros */ ++ breq 81f ++ ++ /* shift amount is smaller than 32, and involves both msw and lsw*/ ++ rsub \scratch2,\scratch1,32 /* shift mantissa */ ++ lsl \mant_hi,\mant_hi,\scratch1 ++ lsr \scratch2,\mant_lo,\scratch2 ++ or \mant_hi,\scratch2 ++ lsl \mant_lo,\mant_lo,\scratch1 ++ sub \exp,\scratch1 /* adjust exponent */ ++ rjmp 80f /* Finished */ ++81: ++ /* shift amount is greater than 32 */ ++ clz \scratch1,\mant_lo /* shift mantissa */ ++ sub \scratch1,-32 ++ mov \mant_hi,\mant_lo ++ lsl \mant_hi,\mant_hi,\scratch1 ++ mov \mant_lo,0 ++ sub \exp,\scratch1 /* adjust exponent */ ++80: ++.endm ++ ++ ++#ifdef L_avr32_f64_mul ++ .align 2 ++ .global __avr32_f64_mul ++ .type __avr32_f64_mul,@function ++ ++__avr32_f64_mul: ++ pushm r0-r3,r4-r7,lr ++ ++ /* Unpack */ ++ eor r12, r11, r9 /* Sign op1 ^ Sign op2 is MSB of r12*/ ++ lsl r11,1 /* Unpack op1 */ ++ lsl r9,1 /* Unpack op2 */ ++ ++ /* Sort operands op1 >= op2 */ ++ lddpc r5, .Linf ++ cp.w r10,r8 ++ cpc r11,r9 ++ brhs 0f ++ ++ mov r7,r11 /* swap operands if op2 was larger */ ++ mov r6,r10 ++ mov r11,r9 ++ mov r10,r8 ++ mov r9,r7 ++ mov r8,r6 ++ ++0: ++ /* Check against infinity */ ++ cp.w r11,r5 ++ brlo 1f ++ /* infinity or nan */ ++ /* we have to check low word as well as nan mantissa may be 0 in msw*/ ++ cpc r10 ++ /* we know that op1 is inf or nan. if z != 1 then we have nan. ++ in this case, also return nan. */ ++ breq 0f ++ /* Return NaN */ ++ mov r11, -1 ++ rjmp __dfmul_return_op1 ++0: ++ ++ /* op1 is infinity. op2 is smaller or same so it cannot be nan. ++ it can be infinity or a (sub-)normal number. ++ we should return op1 (infinity) except when op2 is zero when ++ result should be nan. */ ++ or r5,r9,r8 ++ brne __dfmul_return_op1 /* op2 is not zero. return op1.*/ ++ /* Return NaN */ ++ mov r11, -1 ++ rjmp __dfmul_return_op1 ++ ++1: ++ /* no operand is inf/nan, and operands have been arranged in order ++ with op1 >= op2, implying that if we have a zero, it is found in ++ op2. in this case, result should be zero (with sign from both ops). */ ++ ++ or r5,r9,r8 /* check the smaller value for zero */ ++ brne 0f ++ mov r10, 0 ++ mov r11, 0 ++ rjmp __dfmul_return_op1 /* Early exit */ ++0: ++ ++ /* we have two "normal" (can be subnormal) nonzero numbers in r11:r10 ++ and r9:r8. sign of result is already calculated in r12. ++ perform a normal multiplication. */ ++ ++ /* Unpack and normalize*/ ++ unpack_df r7 /*exp*/, r10, r11 /* mantissa */ ++ normalize_df r7 /*exp*/, r10, r11 /* mantissa */, r4, r5 /* scratch */ ++ ++ ++ /* Unpack and normalize*/ ++ unpack_df r6 /*exp*/, r8, r9 /* mantissa */ ++ normalize_df r6 /*exp*/, r8, r9 /* mantissa */, r4, r5 /* scratch */ ++ ++ /* Multiply */ ++ ++ mulu.d r0,r10,r8 ++ add lr,r7,r6 /* calculate new exponent after mul */ ++ mulu.d r2,r11,r8 ++ sub lr,(1023-1) /* remove exponent bias as we have ++ included bias from both op1 and op2 ++ sub one less, or in other words ++ add one to exponent. see below why. */ ++ mulu.d r6,r11,r9 ++ add r2,r1 ++ mulu.d r4,r10,r9 ++ ++ ++ adc r6,r6,r3 ++ acr r7 ++ ++ add r4,r2 ++ adc r6,r6,r5 ++ acr r7 ++ ++ // r7:r6 is now in range [0x4000...0000 - 0xffff...fffe] ++ // remaining bits in r0 and r4 are of no interest, except that we have ++ // to add a sticky bit to r10 in case we had a 1 bit in r4 or r0. ++ ++ or r4,r0 ++ movne r0, 1 /* If we have bits in r4 or r0 */ ++ or r6,r0 /* set lsb of result to 1 */ ++ ++ ++ // if msb is set, it was because multiplication gave an "overflow" ++ // of one bit so exponent should be incremented. ++ // we already did that above so we are done. ++ // if msb is *not* set it will be normalized and exponent will be ++ // decremented (which will compensate the one we added above). ++ ++ normalize_df lr /*exp*/, r6, r7 /* mantissa */, r8, r9 /* scratch */ ++ ++ /* Check if a subnormal result was created */ ++ cp.w lr, 0 ++ brgt 0f ++ ++ adjust_subnormal_df lr, r6, r7, r12, r8, r9 ++ mov r10, r6 ++ mov r11, r7 ++ popm r0-r3,r4-r7, pc ++0: ++ ++ /* Round result */ ++ round_df lr /*exp*/, r6, r7 /* Mantissa */, r4 /*scratch*/ ++ cp.w lr,0x7ff ++ brlt 0f ++ /*Return infinity */ ++ lddpc r11, .Linf ++ mov r10, 0 ++ rjmp __dfmul_return_op1 ++ ++0: ++ ++ /* Pack */ ++ pack_df lr /*exp*/, r6, r7 /* mantissa */, r10, r11 /* Output df number*/ ++__dfmul_return_op1: ++ lsl r12,1 /* shift in sign bit */ ++ ror r11 ++ ++ popm r0-r3,r4-r7, pc ++ ++#endif ++ ++ ++#ifdef L_avr32_f64_addsub ++ .align 2 ++ .global __avr32_f64_sub ++ .type __avr32_f64_sub,@function ++ ++__avr32_f64_sub: ++ pushm r4-r7,lr ++ ++ eor r12,r11,r9 // compare signs of operands ++ bld r12,31 ++ brcc __dfsub // same sign => subtract ++ ++ eorh r9,0x8000 ++ rjmp __dfadd // different signs => op1 + (-op2) ++__dfsub: ++ ++ lsl r11,1 // unpack op1 msw and get sign in c ++ or r4,r11,r10 // check if all bits zero ++ brne 1f ++ ++ // op1 is zero, negate op2 and handle as add ++ eorh r9,0x8000 ++ // op1 is +/-0, and is unpacked with sign in c. add to op2. ++ // also used by sub, but op2 has been negated in this case ++ ror r12 // save sign of op1 in msb of r12 ++ lsl r9,1 // unpack msw and get sign of op2 ++ or r4,r9,r8 // check all bits in op2 ++ breq 0f ++ ++ // if op2 != 0, then return op2 unchanged. ++ ror r9 // pack op2 msw again with sign from c ++ mov r11,r9 ++ mov r10,r8 ++ popm r4-r7,pc ++ ++0: ++ // both op1 and op2 zero, but sign unknown. result should and signs. ++ ror r9 // pack op2 msw again with sign from c ++ lsl r12,1 // get back sign of op1 into c ... ++ ror r11 // and back in original op1 ++ and r11,r9 // and sign bits. as op1 is zero, the ++ // only bit which can be 1 is sign bit ++ popm r4-r7,pc ++ ++1: ++ ror r12 // save op1 sign in msb of r12 ++ ++ lsl r9,1 // unpack op2 msw ++ or r4,r8,r9 ++ brne 0f ++ // op2 is zero, return op1 ++ // whatever it is. the only case ++ // requiring special handling is if ++ // op1 is zero, but that was handled ++ // above. ++ lsl r12, 1 ++ ror r11 ++ popm r4-r7,pc ++ ++0: ++ // make sure that op1 >= op2, flip sign if we swap ops ++ cp.w r10,r8 ++ cpc r11,r9 ++ brhs 0f ++ ++ com r12 // sign of op1 and result in lsb(r12) ++ mov r7,r11 // swap operands if op2 was larger ++ mov r6,r10 ++ mov r11,r9 ++ mov r10,r8 ++ mov r9,r7 ++ mov r8,r6 ++ ++0: ++ // check if op1 is nan or inf. ++ lddpc r5,.Linf ++ cp.w r11,r5 ++ brlo 1f ++ /* Op 1 is nan or inf */ ++ // we have to check low word as well as nan mantissa may be 0 in msw ++ cpc r10 ++ // we know that op1 is inf or nan. if z != 1 then we have nan. ++ // if we have nan, return nan. ++ breq 0f ++ mov r11, -1 ++ rjmp __dfsub_return_op1 ++0: ++ ++ // op1 is infinity. check if op2 is nan, infinty or a normal number. ++ cp.w r9,r5 ++ movhs r11, -1 // op2 is a normal number. return op1. ++ ++ // op2 can be infinity (of the same sign as op1) or nan. ++ // in both cases we should return nan. ++ rjmp __dfsub_return_op1 ++1: ++ // if op1 is not inf or nan, then op2 cannot be since op1 >= op2 ++ ++ // now prepare the operands by expanding them and shifting op2 ++ // to the correct position for the subtract. note! if op2 is ++ // insignificant compared to op1, the function will take care of ++ // this and return op1 directly to the application. ++ ++ /* Unpack operands */ ++ unpack_df r7 /* exp op1*/, r10, r11 /* Mantissa op1 */ ++ unpack_df r6 /* exp op2*/, r8, r9 /* Mantissa op2 */ ++ ++ /* Get shift amount required for aligning op1 and op2 */ ++ rsub r6, r7 ++ breq __perform_dfsub /* No shift needed */ ++ ++ cp.w r6, 63 ++ brhs __dfsub_pack_result /* Op 2 insignificant compared to op1 */ ++ ++ /* Shift mantissa of op2 so that op1 and op2 are aligned */ ++ scale_df r6 /* shift_count*/, r8, r9 /* Mantissa */, r4, r5 /*Scratch*/ ++ ++__perform_dfsub: ++ sub r10,r8 /* subtract mantissa of op2 from op1 */ ++ sbc r11,r11,r9 ++ or r4,r11,r10 /* check if result is all zeroes */ ++ brne 0f ++ popm r4-r7,pc /* Early return */ ++0: ++ ++ normalize_df r7 /*exp*/, r10, r11 /* mantissa */, r8, r9 /* scratch */ ++ ++ /* Check if a subnormal result was created */ ++ cp.w r7, 0 ++ brgt 0f ++ ++ adjust_subnormal_df r7 /*exp*/, r10, r11 /* Mantissa */, r12 /*sign*/, r8, r9 /*scratch*/ ++ popm r4-r7,pc ++0: ++ ++ /* Round result */ ++ round_df r7 /*exp*/, r10, r11 /* Mantissa */, r9 /*scratch*/ ++ cp.w r7,0x7ff ++ brlt __dfsub_pack_result ++ /*Return infinity */ ++ lddpc r11, .Linf ++ mov r10, 0 ++ rjmp __dfsub_return_op1 ++ ++__dfsub_pack_result: ++ /* Pack */ ++ pack_df r7 /*exp*/, r10, r11 /* mantissa */, r10, r11 /* Output df number*/ ++ ++__dfsub_return_op1: ++ lsl r12,1 ++ ror r11 ++ popm r4-r7,pc ++ ++ .align 2 ++ .global __avr32_f64_add ++ .type __avr32_f64_add,@function ++__avr32_f64_add: ++ pushm r4-r7,lr ++ eor r12,r11,r9 // compare signs of operands ++ lsl r12,1 ++ brcc __dfadd // same sign => add ++ ++ eorh r9,0x8000 ++ rjmp __dfsub // different signs => op1 - (-op2) ++__dfadd: ++ ++ lsl r11,1 // unpack op1 msw and get sign in c ++ or r4,r11,r10 // check if all bits zero ++ brne 1f ++ ++ // op1 is +/-0, and is unpacked with sign in c. add to op2. ++ // also used by sub, but op2 has been negated in this case ++ ror r12 // save sign of op1 in msb of r12 ++ lsl r9,1 // unpack msw and get sign of op2 ++ or r4,r9,r8 // check all bits in op2 ++ breq 0f ++ ++ // if op2 != 0, then return op2 unchanged. ++ ror r9 // pack op2 msw again with sign from c ++ mov r11,r9 ++ mov r10,r8 ++ popm r4-r7,pc ++ ++0: ++ // both op1 and op2 zero, but sign unknown. result should and signs. ++ ror r9 // pack op2 msw again with sign from c ++ lsl r12,1 // get back sign of op1 into c ... ++ ror r11 // and back in original op1 ++ and r11,r9 // and sign bits. as op1 is zero, the ++ // only bit which can be 1 is sign bit ++ popm r4-r7,pc ++1: ++ ror r12 // save op1 sign in msb of r12 ++ ++ lsl r9,1 // unpack op2 msw ++ or r4,r8,r9 ++ brne 0f ++ // op2 is zero, return op1 ++ // whatever it is. the only case ++ // requiring special handling is if ++ // op1 is zero, but that was handled ++ // above. ++ lsl r12, 1 ++ ror r11 ++ popm r4-r7,pc ++0: ++ // make sure that exp[op1] >= exp[op2] ++ cp.w r11,r9 ++ brhs 0f ++ ++ mov r7,r11 // swap operands if op2 was larger ++ mov r6,r10 ++ mov r11,r9 ++ mov r10,r8 ++ mov r9,r7 ++ mov r8,r6 ++ ++0: ++ // check if op1 is nan or inf. ++ lddpc r5,.Linf ++ cp.w r11,r5 ++ brlo 1f ++ /* Op 1 is nan or inf */ ++ // we have to check low word as well as nan mantissa may be 0 in msw ++ cpc r10 ++ // we know that op1 is inf or nan. if z != 1 then we have nan. ++ // if we have nan, return nan. ++ breq 0f ++ mov r11, -1 ++ rjmp __dfadd_return_op1 ++0: ++ ++ // op1 is infinity. check if op2 is nan, infinty or a normal number. ++ cp.w r9,r5 ++ // Op2 is NaN of Inf. Return op2 but with sign of result. ++ // If Op2 is NaN, sign doesn't matter but no need to separate NaN ++ movhs r11, r9 ++ movhs r10, r8 ++ ++ // op2 can be infinity (of the same sign as op1) or nan. ++ // in both cases we should return nan. ++ rjmp __dfadd_return_op1 ++1: ++ // if op1 is not inf or nan, then op2 cannot be since exp[op1] >= ++ // exp[op2] ++ ++ // now prepare the operands by expanding them and shifting op2 ++ // to the correct position for the add. note! if op2 is ++ // insignificant compared to op1, the function will take care of ++ // this and return op1 directly to the application. ++ ++ /* Unpack operands */ ++ unpack_df r7 /* exp op1*/, r10, r11 /* Mantissa op1 */ ++ unpack_df r6 /* exp op2*/, r8, r9 /* Mantissa op2 */ ++ ++ /* Get shift amount required for aligning op1 and op2 */ ++ rsub r6, r7 ++ breq __perform_dfadd /* No shift needed */ ++ ++ cp.w r6, 63 ++ brhs __dfadd_pack_result /* Op 2 insignificant compared to op1 */ ++ ++ /* Shift mantissa of op2 so that op1 and op2 are aligned */ ++ scale_df r6 /* shift_count*/, r8, r9 /* Mantissa */, r4, r5 /*Scratch*/ ++ ++__perform_dfadd: ++ add r10,r8 // add mantissas ++ adc r11,r11,r9 ++ brcc 0f ++ ror r11 // overflow => shift down mantissa ++ ror r10 ++ brcc 1f // sticky bit shifted out? ++ sbr r10,0 // if so, merge it into result again ++1: ++ sub r7,-1 // increase exponent with 1 ++0: ++ normalize_df r7 /*exp*/, r10, r11 /* mantissa */, r8, r9 /* scratch */ ++ ++ /* Check if a subnormal result was created */ ++ cp.w r7, 0 ++ brgt 0f ++ ++ adjust_subnormal_df r7 /*exp*/, r10, r11 /* Mantissa */, r12 /*sign*/, r8, r9 /*scratch*/ ++ popm r4-r7,pc ++0: ++ ++ /* Round result */ ++ round_df r7 /*exp*/, r10, r11 /* Mantissa */, r9 /*scratch*/ ++ cp.w r7,0x7ff ++ brlt __dfadd_pack_result ++ /*Return infinity */ ++ lddpc r11, .Linf ++ mov r10, 0 ++ rjmp __dfadd_return_op1 ++ ++__dfadd_pack_result: ++ /* Pack */ ++ pack_df r7 /*exp*/, r10, r11 /* mantissa */, r10, r11 /* Output df number*/ ++ ++__dfadd_return_op1: ++ lsl r12,1 ++ ror r11 ++ popm r4-r7,pc ++#endif ++ ++#ifdef L_avr32_f64_to_u32 ++ /* This goes into L_fixdfsi */ ++#endif ++ ++ ++#ifdef L_avr32_f64_to_s32 ++ .global __avr32_f64_to_u32 ++ .type __avr32_f64_to_u32,@function ++__avr32_f64_to_u32: ++ cp.w r11, 0 ++ retmi 0 /* Negative returns 0 */ ++#ifdef __LARGE_FLOATS__ ++ lsl r12,r11,1 ++ lsr r12,21 /* extract exponent*/ ++ sub r12,1023 /* convert to unbiased exponent.*/ ++ retlo 0 /* too small exponent implies zero. */ ++ cp.w r12,32 ++ brcc 0f ++ rjmp 1f ++#endif ++ ++ /* Fallthrough to df to signed si conversion */ ++ .global __avr32_f64_to_s32 ++ .type __avr32_f64_to_s32,@function ++__avr32_f64_to_s32: ++ lsl r12,r11,1 ++ lsr r12,21 /* extract exponent*/ ++ sub r12,1023 /* convert to unbiased exponent.*/ ++ retlo 0 /* too small exponent implies zero. */ ++ ++#ifdef __LARGE_FLOATS__ ++ cp.w r12,31 ++ brcc 0f ++#endif ++1: ++ rsub r12,r12,31 /* shift count = 31 - exponent */ ++ mov r9,r11 /* save sign for later...*/ ++ lsl r11,11 /* remove exponent and sign*/ ++ sbr r11,31 /* add implicit bit*/ ++ or r11,r11,r10>>21 /* get rest of bits from lsw of double */ ++ lsr r11,r11,r12 /* shift down mantissa to final place */ ++ lsl r9,1 /* sign -> carry */ ++ retcc r11 /* if positive, we are done */ ++ neg r11 /* if negative float, negate result */ ++ ret r11 ++ ++#ifdef __LARGE_FLOATS__ ++0: ++ mov r12,-1 /* r11 = 0xffffffff */ ++ lsr r12,1 /* r11 = 0x7fffffff */ ++ lsl r11,1 /* sign -> carry */ ++ acr r12 /* r11 = signed ? 0x80000000 ++ : 0x7fffffff */ ++ ret r12 ++#endif ++#endif /* L_fixdfsi*/ ++ ++#ifdef L_avr32_f64_to_u64 ++ /* Actual function is in L_fixdfdi */ ++#endif ++ ++#ifdef L_avr32_f64_to_s64 ++ .global __avr32_f64_to_u64 ++ .type __avr32_f64_to_u64,@function ++__avr32_f64_to_u64: ++ cp.w r11,0 ++ /* Negative numbers return zero */ ++ movmi r10, 0 ++ movmi r11, 0 ++ retmi r11 ++#ifdef __LARGE_FLOATS__ ++ lsl r9,r11,1 ++ lsr r9,21 /* get exponent*/ ++ sub r9,1023 /* convert to correct range*/ ++ /* Return zero if exponent to small */ ++ movlo r10, 0 ++ movlo r11, 0 ++ retlo r11 ++ cp.w r9,64 ++ mov r8,r11 /* save sign for later...*/ ++ brcs 1f ++ rjmp 2f /* Number to large */ ++ ++#endif ++ ++ ++ ++ /* Fallthrough */ ++ .global __avr32_f64_to_s64 ++ .type __avr32_f64_to_s64,@function ++__avr32_f64_to_s64: ++ lsl r9,r11,1 ++ lsr r9,21 /* get exponent*/ ++ sub r9,1023 /* convert to correct range*/ ++ /* Return zero if exponent to small */ ++ movlo r10, 0 ++ movlo r11, 0 ++ retlo r11 ++ ++#ifdef __LARGE_FLOATS__ ++ cp.w r9,63 ++ mov r8,r11 /* save sign for later...*/ ++ brcc 2f ++#else ++ mov r8,r11 /* save sign for later...*/ ++#endif ++1: ++ lsl r11,11 /* remove exponent */ ++ sbr r11,31 /* add implicit bit*/ ++ or r11,r11,r10>>21 /* get rest of bits from lsw of double*/ ++ lsl r10,11 /* align lsw correctly as well */ ++ rsub r9,r9,63 /* shift count = 63 - exponent */ ++ breq 1f ++ ++ cp.w r9,32 /* is shift count more than one reg? */ ++ brhs 0f ++ ++ mov r12,r11 /* save msw */ ++ lsr r10,r10,r9 /* small shift count, shift down lsw */ ++ lsr r11,r11,r9 /* small shift count, shift down msw */ ++ rsub r9,r9,32 /* get 32-size of shifted out tail */ ++ lsl r12,r12,r9 /* align part to move from msw to lsw */ ++ or r10,r12 /* combine to get new lsw */ ++ rjmp 1f ++ ++0: ++ lsr r10,r11,r9 /* large shift count,only lsw get bits ++ note that shift count is modulo 32*/ ++ mov r11,0 /* msw will be 0 */ ++ ++1: ++ lsl r8,1 /* sign -> carry */ ++ retcc r11 /* if positive, we are done */ ++ ++ neg r11 /* if negative float, negate result */ ++ neg r10 ++ scr r11 ++ ret r11 ++ ++ ++#ifdef __LARGE_FLOATS__ ++2: ++ mov r11,-1 /* r11 = 0xffffffff */ ++ lsr r11,1 /* r11 = 0x7fffffff */ ++ lsl r8,1 /* sign -> carry */ ++ acr r11 /* r11 = signed ? 0x80000000 */ ++ /* : 0x7fffffff */ ++ lsl r10,r11,31 /* extend last bit of msw*/ ++ asr r10,31 ++ ret r11 ++#endif ++#endif ++ ++#ifdef L_avr32_u32_to_f64 ++ /* Code located in L_floatsidf */ ++#endif ++ ++#ifdef L_avr32_s32_to_f64 ++ .global __avr32_u32_to_f64 ++ .type __avr32_u32_to_f64,@function ++__avr32_u32_to_f64: ++ sub r11, r12, 0 /* Move to r11 and force Z flag to be updated */ ++ mov r12, 0 /* always positive */ ++ rjmp 0f /* Jump to common code for floatsidf */ ++ ++ .global __avr32_s32_to_f64 ++ .type __avr32_s32_to_f64,@function ++__avr32_s32_to_f64: ++ mov r11, r12 /* Keep original value in r12 for sign */ ++ abs r11 /* Absolute value if r12 */ ++0: ++ mov r10,0 /* let remaining bits be zero */ ++ reteq r11 /* zero long will return zero float */ ++ ++ pushm lr ++ mov r9,31+1023 /* set exponent */ ++ ++ normalize_df r9 /*exp*/, r10, r11 /* mantissa */, r8, lr /* scratch */ ++ ++ /* Check if a subnormal result was created */ ++ cp.w r9, 0 ++ brgt 0f ++ ++ adjust_subnormal_df r9 /* exp */, r10, r11 /* Mantissa */, r12 /*sign*/, r8, lr /* scratch */ ++ popm pc ++0: ++ ++ /* Round result */ ++ round_df r9 /*exp*/, r10, r11 /* Mantissa */, r8 /*scratch*/ ++ cp.w r9,0x7ff ++ brlt 0f ++ /*Return infinity */ ++ lddpc r11, .Linf ++ mov r10, 0 ++ rjmp __floatsidf_return_op1 ++ ++0: ++ ++ /* Pack */ ++ pack_df r9 /*exp*/, r10, r11 /* mantissa */, r10, r11 /* Output df number*/ ++__floatsidf_return_op1: ++ lsl r12,1 /* shift in sign bit */ ++ ror r11 ++ ++ popm pc ++#endif ++ ++ ++#ifdef L_avr32_f32_cmp_eq ++ .global __avr32_f32_cmp_eq ++ .type __avr32_f32_cmp_eq,@function ++__avr32_f32_cmp_eq: ++ cp.w r12, r11 ++ brne 0f /* If not equal check for +/-0 */ ++ ++ /* Check for NaN or Inf */ ++ lddpc r11,.Linf_sf ++ lsl r12, 1 ++ cp.w r12, r11 ++ srls r12 /* 0 if NaN, 1 otherwise */ ++ ret r12 ++0: ++ /* Or together the two values and shift out the sign bit. ++ If the result is zero, then the two values are both zero. */ ++ or r12, r11 ++ lsl r12, 1 ++ sreq r12 ++ ret r12 ++#endif ++ ++#if defined(L_avr32_f32_cmp_ge) || defined(L_avr32_f32_cmp_lt) ++#ifdef L_avr32_f32_cmp_ge ++ .global __avr32_f32_cmp_ge ++ .type __avr32_f32_cmp_ge,@function ++__avr32_f32_cmp_ge: ++#endif ++#ifdef L_avr32_f32_cmp_lt ++ .global __avr32_f32_cmp_lt ++ .type __avr32_f32_cmp_lt,@function ++__avr32_f32_cmp_lt: ++#endif ++ lsl r10, r12, 1 /* Remove sign bits */ ++ lsl r9, r11, 1 ++ lddpc r8, .Linf_sf ++ cp.w r10, r8 ++ rethi 0 /* Op0 is NaN */ ++ cp.w r9, r8 ++ rethi 0 /* Op1 is Nan */ ++ ++ eor r8, r11, r12 ++ bld r12, 31 ++#ifdef L_avr32_f32_cmp_ge ++ srcc r8 /* Set result to true if op0 is positive*/ ++#endif ++#ifdef L_avr32_f32_cmp_lt ++ srcs r8 /* Set result to true if op0 is negative*/ ++#endif ++ retmi r8 /* Return if signs are different */ ++ brcs 0f /* Both signs negative? */ ++ ++ /* Both signs positive */ ++ cp.w r12, r11 ++#ifdef L_avr32_f32_cmp_ge ++ srhs r12 ++#endif ++#ifdef L_avr32_f32_cmp_lt ++ srlo r12 ++#endif ++ retal r12 ++0: ++ /* Both signs negative */ ++ cp.w r11, r12 ++#ifdef L_avr32_f32_cmp_ge ++ srhs r12 ++#endif ++#ifdef L_avr32_f32_cmp_lt ++ srlo r12 ++#endif ++ retal r12 ++#endif ++ ++ ++#ifdef L_avr32_f64_cmp_eq ++ .global __avr32_f64_cmp_eq ++ .type __avr32_f64_cmp_eq,@function ++__avr32_f64_cmp_eq: ++ cp.w r10,r8 ++ cpc r11,r9 ++ brne 0f /* Both args could be zero with different sign bits */ ++ ++ /* check for NaN */ ++ lsl r11,1 ++ lddpc r12,.Linf ++ cp.w r10,0 ++ cpc r11,r12 /* check if nan or inf */ ++ srls r12 /* If Arg is NaN return 0 else 1*/ ++ ret r12 /* Return */ ++ ++0: ++ lsl r11,1 /* get rid of sign bits */ ++ lsl r9,1 ++ or r11,r10 /* Check if all bits are zero */ ++ or r11,r9 ++ or r11,r8 ++ sreq r12 /* If all zeros the arguments are equal ++ so return 1 else return 0 */ ++ ret r12 ++#endif ++ ++ ++#if defined(L_avr32_f64_cmp_ge) || defined(L_avr32_f64_cmp_lt) ++ ++#ifdef L_avr32_f64_cmp_ge ++ .global __avr32_f64_cmp_ge ++ .type __avr32_f64_cmp_ge,@function ++__avr32_f64_cmp_ge: ++#endif ++#ifdef L_avr32_f64_cmp_lt ++ .global __avr32_f64_cmp_lt ++ .type __avr32_f64_cmp_lt,@function ++__avr32_f64_cmp_lt: ++#endif ++ ++ /* compare magnitude of op1 and op2 */ ++ pushm lr ++ ++ lsl r11,1 /* Remove sign bit of op1 */ ++ srcs lr /* Sign op1 to lsb of lr*/ ++ lsl r9,1 /* Remove sign bit of op2 */ ++ rol lr /* Sign op2 to lsb of lr, sign bit op1 bit 1 of lr*/ ++ ++ /* Check for Nan */ ++ lddpc r12,.Linf ++ cp.w r10,0 ++ cpc r11,r12 ++ movhi r12, 0 /* Return false for NaN */ ++ brhi 0f /* We have NaN */ ++ cp.w r8,0 ++ cpc r9,r12 ++ movhi r12, 0 /* Return false for NaN */ ++ brhi 0f /* We have NaN */ ++ ++ cp.w lr,3 /* both operands negative ?*/ ++ breq 1f ++ ++ cp.w lr,1 /* both operands positive? */ ++ brlo 2f ++ ++ /* Different signs. If sign of op1 is negative the difference ++ between op1 and op2 will always be negative, and if op1 is ++ positive the difference will always be positive */ ++#ifdef L_avr32_f64_cmp_ge ++ sreq r12 ++#endif ++#ifdef L_avr32_f64_cmp_lt ++ srne r12 ++#endif ++ popm pc ++ ++ ++2: ++ /* Both operands positive. Just compute the difference */ ++ cp.w r10,r8 ++ cpc r11,r9 ++#ifdef L_avr32_f64_cmp_ge ++ srhs r12 ++#endif ++#ifdef L_avr32_f64_cmp_lt ++ srlo r12 ++#endif ++ popm pc ++ ++1: ++ /* Both operands negative. Compute the difference with operands switched */ ++ cp r8,r10 ++ cpc r9,r11 ++#ifdef L_avr32_f64_cmp_ge ++ srhs r12 ++#endif ++#ifdef L_avr32_f64_cmp_lt ++ srlo r12 ++#endif ++0: ++ popm pc ++#endif ++ ++ ++ ++#ifdef L_avr32_f64_div ++ .global __avr32_f64_div ++ .type __avr32_f64_div,@function ++__avr32_f64_div: ++ stm --sp, r2-r7,lr ++ eor r12, r11, r9 /* Sign(op1) ^ Sign(op2) to msb of r12*/ ++ lsl r11,1 /* unpack op1*/ ++ lddpc lr,.Linf ++ lsl r9,1 /* unpack op2*/ ++ ++ cp.w r11,lr ++ brhs 0f /* op1 is NaN or infinity */ ++ cp.w r9,lr ++ brhs 1f /* op2 is NaN or infinity */ ++ or r5,r9,r8 ++ breq 2f /* op2 is zero */ ++ or r5,r11,r10 ++ breq __dfdiv_return_op1 /* op1 is zero return zero*/ ++ ++ /* Unpack and normalize */ ++ /* op1 */ ++ unpack_df r7 /*exp*/, r10, r11 /*df number*/ ++ normalize_df r7 /*exp*/, r10, r11 /*Mantissa*/, r4, r5 /*scratch*/ ++ ++ /* op1 */ ++ unpack_df r6 /*exp*/, r8, r9 /*df number*/ ++ normalize_df r6 /*exp*/, r8, r9 /*Mantissa*/, r4, r5 /*scratch*/ ++ ++ /* Compute new exponent */ ++ sub r7,r6 ++ sub r7,-1023 ++ ++ /* Do fixed point division of mantissas*/ ++ mov r6,55 ++ lsr r11,1 ++ ror r10 ++ lsr r9,1 ++ ror r8 ++ ++3: ++ /* Check if dividend is higher or same than divisor */ ++ sub r2,r10,r8 ++ sbc r3,r11,r9 ++ /* If so move the difference back into the dividend */ ++ movhs r10, r2 ++ movhs r11, r3 ++ /* Update the Quotient */ ++ rol r4 ++ rol r5 ++ eorl r4,1 ++ ++ /* Shift the dividend */ ++ lsl r10,1 ++ rol r11 ++ ++ sub r6,1 ++ brne 3b ++ ++ /* Check if we have a remainder which will the propagate into ++ the last bit */ ++ ++ or r11,r11,r10 ++ neg r11 ++ rol r4 ++ rol r5 ++ ++ /* Adjust mantissa into correct alignment */ ++ lsl r11, r5,(64-56) ++ or r11,r11,r4>>(32-64+56) ++ lsl r10,r4, (64-56) ++ ++ /* Normalize result */ ++ normalize_df r7 /*exp*/, r10, r11 /* mantissa */, r8, r9 /* scratch */ ++ ++ /* Check if a subnormal result was created */ ++ cp.w r7, 0 ++ brgt 3f ++ ++ adjust_subnormal_df r7 /*exp*/, r10, r11 /* Mantissa */, r12 /*sign*/, r8, r9 /*scratch*/ ++ ldm sp++, r2-r7,pc ++3: ++ ++ /* Round result */ ++ round_df r7 /*exp*/, r10, r11 /* Mantissa */, r9 /*scratch*/ ++ cp.w r7,0x7ff ++ brlt __dfdiv_pack_result ++ /*Return infinity */ ++ lddpc r11, .Linf ++ mov r10, 0 ++ rjmp __dfdiv_return_op1 ++ ++__dfdiv_pack_result: ++ /* Pack */ ++ pack_df r7 /*exp*/, r10, r11 /* mantissa */, r10, r11 /* Output df number*/ ++ ++__dfdiv_return_op1: ++ lsl r12,1 ++ ror r11 ++ ldm sp++, r2-r7,pc ++ ++0: ++ /* Op1 is NaN or Inf */ ++ cpc r10 ++ /* If op1 is a NaN the we should return a NaN */ ++ brne __dfdiv_return_op1 ++ ++ /* Op1 is infinity, check op2*/ ++ cp.w r9,lr ++ brlo __dfdiv_return_op1 /* Op2 is a normal number return inf */ ++ /* Other combinations: return NaN */ ++ mov r11, -1 ++ ldm sp++, r2-r7,pc ++ ++1: ++ /* Op2 is NaN or Inf */ ++ cpc r8 ++ /* If inf return zero else return NaN*/ ++ mov r10, 0 ++ moveq r11, 0 ++ movne r11, -1 ++ ldm sp++, r2-r7,pc ++ ++2: ++ /* Op2 is zero */ ++ or r6,r11,r10 /* 0.0/0.0 yields NaN */ ++ mov r10, 0 ++ moveq r11, -1 /* Return NaN */ ++ movne r11, lr /* Return inf */ ++ rjmp __dfdiv_return_op1 ++ ++#endif ++ ++ ++#ifdef L_avr32_f32_div ++ .global __avr32_f32_div ++ .type __avr32_f32_div,@function ++__avr32_f32_div: ++ eor r8, r11, r12 /* MSB(r8) = Sign(op1) ^ Sign(op2) */ ++ /* Unpack */ ++ lsl r12,1 ++ reteq 0 /* Return zero if op1 is zero */ ++ lddpc r9, .Linf_sf ++ lsl r11,1 ++ ++ /* Check op1 for NaN or Inf */ ++ cp r12,r9 ++ brhs 2f ++ ++ /* Check op2 for NaN or Inf */ ++ cp r11,r9 ++ brhs 3f ++ /* Check op2 for zero */ ++ tst r11,r11 ++ breq 4f ++ ++ /* If op1 is zero return zero */ ++ tst r12, r12 ++ reteq 0 ++ ++ /* Unpack op1*/ ++ unpack_sf r9 /*exp*/, r12 /*sf*/ ++ ++ /* Unpack op2*/ ++ unpack_sf r10 /*exp*/, r11 /*sf*/ ++ ++ /* Calculate new exponent */ ++ stm --sp,r7,lr ++ sub r9, r10 ++ sub r9,-127 ++ ++ /* Divide */ ++ mov r7,26 ++ ++ lsr r12,1 /* Make room for one more bit in mantissas */ ++ lsr r11,1 ++ ++0: ++ sub r10,r12,r11 ++ movcc r12, r10 /* update dividend if divisor smaller */ ++ rol lr /* shift result into lr */ ++ eorl lr,1 /* flip bit. */ ++ lsl r12,1 /* Shift dividend */ ++ sub r7,1 ++ brne 0b ++ ++ /* round and scale*/ ++ neg r12 /* c = 1 iff r12 != 0 */ ++ rol lr ++ lsl r10,lr,(32-27) /* Adjust mantissa */ ++ ldm sp++, r7, lr ++ ++ ++ normalize_sf r9 /*exp*/, r10 /*mant*/, r11 /*scratch*/ ++ ++ /* Check for subnormal result */ ++ cp.w r9, 0 ++ brgt 0f ++ ++ /* Adjust a subnormal result */ ++ adjust_subnormal_sf r12 /*sf*/, r9 /*exp*/, r10 /*mant*/, r8 /*sign*/,r11 /*scratch*/ ++ ret r12 ++0: ++ round_sf r9 /*exp*/, r10 /*mant*/, r11 /*scratch*/ ++ pack_sf r12 /*sf*/, r9 /*exp*/, r10 /*mant*/ ++__divsf_return_op1: ++ lsl r8, 1 ++ ror r12 ++ ret r12 ++ ++2: ++ /* Op1 is NaN or inf */ ++ retne -1 /* Return NaN if op1 is NaN */ ++ /* Op1 is inf check op2 */ ++ cp r11, r9 ++ brlo __divsf_return_op1 /* inf/number gives inf */ ++ ret -1 /* The rest gives NaN*/ ++3: ++ /* Op1 is NaN or inf */ ++ reteq 0 /* Return zero if number/inf*/ ++ ret -1 /* Return NaN*/ ++4: ++ /* Op2 is zero ? */ ++ tst r12,r12 ++ reteq -1 /* 0.0/0.0 is NaN */ ++ lddpc r12, .Linf_sf ++ rjmp __divsf_return_op1 ++ ++#endif ++ ++#ifdef L_avr32_f32_mul ++ .global __avr32_f32_mul ++ .type __avr32_f32_mul,@function ++__avr32_f32_mul: ++ eor r8, r11, r12 /* MSB(r8) = Sign(op1) ^ Sign(op2) */ ++ lsl r12,1 /* unpack op1 */ ++ lsl r11,1 /* unpack op2 */ ++ ++ /* arrange operands so that that op1 >= op2 */ ++ sub r9,r12,r11 ++ brcc 0f ++ ++ sub r12,r9 /* swap operands if op2 was larger */ ++ add r11,r9 ++ ++0: ++ lddpc r9,.Linf_sf ++ cp r12,r9 ++ brhs 2f ++ ++ /* Check op2 for zero */ ++ tst r11,r11 ++ reteq 0 /* Return zero */ ++ ++ /* Unpack op1 */ ++ unpack_sf r9 /*exp*/, r12 /*sf*/ ++ /* Unpack op2 */ ++ unpack_sf r10 /*exp*/, r11 /*sf*/ ++ ++ /* Calculate new exponent */ ++ add r9,r10 ++ ++ /* Do the multiplication */ ++ mulu.d r10,r12,r11 ++ ++ sub r9,(127-1) /* remove extra exponent bias */ ++ ++ /* Check if we have any bits in r10 which ++ means a rounding bit should be inserted in LSB of result */ ++ tst r10,r10 ++ srne r10 ++ or r12,r11,r10 ++ ++ /* Normalize */ ++ normalize_sf r9 /*exp*/, r12 /*mant*/, r11 /*scratch*/ ++ ++ /* Check for subnormal result */ ++ cp.w r9, 0 ++ brgt 0f ++ ++ /* Adjust a subnormal result */ ++ adjust_subnormal_sf r12/*sf*/, r9 /*exp*/, r12 /*mant*/, r8 /*sign*/, r11 /*scratch */ ++ ret r12 ++0: ++ round_sf r9 /*exp*/, r12 /*mant*/, r11 /*scratch*/ ++ cp.w r9, 0xff ++ brlo 1f ++ lddpc r12,.Linf_sf ++ rjmp __mulsf_return_op1 ++1: ++ pack_sf r12 /*sf*/, r9 /*exp*/, r12 /*mant*/ ++__mulsf_return_op1: ++ lsl r8, 1 ++ ror r12 ++ ret r12 ++ ++2: ++ /* Op1 is inf or NaN */ ++ retne -1 /* Op1 is NaN return NaN */ ++ ++ /* Op1 is inf and op2 is smaller so it is either infinity ++ or a subnormal number */ ++ cp r11,0 ++ brne __mulsf_return_op1 /* op2 is not zero. return op1.*/ ++ ret -1 /* inf * 0 return NaN */ ++#endif ++ ++ ++#ifdef L_avr32_s32_to_f32 ++ .global __avr32_s32_to_f32 ++ .type __avr32_s32_to_f32,@function ++__avr32_s32_to_f32: ++ cp r12, 0 ++ reteq r12 /* If zero then return zero float */ ++ mov r11, r12 /* Keep the sign */ ++ abs r12 /* Compute the absolute value */ ++ mov r10, 31 + 127 /* Set the correct exponent */ ++ ++ /* Normalize */ ++ normalize_sf r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/ ++ ++ /* Check for subnormal result */ ++ cp.w r10, 0 ++ brgt 0f ++ ++ /* Adjust a subnormal result */ ++ adjust_subnormal_sf r12/*sf*/, r10 /*exp*/, r12 /*mant*/, r11/*sign*/, r9 /*scratch*/ ++ ret r12 ++0: ++ round_sf r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/ ++ pack_sf r12 /*sf*/, r10 /*exp*/, r12 /*mant*/ ++__floatsisf_return_op1: ++ lsl r11, 1 ++ ror r12 ++ ret r12 ++#endif ++ ++#ifdef L_avr32_u32_to_f32 ++ .global __avr32_u32_to_f32 ++ .type __avr32_u32_to_f32,@function ++__avr32_u32_to_f32: ++ cp r12, 0 ++ reteq r12 /* If zero then return zero float */ ++ mov r10, 31 + 127 /* Set the correct exponent */ ++ ++ /* Normalize */ ++ normalize_sf r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/ ++ ++ /* Check for subnormal result */ ++ cp.w r10, 0 ++ brgt 0f ++ ++ /* Adjust a subnormal result */ ++ mov r8, 0 ++ adjust_subnormal_sf r12/*sf*/,r10 /*exp*/, r12 /*mant*/,r8/*sign*/, r9 /*scratch*/ ++ ret r12 ++0: ++ round_sf r10 /*exp*/, r12 /*mant*/, r9 /*scratch*/ ++ pack_sf r12 /*sf*/, r10 /*exp*/, r12 /*mant*/ ++__floatunsisf_return_op1: ++ lsr r12,1 /* Sign bit is 0 for unsigned int */ ++ ret r12 ++#endif ++ ++ ++#ifdef L_avr32_f32_to_s32 ++ .global __avr32_f32_to_s32 ++ .type __avr32_f32_to_s32,@function ++__avr32_f32_to_s32: ++ lsr r11,r12,23 /* Extract exponent */ ++ castu.b r11 ++ sub r11,127 /* Fix bias */ ++ retlo 0 /* Negative exponent yields zero integer */ ++ ++#ifdef __IEEE_LARGE_FLOATS__ ++ cp r11,31 ++ brcc 0f ++#endif ++ /* Shift mantissa into correct position */ ++ rsub r11,r11,31 /* Shift amount */ ++ lsl r10,r12,8 /* Get mantissa */ ++ sbr r10,31 /* Add implicit bit */ ++ lsr r10,r10,r11 /* Perform shift */ ++ lsl r12,1 /* Check sign */ ++ retcc r10 /* if positive, we are done */ ++ neg r10 /* if negative float, negate result */ ++ ret r10 ++ ++#ifdef __IEEE_LARGE_FLOATS__ ++0: ++ mov r11,-1 ++ lsr r11,1 ++ lsl r12,1 ++ acr r11 ++ ++ ret r11 ++#endif ++#endif ++ ++#ifdef L_avr32_f32_to_u32 ++ .global __avr32_f32_to_u32 ++ .type __avr32_f32_to_u32,@function ++__avr32_f32_to_u32: ++ cp r12,0 ++ retmi 0 /* Negative numbers gives 0 */ ++ bfextu r11, r12, 23, 8 /* Extract exponent */ ++ sub r11,127 /* Fix bias */ ++ retlo 0 /* Negative exponent yields zero integer */ ++ ++#ifdef __IEEE_LARGE_FLOATS__ ++ cp r11,32 ++ brcc 0f ++#endif ++ /* Shift mantissa into correct position */ ++ rsub r11,r11,31 /* Shift amount */ ++ lsl r12,8 /* Get mantissa */ ++ sbr r12,31 /* Add implicit bit */ ++ lsr r12,r12,r11 /* Perform shift */ ++ ret r12 ++ ++#ifdef __IEEE_LARGE_FLOATS__ ++0: ++ mov r11,-1 ++ lsr r11,1 ++ lsl r12,1 ++ acr r11 ++ ++ ret r11 ++#endif ++#endif ++ ++#ifdef L_avr32_f32_to_f64 ++ .global __avr32_f32_to_f64 ++ .type __avr32_f32_to_f64,@function ++ ++__avr32_f32_to_f64: ++ lsl r11,r12,1 /* Remove sign bit, keep original value in r12*/ ++ moveq r10, 0 ++ reteq r11 /* Return zero if input is zero */ ++ ++ bfextu r9,r11,24,8 /* Get exponent */ ++ cp.w r9,0xff /* check for NaN or inf */ ++ breq 0f ++ ++ lsl r11,7 /* Convert sf mantissa to df format */ ++ mov r10,0 ++ ++ /* Check if implicit bit should be set */ ++ cp.w r9, 0 ++ subeq r9,-1 /* Adjust exponent if it was 0 */ ++ srne r8 ++ or r11, r11, r8 << 31 /* Set implicit bit if needed */ ++ sub r9,(127-0x3ff) /* Convert exponent to df format exponent */ ++ ++ pushm lr ++ normalize_df r9 /*exp*/, r10, r11 /*mantissa*/, r8, lr /*scratch*/ ++ popm lr ++ pack_df r9 /*exp*/, r10, r11 /*mantissa*/, r10, r11 /*df*/ ++ ++__extendsfdf_return_op1: ++ /* Rotate in sign bit */ ++ lsl r12, 1 ++ ror r11 ++ ret r11 ++ ++0: ++ /* Inf or NaN*/ ++ lddpc r10, .Linf ++ lsl r11,8 /* check mantissa */ ++ movne r11, -1 /* Return NaN */ ++ moveq r11, r10 /* Return inf */ ++ rjmp __extendsfdf_return_op1 ++#endif ++ ++ ++#ifdef L_avr32_f64_to_f32 ++ .global __avr32_f64_to_f32 ++ .type __avr32_f64_to_f32,@function ++ ++__avr32_f64_to_f32: ++ /* Unpack */ ++ lsl r9,r11,1 /* Unpack exponent */ ++ lsr r9,21 ++ ++ reteq 0 /* If exponent is 0 the number is so small ++ that the conversion to single float gives ++ zero */ ++ ++ lsl r8,r11,10 /* Adjust mantissa */ ++ or r12,r8,r10>>22 ++ ++ lsl r10,10 /* Check if there are any remaining bits ++ in the low part of the mantissa.*/ ++ neg r10 ++ rol r12 /* If there were remaining bits then set lsb ++ of mantissa to 1 */ ++ ++ cp r9,0x7ff ++ breq 2f /* Check for NaN or inf */ ++ ++ sub r9,(0x3ff-127) /* Adjust bias of exponent */ ++ sbr r12,31 /* set the implicit bit.*/ ++ ++ cp.w r9, 0 /* Check for subnormal number */ ++ brgt 0f ++ ++ /* Adjust a subnormal result */ ++ adjust_subnormal_sf r12/*sf*/,r9 /*exp*/, r12 /*mant*/, r11/*sign*/, r10 /*scratch*/ ++ ret r12 ++0: ++ round_sf r9 /*exp*/, r12 /*mant*/, r10 /*scratch*/ ++ pack_sf r12 /*sf*/, r9 /*exp*/, r12 /*mant*/ ++__truncdfsf_return_op1: ++ /* Rotate in sign bit */ ++ lsl r11, 1 ++ ror r12 ++ ret r12 ++ ++ ++2: ++ /* NaN or inf */ ++ cbr r12,31 /* clear implicit bit */ ++ retne -1 /* Return NaN if mantissa not zero */ ++ lddpc r12,.Linf_sf ++ ret r12 /* Return inf */ ++#endif ++ ++ ++ .align 2 ++.Linf: ++ .long 0xffe00000 ++ ++ .align 2 ++.Linf_sf: ++ .long 0xff000000 ++ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/lib2funcs.S gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/lib2funcs.S +--- gcc-4.0.2/gcc/config/avr32/lib2funcs.S 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/lib2funcs.S 2006-10-10 12:36:34.000000000 +0200 +@@ -0,0 +1,21 @@ ++ .align 4 ++ .global __nonlocal_goto ++ .type __nonlocal_goto,@function ++ ++/* __nonlocal_goto: This function handles nonlocal_goto's in gcc. ++ ++ parameter 0 (r12) = New Frame Pointer ++ parameter 1 (r11) = Address to goto ++ parameter 2 (r10) = New Stack Pointer ++ ++ This function invalidates the return stack, since it returns from a ++ function without using a return instruction. ++*/ ++__nonlocal_goto: ++ mov r7, r12 ++ mov sp, r10 ++ frs # Flush return stack ++ mov pc, r11 ++ ++ ++ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/linux-elf.h gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/linux-elf.h +--- gcc-4.0.2/gcc/config/avr32/linux-elf.h 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/linux-elf.h 2006-11-10 15:14:06.000000000 +0100 +@@ -0,0 +1,154 @@ ++/* ++ Linux/Elf specific definitions. ++ Copyright 2003-2006 Atmel Corporation. ++ ++ Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++ and Hvard Skinnemoen, Atmel Norway, <hskinnemoen@atmel.com> ++ ++ This file is part of GCC. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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 program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ ++ ++ ++ ++/* elfos.h should have already been included. Now just override ++ any conflicting definitions and add any extras. */ ++ ++/* Run-time Target Specification. */ ++#undef TARGET_VERSION ++#define TARGET_VERSION fputs (" (AVR32 GNU/Linux with ELF)", stderr); ++ ++/* Do not assume anything about header files. */ ++#define NO_IMPLICIT_EXTERN_C ++ ++/* The GNU C++ standard library requires that these macros be defined. */ ++#undef CPLUSPLUS_CPP_SPEC ++#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)" ++ ++/* Now we define the strings used to build the spec file. */ ++#undef LIB_SPEC ++#define LIB_SPEC \ ++ "%{pthread:-lpthread} \ ++ %{shared:-lc} \ ++ %{!shared:%{profile:-lc_p}%{!profile:-lc}}" ++ ++/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add ++ the GNU/Linux magical crtbegin.o file (see crtstuff.c) which ++ provides part of the support for getting C++ file-scope static ++ object constructed before entering `main'. */ ++ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC \ ++ "%{!shared: \ ++ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ ++ %{!p:%{profile:gcrt1.o%s} \ ++ %{!profile:crt1.o%s}}}} \ ++ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" ++ ++/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on ++ the GNU/Linux magical crtend.o file (see crtstuff.c) which ++ provides part of the support for getting C++ file-scope static ++ object constructed before entering `main', followed by a normal ++ GNU/Linux "finalizer" file, `crtn.o'. */ ++ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC \ ++ "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" ++ ++#undef ASM_SPEC ++#define ASM_SPEC "%{!mno-pic:--pic} %{mrelax|O*:%{mno-relax|O0|O1: ;:--linkrelax}} %{mcpu=*:-mcpu=%*}" ++ ++#undef LINK_SPEC ++#define LINK_SPEC "%{version:-v} \ ++ %{static:-Bstatic} \ ++ %{shared:-shared} \ ++ %{symbolic:-Bsymbolic} \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \ ++ %{mrelax|O*:%{mno-relax|O0|O1: ;:--relax}}" ++ ++#define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS() ++ ++/* This is how we tell the assembler that two symbols have the same value. */ ++#define ASM_OUTPUT_DEF(FILE, NAME1, NAME2) \ ++ do \ ++ { \ ++ assemble_name (FILE, NAME1); \ ++ fputs (" = ", FILE); \ ++ assemble_name (FILE, NAME2); \ ++ fputc ('\n', FILE); \ ++ } \ ++ while (0) ++ ++ ++ ++#undef CC1_SPEC ++#define CC1_SPEC "%{profile:-p}" ++ ++/* Target CPU builtins. */ ++#define TARGET_CPU_CPP_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("__avr32__"); \ ++ builtin_define ("__AVR32__"); \ ++ builtin_define ("__AVR32_LINUX__"); \ ++ builtin_define (avr32_part->macro); \ ++ builtin_define (avr32_arch->macro); \ ++ if (avr32_arch->uarch_type == UARCH_TYPE_AVR32A) \ ++ builtin_define ("__AVR32_AVR32A__"); \ ++ else \ ++ builtin_define ("__AVR32_AVR32B__"); \ ++ if (TARGET_UNALIGNED_WORD) \ ++ builtin_define ("__AVR32_HAS_UNALIGNED_WORD__"); \ ++ if (TARGET_SIMD) \ ++ builtin_define ("__AVR32_HAS_SIMD__"); \ ++ if (TARGET_DSP) \ ++ builtin_define ("__AVR32_HAS_DSP__"); \ ++ if (TARGET_RMW) \ ++ builtin_define ("__AVR32_HAS_RMW__"); \ ++ if (TARGET_BRANCH_PRED) \ ++ builtin_define ("__AVR32_HAS_BRANCH_PRED__"); \ ++ if (flag_pic) \ ++ { \ ++ builtin_define ("__PIC__"); \ ++ builtin_define ("__pic__"); \ ++ } \ ++ } \ ++ while (0) ++ ++ ++ ++/* Call the function profiler with a given profile label. */ ++#undef FUNCTION_PROFILER ++#define FUNCTION_PROFILER(STREAM, LABELNO) \ ++ do \ ++ { \ ++ fprintf (STREAM, "\tmov\tlr, lo(mcount)\n\torh\tlr, hi(mcount)\n"); \ ++ fprintf (STREAM, "\ticall lr\n"); \ ++ } \ ++ while (0) ++ ++#define NO_PROFILE_COUNTERS 1 ++ ++/* For dynamic libraries to work */ ++/* #define PLT_REG_CALL_CLOBBERED 1 */ ++#define AVR32_ALWAYS_PIC 1 ++ ++/* uclibc does not implement sinf, cosf etc. */ ++#undef TARGET_C99_FUNCTIONS ++#define TARGET_C99_FUNCTIONS 0 ++ ++#define LINK_GCC_C_SEQUENCE_SPEC \ ++ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/predicates.md gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/predicates.md +--- gcc-4.0.2/gcc/config/avr32/predicates.md 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/predicates.md 2006-11-09 15:01:19.000000000 +0100 +@@ -0,0 +1,303 @@ ++;; AVR32 predicates file. ++;; Copyright 2003-2006 Atmel Corporation. ++;; ++;; Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++;; ++;; This file is part of GCC. ++;; ++;; This program is free software; you can redistribute it and/or modify ++;; it under the terms of the GNU General Public License as published by ++;; the Free Software Foundation; either version 2 of the License, or ++;; (at your option) any later version. ++;; ++;; This program 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 program; if not, write to the Free Software ++;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++ ++;; True if the operand is a memory reference which contains an ++;; Address consisting of a single pointer register ++(define_predicate "avr32_indirect_register_operand" ++ (and (match_code "mem") ++ (match_test "register_operand(XEXP(op, 0), SImode)"))) ++ ++ ++ ++;; Address expression with a base pointer offset with ++;; a register displacement ++(define_predicate "avr32_indexed_memory_operand" ++ (and (match_code "mem") ++ (match_test "GET_CODE(XEXP(op, 0)) == PLUS")) ++ { ++ ++ rtx op0 = XEXP(XEXP(op, 0), 0); ++ rtx op1 = XEXP(XEXP(op, 0), 1); ++ ++ return ((avr32_address_register_rtx_p (op0, 0) ++ && avr32_legitimate_index_p (GET_MODE(op), op1, 0)) ++ || (avr32_address_register_rtx_p (op1, 0) ++ && avr32_legitimate_index_p (GET_MODE(op), op0, 0))); ++ ++ }) ++ ++;; Operand suitable for the ld.sb instruction ++(define_predicate "load_sb_memory_operand" ++ (ior (match_operand 0 "avr32_indirect_register_operand") ++ (match_operand 0 "avr32_indexed_memory_operand"))) ++ ++ ++;; Operand suitable as operand to insns sign extending QI values ++(define_predicate "extendqi_operand" ++ (ior (match_operand 0 "load_sb_memory_operand") ++ (match_operand 0 "register_operand"))) ++ ++(define_predicate "post_inc_memory_operand" ++ (and (match_code "mem") ++ (match_test "(GET_CODE(XEXP(op, 0)) == POST_INC) ++ && REG_P(XEXP(XEXP(op, 0), 0))"))) ++ ++;; Operand suitable for loading TImode values ++(define_predicate "loadti_operand" ++ (ior (ior (match_operand 0 "register_operand") ++ (match_operand 0 "avr32_indirect_register_operand")) ++ (match_operand 0 "post_inc_memory_operand"))) ++ ++;; Operand suitable for add instructions ++(define_predicate "avr32_add_operand" ++ (ior (match_operand 0 "register_operand") ++ (and (match_operand 0 "immediate_operand") ++ (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'I', \"Is21\")")))) ++ ++;; Operand is a power of two immediate ++(define_predicate "power_of_two_operand" ++ (match_code "const_int") ++{ ++ HOST_WIDE_INT value = INTVAL (op); ++ ++ return value != 0 && (value & (value - 1)) == 0; ++}) ++ ++;; Operand is a multiple of 8 immediate ++(define_predicate "multiple_of_8_operand" ++ (match_code "const_int") ++{ ++ HOST_WIDE_INT value = INTVAL (op); ++ ++ return (value & 0x7) == 0 ; ++}) ++ ++;; Operand is a multiple of 16 immediate ++(define_predicate "multiple_of_16_operand" ++ (match_code "const_int") ++{ ++ HOST_WIDE_INT value = INTVAL (op); ++ ++ return (value & 0xf) == 0 ; ++}) ++ ++;; Operand is a mask used for masking away upper bits of a reg ++(define_predicate "avr32_mask_upper_bits_operand" ++ (match_code "const_int") ++{ ++ HOST_WIDE_INT value = INTVAL (op) + 1; ++ ++ return value != 1 && value != 0 && (value & (value - 1)) == 0; ++}) ++ ++ ++;; Operand suitable for mul instructions ++(define_predicate "avr32_mul_operand" ++ (ior (match_operand 0 "register_operand") ++ (and (match_operand 0 "immediate_operand") ++ (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'K', \"Ks08\")")))) ++ ++;; True for logical binary operators. ++(define_predicate "logical_binary_operator" ++ (match_code "ior,xor,and")) ++ ++;; True for logical shift operators ++(define_predicate "logical_shift_operator" ++ (match_code "ashift,lshiftrt")) ++ ++;; True for shift operand for logical and, or and eor insns ++(define_predicate "avr32_logical_shift_operand" ++ (and (match_code "ashift,lshiftrt") ++ (ior (and (match_test "GET_CODE(XEXP(op, 1)) == CONST_INT") ++ (match_test "register_operand(XEXP(op, 0), GET_MODE(XEXP(op, 0)))")) ++ (and (match_test "GET_CODE(XEXP(op, 0)) == CONST_INT") ++ (match_test "register_operand(XEXP(op, 1), GET_MODE(XEXP(op, 1)))")))) ++ { ++ return 1; ++ } ++ ) ++ ++ ++;; Predicate for second operand to and, ior and xor insn patterns ++(define_predicate "avr32_logical_insn_operand" ++ (ior (match_operand 0 "register_operand") ++ (match_operand 0 "avr32_logical_shift_operand")) ++ { ++ return 1; ++ } ++) ++ ++ ++;; True for avr32 comparison operators ++(define_predicate "avr32_comparison_operator" ++ (ior (match_code "eq, ne, gt, ge, lt, le, gtu, geu, ltu, leu") ++ (and (match_code "unspec") ++ (match_test "(XINT(op, 1) == UNSPEC_COND_MI) ++ || (XINT(op, 1) == UNSPEC_COND_PL)")))) ++ ++;; True if this is a const_int with one bit set ++(define_predicate "one_bit_set_operand" ++ (match_code "const_int") ++ { ++ int i; ++ int value; ++ int ones = 0; ++ ++ value = INTVAL(op); ++ for ( i = 0 ; i < 32; i++ ){ ++ if ( value & ( 1 << i ) ){ ++ ones++; ++ } ++ } ++ ++ return ( ones == 1 ); ++ }) ++ ++ ++;; True if this is a const_int with one bit cleared ++(define_predicate "one_bit_cleared_operand" ++ (match_code "const_int") ++ { ++ int i; ++ int value; ++ int zeroes = 0; ++ ++ value = INTVAL(op); ++ for ( i = 0 ; i < 32; i++ ){ ++ if ( !(value & ( 1 << i )) ){ ++ zeroes++; ++ } ++ } ++ ++ return ( zeroes == 1 ); ++ }) ++ ++ ++;; True if this is a register or immediate operand ++(define_predicate "register_immediate_operand" ++ (ior (match_operand 0 "register_operand") ++ (match_operand 0 "immediate_operand"))) ++ ++ ++;; True is this is an operand containing a label_ref ++(define_predicate "avr32_label_ref_operand" ++ (and (match_code "mem") ++ (match_test "avr32_find_symbol(op) ++ && (GET_CODE(avr32_find_symbol(op)) == LABEL_REF)"))) ++ ++;; True is this is a valid symbol pointing to the constant pool ++(define_predicate "avr32_const_pool_operand" ++ (and (match_code "symbol_ref") ++ (match_test "CONSTANT_POOL_ADDRESS_P(op)")) ++ { ++ return (flag_pic ? (!(symbol_mentioned_p (get_pool_constant (op)) ++ || label_mentioned_p (get_pool_constant (op))) ++ || avr32_got_mentioned_p(get_pool_constant (op))) ++ : true); ++ } ++) ++ ++;; True is this is a memory reference to the constant or mini pool ++(define_predicate "avr32_const_pool_ref_operand" ++ (ior (match_operand 0 "avr32_label_ref_operand") ++ (and (match_code "mem") ++ (match_test "avr32_const_pool_operand(XEXP(op,0), GET_MODE(XEXP(op,0)))")))) ++ ++ ++ ++;; True is this is a k12 offseted memory operand ++(define_predicate "avr32_k12_memory_operand" ++ (and (match_code "mem") ++ (ior (match_test "REG_P(XEXP(op, 0))") ++ (match_test "GET_CODE(XEXP(op, 0)) == PLUS ++ && REG_P(XEXP(XEXP(op, 0), 0)) ++ && (GET_CODE(XEXP(XEXP(op, 0), 1)) == CONST_INT) ++ && (CONST_OK_FOR_CONSTRAINT_P(INTVAL(XEXP(XEXP(op, 0), 0)), ++ 'K', (mode == SImode) ? \"Ks14\" : ((mode == HImode) ? \"Ks13\" : \"Ks12\")))")))) ++ ++;; True is this is a memory operand with an immediate displacement ++(define_predicate "avr32_imm_disp_memory_operand" ++ (and (match_code "mem") ++ (match_test "GET_CODE(XEXP(op, 0)) == PLUS ++ && REG_P(XEXP(XEXP(op, 0), 0)) ++ && (GET_CODE(XEXP(XEXP(op, 0), 1)) == CONST_INT)"))) ++ ++;; True is this is a bswap operand ++(define_predicate "avr32_bswap_operand" ++ (ior (match_operand 0 "avr32_k12_memory_operand") ++ (match_operand 0 "register_operand"))) ++ ++;; True is this is a valid coprocessor insn memory operand ++(define_predicate "avr32_cop_memory_operand" ++ (and (match_operand 0 "memory_operand") ++ (not (match_test "GET_CODE(XEXP(op, 0)) == PLUS ++ && REG_P(XEXP(XEXP(op, 0), 0)) ++ && (GET_CODE(XEXP(XEXP(op, 0), 1)) == CONST_INT) ++ && !(CONST_OK_FOR_CONSTRAINT_P(INTVAL(XEXP(XEXP(op, 0), 0)), 'K', \"Ku10\"))")))) ++ ++;; True is this is a valid source/destination operand ++;; for moving values to/from a coprocessor ++(define_predicate "avr32_cop_move_operand" ++ (ior (match_operand 0 "register_operand") ++ (match_operand 0 "avr32_cop_memory_operand"))) ++ ++ ++;; True is this is a valid extract byte offset for use in ++;; load extracted index insns ++(define_predicate "avr32_extract_shift_operand" ++ (and (match_operand 0 "const_int_operand") ++ (match_test "(INTVAL(op) == 0) || (INTVAL(op) == 8) ++ || (INTVAL(op) == 16) || (INTVAL(op) == 24)"))) ++ ++;; True is this is a floating-point register ++(define_predicate "avr32_fp_register_operand" ++ (and (match_operand 0 "register_operand") ++ (match_test "REGNO_REG_CLASS(REGNO(op)) == FP_REGS"))) ++ ++;; True is this is valid avr32 symbol operand ++(define_predicate "avr32_symbol_operand" ++ (ior (match_code "label_ref, symbol_ref") ++ (and (match_code "const") ++ (match_test "avr32_find_symbol(op)")))) ++ ++;; True is this is valid operand for the lda.w and call pseudo insns ++(define_predicate "avr32_address_operand" ++ (and (match_code "label_ref, symbol_ref") ++ (ior (match_test "TARGET_HAS_ASM_ADDR_PSEUDOS") ++ (match_test "flag_pic")) )) ++ ++;; True if this is a avr32 call operand ++(define_predicate "avr32_call_operand" ++ (ior (ior (match_operand 0 "register_operand") ++ (ior (match_operand 0 "avr32_const_pool_ref_operand") ++ (match_operand 0 "avr32_address_operand"))) ++ (match_test "SYMBOL_REF_RCALL_FUNCTION_P(op)"))) ++ ++;; Return true for operators performing ALU operations ++ ++(define_predicate "alu_operator" ++ (match_code "ior, xor, and, plus, minus, ashift, lshiftrt, ashiftrt")) ++ ++(define_predicate "avr32_add_shift_immediate_operand" ++ (and (match_operand 0 "immediate_operand") ++ (match_test "CONST_OK_FOR_CONSTRAINT_P(INTVAL(op), 'K', \"Ku02\")"))) ++ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/simd.md gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/simd.md +--- gcc-4.0.2/gcc/config/avr32/simd.md 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/simd.md 2006-10-10 12:36:34.000000000 +0200 +@@ -0,0 +1,145 @@ ++;; AVR32 machine description file for SIMD instructions. ++;; Copyright 2003-2006 Atmel Corporation. ++;; ++;; Written by Ronny Pedersen, Atmel Norway, <rpedersen@atmel.com> ++;; ++;; This file is part of GCC. ++;; ++;; This program is free software; you can redistribute it and/or modify ++;; it under the terms of the GNU General Public License as published by ++;; the Free Software Foundation; either version 2 of the License, or ++;; (at your option) any later version. ++;; ++;; This program 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 program; if not, write to the Free Software ++;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++;; -*- Mode: Scheme -*- ++ ++ ++;; Vector modes ++(define_mode_macro VECM [V2HI V4QI]) ++(define_mode_attr size [(V2HI "h") (V4QI "b")]) ++ ++(define_insn "add<mode>3" ++ [(set (match_operand:VECM 0 "register_operand" "=r") ++ (plus:VECM (match_operand:VECM 1 "register_operand" "r") ++ (match_operand:VECM 2 "register_operand" "r")))] ++ "TARGET_SIMD" ++ "padd.<size>\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++ ++(define_insn "sub<mode>3" ++ [(set (match_operand:VECM 0 "register_operand" "=r") ++ (minus:VECM (match_operand:VECM 1 "register_operand" "r") ++ (match_operand:VECM 2 "register_operand" "r")))] ++ "TARGET_SIMD" ++ "psub.<size>\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++ ++(define_insn "abs<mode>2" ++ [(set (match_operand:VECM 0 "register_operand" "=r") ++ (abs:VECM (match_operand:VECM 1 "register_operand" "r")))] ++ "TARGET_SIMD" ++ "pabs.s<size>\t%0, %1" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "ashl<mode>3" ++ [(set (match_operand:VECM 0 "register_operand" "=r") ++ (ashift:VECM (match_operand:VECM 1 "register_operand" "r") ++ (match_operand:SI 2 "immediate_operand" "Ku04")))] ++ "TARGET_SIMD" ++ "plsl.<size>\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "ashr<mode>3" ++ [(set (match_operand:VECM 0 "register_operand" "=r") ++ (ashiftrt:VECM (match_operand:VECM 1 "register_operand" "r") ++ (match_operand:SI 2 "immediate_operand" "Ku04")))] ++ "TARGET_SIMD" ++ "pasr.<size>\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "lshr<mode>3" ++ [(set (match_operand:VECM 0 "register_operand" "=r") ++ (lshiftrt:VECM (match_operand:VECM 1 "register_operand" "r") ++ (match_operand:SI 2 "immediate_operand" "Ku04")))] ++ "TARGET_SIMD" ++ "plsr.<size>\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "smaxv2hi3" ++ [(set (match_operand:V2HI 0 "register_operand" "=r") ++ (smax:V2HI (match_operand:V2HI 1 "register_operand" "r") ++ (match_operand:V2HI 2 "register_operand" "r")))] ++ ++ "TARGET_SIMD" ++ "pmax.sh\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "sminv2hi3" ++ [(set (match_operand:V2HI 0 "register_operand" "=r") ++ (smin:V2HI (match_operand:V2HI 1 "register_operand" "r") ++ (match_operand:V2HI 2 "register_operand" "r")))] ++ ++ "TARGET_SIMD" ++ "pmin.sh\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "umaxv4qi3" ++ [(set (match_operand:V4QI 0 "register_operand" "=r") ++ (umax:V4QI (match_operand:V4QI 1 "register_operand" "r") ++ (match_operand:V4QI 2 "register_operand" "r")))] ++ ++ "TARGET_SIMD" ++ "pmax.ub\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "uminv4qi3" ++ [(set (match_operand:V4QI 0 "register_operand" "=r") ++ (umin:V4QI (match_operand:V4QI 1 "register_operand" "r") ++ (match_operand:V4QI 2 "register_operand" "r")))] ++ ++ "TARGET_SIMD" ++ "pmin.ub\t%0, %1, %2" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++ ++(define_insn "addsubv2hi" ++ [(set (match_operand:V2HI 0 "register_operand" "=r") ++ (vec_concat:V2HI ++ (plus:HI (match_operand:HI 1 "register_operand" "r") ++ (match_operand:HI 2 "register_operand" "r")) ++ (minus:HI (match_dup 1) (match_dup 2))))] ++ "TARGET_SIMD" ++ "paddsub.h\t%0, %1:b, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) ++ ++(define_insn "subaddv2hi" ++ [(set (match_operand:V2HI 0 "register_operand" "=r") ++ (vec_concat:V2HI ++ (minus:HI (match_operand:HI 1 "register_operand" "r") ++ (match_operand:HI 2 "register_operand" "r")) ++ (plus:HI (match_dup 1) (match_dup 2))))] ++ "TARGET_SIMD" ++ "psubadd.h\t%0, %1:b, %2:b" ++ [(set_attr "length" "4") ++ (set_attr "type" "alu")]) +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/t-avr32 gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/t-avr32 +--- gcc-4.0.2/gcc/config/avr32/t-avr32 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/t-avr32 2006-11-24 17:10:48.000000000 +0100 +@@ -0,0 +1,63 @@ ++ ++MD_INCLUDES= $(srcdir)/config/avr32/avr32.md \ ++ $(srcdir)/config/avr32/fpcp.md \ ++ $(srcdir)/config/avr32/simd.md \ ++ $(srcdir)/config/avr32/predicates.md ++ ++s-config s-conditions s-flags s-codes s-constants s-emit s-recog s-preds \ ++ s-opinit s-extract s-peep s-attr s-attrtab s-output: $(MD_INCLUDES) ++ ++# We want fine grained libraries, so use the new code ++# to build the floating point emulation libraries. ++FPBIT = fp-bit.c ++DPBIT = dp-bit.c ++ ++LIB1ASMSRC = avr32/lib1funcs.S ++LIB1ASMFUNCS = _avr32_f64_mul _avr32_f64_addsub _avr32_f64_to_u32 _avr32_f64_to_s32 \ ++ _avr32_f64_to_u64 _avr32_f64_to_s64 _avr32_u32_to_f64 _avr32_s32_to_f64 \ ++ _avr32_f64_cmp_eq _avr32_f64_cmp_ge _avr32_f64_cmp_lt \ ++ _avr32_f32_cmp_eq _avr32_f32_cmp_ge _avr32_f32_cmp_lt \ ++ _avr32_f64_div _avr32_f32_div\ ++ _avr32_f32_mul _avr32_s32_to_f32 _avr32_u32_to_f32 _avr32_f32_to_s32 \ ++ _avr32_f32_to_u32 _avr32_f32_to_f64 _avr32_f64_to_f32 ++ ++LIB2FUNCS_EXTRA += $(srcdir)/config/avr32/lib2funcs.S ++ ++MULTILIB_OPTIONS = march=ap/march=uc ++MULTILIB_DIRNAMES = ap uc ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = march?ap=mcpu?ap7000 ++MULTILIB_MATCHES += march?ap=mcpu?ap7010 ++MULTILIB_MATCHES += march?ap=mcpu?ap7020 ++MULTILIB_MATCHES += march?uc=mcpu?uc3a0256 ++MULTILIB_MATCHES += march?uc=mcpu?uc3a0512 ++MULTILIB_MATCHES += march?uc=mcpu?uc3a1128 ++MULTILIB_MATCHES += march?uc=mcpu?uc3a1256 ++MULTILIB_MATCHES += march?uc=mcpu?uc3a1512 ++MULTILIB_MATCHES += march?ap=mpart?ap7000 ++MULTILIB_MATCHES += march?ap=mpart?ap7010 ++MULTILIB_MATCHES += march?ap=mpart?ap7020 ++MULTILIB_MATCHES += march?uc=mpart?uc3a0256 ++MULTILIB_MATCHES += march?uc=mpart?uc3a0512 ++MULTILIB_MATCHES += march?uc=mpart?uc3a1128 ++MULTILIB_MATCHES += march?uc=mpart?uc3a1256 ++MULTILIB_MATCHES += march?uc=mpart?uc3a1512 ++ ++EXTRA_MULTILIB_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crti.o crtn.o ++ ++CRTSTUFF_T_CFLAGS = -mrelax ++CRTSTUFF_T_CFLAGS_S = -mrelax -fPIC ++TARGET_LIBGCC2_CFLAGS += -mrelax ++ ++LIBGCC = stmp-multilib ++INSTALL_LIBGCC = install-multilib ++ ++fp-bit.c: $(srcdir)/config/fp-bit.c ++ echo '#define FLOAT' > fp-bit.c ++ cat $(srcdir)/config/fp-bit.c >> fp-bit.c ++ ++dp-bit.c: $(srcdir)/config/fp-bit.c ++ cat $(srcdir)/config/fp-bit.c > dp-bit.c ++ ++ ++ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/t-elf gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/t-elf +--- gcc-4.0.2/gcc/config/avr32/t-elf 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/t-elf 2006-03-20 13:59:57.000000000 +0100 +@@ -0,0 +1,16 @@ ++ ++# Assemble startup files. ++$(T)crti.o: $(srcdir)/config/avr32/crti.asm $(GCC_PASSES) ++ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) $(INCLUDES) \ ++ -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/avr32/crti.asm ++ ++$(T)crtn.o: $(srcdir)/config/avr32/crtn.asm $(GCC_PASSES) ++ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) $(INCLUDES) \ ++ -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/avr32/crtn.asm ++ ++ ++# Build the libraries for both hard and soft floating point ++EXTRA_MULTILIB_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crti.o crtn.o ++ ++LIBGCC = stmp-multilib ++INSTALL_LIBGCC = install-multilib +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/avr32/uclinux-elf.h gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/uclinux-elf.h +--- gcc-4.0.2/gcc/config/avr32/uclinux-elf.h 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/avr32/uclinux-elf.h 2006-01-04 10:57:09.000000000 +0100 +@@ -0,0 +1,20 @@ ++ ++/* Run-time Target Specification. */ ++#undef TARGET_VERSION ++#define TARGET_VERSION fputs (" (AVR32 uClinux with ELF)", stderr) ++ ++/* We don't want a .jcr section on uClinux. As if this makes a difference... */ ++#define TARGET_USE_JCR_SECTION 0 ++ ++/* Here we go. Drop the crtbegin/crtend stuff completely. */ ++#undef STARTFILE_SPEC ++#define STARTFILE_SPEC \ ++ "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s}" \ ++ " %{!p:%{profile:gcrt1.o%s}" \ ++ " %{!profile:crt1.o%s}}}} crti.o%s" ++ ++#undef ENDFILE_SPEC ++#define ENDFILE_SPEC "crtn.o%s" ++ ++#undef TARGET_DEFAULT ++#define TARGET_DEFAULT (AVR32_FLAG_NO_INIT_GOT) +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config/host-linux.c gcc-4.0.2-atmel.0.99.2/gcc/config/host-linux.c +--- gcc-4.0.2/gcc/config/host-linux.c 2005-08-01 20:00:10.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config/host-linux.c 2006-03-23 13:33:12.000000000 +0100 +@@ -26,6 +26,9 @@ + #include "hosthooks.h" + #include "hosthooks-def.h" + ++#ifndef SSIZE_MAX ++#define SSIZE_MAX LONG_MAX ++#endif + + /* Linux has a feature called exec-shield-randomize that perturbs the + address of non-fixed mapped segments by a (relatively) small amount. +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/config.gcc gcc-4.0.2-atmel.0.99.2/gcc/config.gcc +--- gcc-4.0.2/gcc/config.gcc 2005-08-09 12:57:04.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/config.gcc 2006-02-08 17:33:56.000000000 +0100 +@@ -189,9 +189,6 @@ case ${target} in + | ip2k-*-elf \ + | ns32k-*-netbsdelf* \ + | ns32k-*-netbsd* \ +- | c4x-* \ +- | tic4x-* \ +- | hppa1.1-*-rtems* \ + ) + if test "x$enable_obsolete" != xyes; then + echo "*** Configuration ${target} is obsolete." >&2 +@@ -251,9 +248,6 @@ arm*-*-*) + cpu_type=arm + extra_headers="mmintrin.h" + ;; +-bfin*-*) +- cpu_type=bfin +- ;; + ep9312*-*-*) + cpu_type=arm + ;; +@@ -735,6 +729,24 @@ avr-*-*) + tm_file="avr/avr.h dbxelf.h" + use_fixproto=yes + ;; ++avr32*-*-linux*) ++ tm_file="dbxelf.h elfos.h linux.h avr32/linux-elf.h avr32/avr32.h " ++ tmake_file="t-linux avr32/t-avr32 avr32/t-elf" ++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ++ extra_modes=avr32/avr32-modes.def ++ gnu_ld=yes ++ ;; ++avr32*-*-uclinux*) ++ tm_file="dbxelf.h elfos.h linux.h avr32/linux-elf.h avr32/uclinux-elf.h avr32/avr32.h" ++ tmake_file="t-linux avr32/t-avr32 avr32/t-elf" ++ extra_modes=avr32/avr32-modes.def ++ gnu_ld=yes ++ ;; ++avr32-*-*) ++ tm_file="dbxelf.h elfos.h avr32/avr32.h avr32/avr32-elf.h" ++ tmake_file="avr32/t-avr32 avr32/t-elf" ++ extra_modes=avr32/avr32-modes.def ++ ;; + bfin*-elf*) + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" + tmake_file=bfin/t-bfin-elf +@@ -792,14 +804,10 @@ frv-*-*linux*) + linux.h frv/linux.h frv/frv-abi.h" + tmake_file="${tmake_file} frv/t-frv frv/t-linux" + ;; +-h8300-*-rtemscoff*) ++h8300-*-rtems*) + tmake_file="h8300/t-h8300 t-rtems h8300/t-rtems" + tm_file="h8300/h8300.h dbxcoff.h h8300/coff.h h8300/rtems.h rtems.h" + ;; +-h8300-*-rtems*) +- tmake_file="h8300/t-h8300 h8300/t-elf t-rtems h8300/t-rtems" +- tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h" +- ;; + h8300-*-elf*) + tmake_file="h8300/t-h8300 h8300/t-elf" + tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h" +@@ -1560,6 +1568,9 @@ pdp11-*-bsd) + pdp11-*-*) + use_fixproto=yes + ;; ++avr-*-*) ++ use_fixproto=yes ++ ;; + # port not yet contributed + #powerpc-*-openbsd*) + # tmake_file="${tmake_file} rs6000/t-fprules " +@@ -2471,6 +2482,21 @@ case "${target}" in + fi + ;; + ++ avr32*-*-*) ++ supported_defaults="cpu" ++ ++ case "$with_cpu" in ++ "" \ ++ | morgan | ap7000 ) ++ # OK ++ ;; ++ *) ++ echo "Unknown arch used in --with-arch=$with_arch" 1>&2 ++ exit 1 ++ ;; ++ esac ++ ;; ++ + fr*-*-*linux*) + supported_defaults=cpu + case "$with_cpu" in +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/cp/decl.c gcc-4.0.2-atmel.0.99.2/gcc/cp/decl.c +--- gcc-4.0.2/gcc/cp/decl.c 2005-09-09 02:51:56.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/cp/decl.c 2006-10-03 15:32:50.000000000 +0200 +@@ -6128,6 +6128,7 @@ compute_array_index_type (tree name, tre + name); + else + error ("size of array is not an integral constant-expression"); ++ size = integer_one_node; + } + else if (pedantic) + { +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/c-typeck.c gcc-4.0.2-atmel.0.99.2/gcc/c-typeck.c +--- gcc-4.0.2/gcc/c-typeck.c 2005-09-06 22:10:50.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/c-typeck.c 2006-10-03 15:32:50.000000000 +0200 +@@ -2742,8 +2742,13 @@ build_unary_op (enum tree_code code, tre + when we have proper support for integer constant expressions. */ + val = get_base_address (arg); + if (val && TREE_CODE (val) == INDIRECT_REF +- && integer_zerop (TREE_OPERAND (val, 0))) +- return fold_convert (argtype, fold_offsetof (arg)); ++ && TREE_CONSTANT (TREE_OPERAND (val, 0))) ++ { ++ tree op0 = fold_convert (argtype, fold_offsetof (arg)), op1; ++ ++ op1 = fold_convert (argtype, TREE_OPERAND (val, 0)); ++ return fold (build2 (PLUS_EXPR, argtype, op0, op1)); ++ } + + val = build1 (ADDR_EXPR, argtype, arg); + +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/doc/extend.texi gcc-4.0.2-atmel.0.99.2/gcc/doc/extend.texi +--- gcc-4.0.2/gcc/doc/extend.texi 2005-07-20 12:36:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/doc/extend.texi 2006-06-19 13:14:00.000000000 +0200 +@@ -1723,13 +1723,6 @@ on data in the eight bit data area. Not + You must use GAS and GLD from GNU binutils version 2.7 or later for + this attribute to work correctly. + +-@item exception_handler +-@cindex exception handler functions on the Blackfin processor +-Use this attribute on the Blackfin to indicate that the specified function +-is an exception handler. The compiler will generate function entry and +-exit sequences suitable for use in an exception handler when this +-attribute is present. +- + @item far + @cindex functions which handle memory bank switching + On 68HC11 and 68HC12 the @code{far} attribute causes the compiler to +@@ -1873,13 +1866,13 @@ this attribute to work correctly. + + @item interrupt + @cindex interrupt handler functions +-Use this attribute on the ARM, AVR, C4x, M32R/D and Xstormy16 ports to indicate ++Use this attribute on the ARM, AVR, AVR32, C4x, M32R/D and Xstormy16 ports to indicate + that the specified function is an interrupt handler. The compiler will + generate function entry and exit sequences suitable for use in an + interrupt handler when this attribute is present. + +-Note, interrupt handlers for the Blackfin, m68k, H8/300, H8/300H, H8S, and +-SH processors can be specified via the @code{interrupt_handler} attribute. ++Note, interrupt handlers for the m68k, H8/300, H8/300H, H8S, and SH processors ++can be specified via the @code{interrupt_handler} attribute. + + Note, on the AVR, interrupts will be enabled inside the function. + +@@ -1892,18 +1885,21 @@ void f () __attribute__ ((interrupt ("IR + + Permissible values for this parameter are: IRQ, FIQ, SWI, ABORT and UNDEF@. + +-@item interrupt_handler +-@cindex interrupt handler functions on the Blackfin, m68k, H8/300 and SH processors +-Use this attribute on the Blackfin, m68k, H8/300, H8/300H, H8S, and SH to +-indicate that the specified function is an interrupt handler. The compiler +-will generate function entry and exit sequences suitable for use in an +-interrupt handler when this attribute is present. ++Note, for the AVR32, you can specify which banking scheme is used for ++the interrupt mode this interrupt handler is used in like this: ++ ++@smallexample ++void f () __attribute__ ((interrupt ("FULL"))); ++@end smallexample + +-@item kspisusp +-@cindex User stack pointer in interrupts on the Blackfin +-When used together with @code{interrupt_handler}, @code{exception_handler} +-or @code{nmi_handler}, code will be generated to load the stack pointer +-from the USP register in the function prologue. ++Permissible values for this parameter are: FULL, HALF, NONE and UNDEF. ++ ++@item interrupt_handler ++@cindex interrupt handler functions on the m68k, H8/300 and SH processors ++Use this attribute on the m68k, H8/300, H8/300H, H8S, and SH to indicate that ++the specified function is an interrupt handler. The compiler will generate ++function entry and exit sequences suitable for use in an interrupt ++handler when this attribute is present. + + @item long_call/short_call + @cindex indirect calls on ARM +@@ -1983,19 +1979,6 @@ use the normal calling convention based + This attribute can be used to cancel the effect of the @option{-mlong-calls} + option. + +-@item nesting +-@cindex Allow nesting in an interrupt handler on the Blackfin processor. +-Use this attribute together with @code{interrupt_handler}, +-@code{exception_handler} or @code{nmi_handler} to indicate that the function +-entry code should enable nested interrupts or exceptions. +- +-@item nmi_handler +-@cindex NMI handler functions on the Blackfin processor +-Use this attribute on the Blackfin to indicate that the specified function +-is an NMI handler. The compiler will generate function entry and +-exit sequences suitable for use in an NMI handler when this +-attribute is present. +- + @item no_instrument_function + @cindex @code{no_instrument_function} function attribute + @opindex finstrument-functions +@@ -2140,8 +2123,8 @@ disabled with the linker or the loader i + problem.) + + @item saveall +-@cindex save all registers on the Blackfin, H8/300, H8/300H, and H8S +-Use this attribute on the Blackfin, H8/300, H8/300H, and H8S to indicate that ++@cindex save all registers on the H8/300, H8/300H, and H8S ++Use this attribute on the H8/300, H8/300H, and H8S to indicate that + all registers except the stack pointer should be saved in the prologue + regardless of whether they are used or not. + +@@ -3221,7 +3204,7 @@ struct my_unpacked_struct + int i; + @}; + +-struct __attribute__ ((__packed__)) my_packed_struct ++struct my_packed_struct __attribute__ ((__packed__)) + @{ + char c; + int i; +@@ -5449,6 +5432,7 @@ instructions, but allow the compiler to + @menu + * Alpha Built-in Functions:: + * ARM Built-in Functions:: ++* AVR32 Built-in Functions:: + * Blackfin Built-in Functions:: + * FR-V Built-in Functions:: + * X86 Built-in Functions:: +@@ -5686,6 +5670,54 @@ long long __builtin_arm_wxor (long long, + long long __builtin_arm_wzero () + @end smallexample + ++@node AVR32 Built-in Functions ++@subsection AVR32 Built-in Functions ++ ++ ++@smallexample ++ ++int __builtin_sats (int /*Rd*/,int /*sa*/, int /*bn*/) ++int __builtin_satu (int /*Rd*/,int /*sa*/, int /*bn*/) ++int __builtin_satrnds (int /*Rd*/,int /*sa*/, int /*bn*/) ++int __builtin_satrndu (int /*Rd*/,int /*sa*/, int /*bn*/) ++short __builtin_mulsathh_h (short, short) ++int __builtin_mulsathh_w (short, short) ++short __builtin_mulsatrndhh_h (short, short) ++int __builtin_mulsatrndwh_w (int, short) ++int __builtin_mulsatwh_w (int, short) ++int __builtin_macsathh_w (int, short, short) ++short __builtin_satadd_h (short, short) ++short __builtin_satsub_h (short, short) ++int __builtin_satadd_w (int, int) ++int __builtin_satsub_w (int, int) ++long long __builtin_mulwh_d(int, short) ++long long __builtin_mulnwh_d(int, short) ++long long __builtin_macwh_d(long long, int, short) ++long long __builtin_machh_d(long long, short, short) ++ ++void __builtin_musfr(int); ++int __builtin_mustr(void); ++int __builtin_mfsr(int /*Status Register Address*/) ++void __builtin_mtsr(int /*Status Register Address*/, int /*Value*/) ++int __builtin_mfdr(int /*Debug Register Address*/) ++void __builtin_mtdr(int /*Debug Register Address*/, int /*Value*/) ++void __builtin_cache(void * /*Address*/, int /*Cache Operation*/) ++void __builtin_sync(int /*Sync Operation*/) ++void __builtin_tlbr(void) ++void __builtin_tlbs(void) ++void __builtin_tlbw(void) ++void __builtin_breakpoint(void) ++int __builtin_xchg(void * /*Address*/, int /*Value*/ ) ++short __builtin_bswap_16(short) ++int __builtin_bswap_32(int) ++void __builtin_cop(int/*cpnr*/, int/*crd*/, int/*crx*/, int/*cry*/, int/*op*/) ++int __builtin_mvcr_w(int/*cpnr*/, int/*crs*/) ++void __builtin_mvrc_w(int/*cpnr*/, int/*crd*/, int/*value*/) ++long long __builtin_mvcr_d(int/*cpnr*/, int/*crs*/) ++void __builtin_mvrc_d(int/*cpnr*/, int/*crd*/, long long/*value*/) ++ ++@end smallexample ++ + @node Blackfin Built-in Functions + @subsection Blackfin Built-in Functions + +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/doc/invoke.texi gcc-4.0.2-atmel.0.99.2/gcc/doc/invoke.texi +--- gcc-4.0.2/gcc/doc/invoke.texi 2005-09-02 10:12:30.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/doc/invoke.texi 2006-02-08 17:33:56.000000000 +0100 +@@ -185,7 +185,7 @@ in the following sections. + -fno-default-inline -fvisibility-inlines-hidden @gol + -Wabi -Wctor-dtor-privacy @gol + -Wnon-virtual-dtor -Wreorder @gol +--Weffc++ -Wno-deprecated -Wstrict-null-sentinel @gol ++-Weffc++ -Wno-deprecated @gol + -Wno-non-template-friend -Wold-style-cast @gol + -Woverloaded-virtual -Wno-pmf-conversions @gol + -Wsign-promo} +@@ -542,6 +542,10 @@ Objective-C and Objective-C++ Dialects}. + -mauto-incdec -minmax -mlong-calls -mshort @gol + -msoft-reg-count=@var{count}} + ++@emph{AVR32 Options} ++@gccoptlist{-muse-rodata-section -mhard-float -msoft-float -mrelax @gol ++-muse-oscall -mforce-double-align -mno-init-got -mcpu=@var{cpu}} ++ + @emph{MCore Options} + @gccoptlist{-mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates @gol + -mno-relax-immediates -mwide-bitfields -mno-wide-bitfields @gol +@@ -1738,14 +1742,6 @@ to filter out those warnings. + @opindex Wno-deprecated + Do not warn about usage of deprecated features. @xref{Deprecated Features}. + +-@item -Wstrict-null-sentinel @r{(C++ only)} +-@opindex Wstrict-null-sentinel +-Warn also about the use of an uncasted @code{NULL} as sentinel. When +-compiling only with GCC this is a valid sentinel, as @code{NULL} is defined +-to @code{__null}. Although it is a null pointer constant not a null pointer, +-it is guaranteed to of the same size as a pointer. But this use is +-not portable across different compilers. +- + @item -Wno-non-template-friend @r{(C++ only)} + @opindex Wno-non-template-friend + Disable warnings when non-templatized friend functions are declared +@@ -2549,13 +2545,11 @@ get these warnings. + If you want to warn about code which uses the uninitialized value of the + variable in its own initializer, use the @option{-Winit-self} option. + +-These warnings occur for individual uninitialized or clobbered +-elements of structure, union or array variables as well as for +-variables which are uninitialized or clobbered as a whole. They do +-not occur for variables or elements declared @code{volatile}. Because +-these warnings depend on optimization, the exact variables or elements +-for which there are warnings will depend on the precise optimization +-options and version of GCC used. ++These warnings occur only for variables that are candidates for ++register allocation. Therefore, they do not occur for a variable that ++is declared @code{volatile}, or whose address is taken, or whose size ++is other than 1, 2, 4 or 8 bytes. Also, they do not occur for ++structures, unions or arrays, even when they are in registers. + + Note that there may be no warning about a variable that is used only + to compute a value that itself is never used, because such +@@ -5584,10 +5578,6 @@ If number of candidates in the set is sm + we always try to remove unnecessary ivs from the set during its + optimization when a new iv is added to the set. + +-@item scev-max-expr-size +-Bound on size of expressions used in the scalar evolutions analyzer. +-Large expressions slow the analyzer. +- + @item max-iterations-to-track + + The maximum number of iterations of a loop the brute force algorithm +@@ -6695,7 +6685,7 @@ that macro, which enables you to change + * ARC Options:: + * ARM Options:: + * AVR Options:: +-* Blackfin Options:: ++* AVR32 Options:: + * CRIS Options:: + * Darwin Options:: + * DEC Alpha Options:: +@@ -7147,81 +7137,55 @@ comply to the C standards, but it will p + size. + @end table + +-@node Blackfin Options +-@subsection Blackfin Options +-@cindex Blackfin Options ++@node AVR32 Options ++@subsection AVR32 Options ++@cindex AVR32 Options + +-@table @gcctabopt +-@item -momit-leaf-frame-pointer +-@opindex momit-leaf-frame-pointer +-Don't keep the frame pointer in a register for leaf functions. This +-avoids the instructions to save, set up and restore frame pointers and +-makes an extra register available in leaf functions. The option +-@option{-fomit-frame-pointer} removes the frame pointer for all functions +-which might make debugging harder. ++These options are defined for AVR32 implementations: + +-@item -mspecld-anomaly +-@opindex mspecld-anomaly +-When enabled, the compiler will ensure that the generated code does not +-contain speculative loads after jump instructions. This option is enabled +-by default. +- +-@item -mno-specld-anomaly +-@opindex mno-specld-anomaly +-Don't generate extra code to prevent speculative loads from occurring. +- +-@item -mcsync-anomaly +-@opindex mcsync-anomaly +-When enabled, the compiler will ensure that the generated code does not +-contain CSYNC or SSYNC instructions too soon after conditional branches. +-This option is enabled by default. +- +-@item -mno-csync-anomaly +-@opindex mno-csync-anomaly +-Don't generate extra code to prevent CSYNC or SSYNC instructions from +-occurring too soon after a conditional branch. +- +-@item -mlow-64k +-@opindex mlow-64k +-When enabled, the compiler is free to take advantage of the knowledge that +-the entire program fits into the low 64k of memory. +- +-@item -mno-low-64k +-@opindex mno-low-64k +-Assume that the program is arbitrarily large. This is the default. ++@table @gcctabopt ++@item -muse-rodata-section ++@opindex muse-rodata-section ++Use section @samp{.rodata} for read-only data instead of @samp{.text}. + +-@item -mid-shared-library +-@opindex mid-shared-library +-Generate code that supports shared libraries via the library ID method. +-This allows for execute in place and shared libraries in an environment +-without virtual memory management. This option implies @option{-fPIC}. ++@item -mhard-float ++@opindex mhard-float ++Use floating-point coprocessor instructions. + +-@item -mno-id-shared-library +-@opindex mno-id-shared-library +-Generate code that doesn't assume ID based shared libraries are being used. +-This is the default. ++@item -msoft-float ++@opindex msoft-float ++Use software floating-point library. + +-@item -mshared-library-id=n +-@opindex mshared-library-id +-Specified the identification number of the ID based shared library being +-compiled. Specifying a value of 0 will generate more compact code, specifying +-other values will force the allocation of that number to the current +-library but is no more space or time efficient than omitting this option. ++@item -mrelax ++@opindex mrelax ++Enable relaxing in linker. This means that when the address of symbols ++are known at link time, the linker can optimize @samp{icall} and @samp{mcall} ++instructions into a @samp{rcall} instruction if possible. Loading the address ++of a symbol can also be optimized. ++ ++@item -muse-oscall ++@opindex muse-oscall ++When using gcc as a frontend for linking this switch forces the use of ++@samp{fake} system calls in the newlib c-library. These fake system ++calls are handled by some AVR32 simulators which redirects these calls ++to the OS in which the simulator is running. This is practical for ++being able to perform file I/O when running programs in a simulator. ++ ++@item -mforce-double-align ++@opindex mforce-double-align ++Force double-word alignment for double-word memory accesses. ++ ++@item -mno-init-got ++@opindex mno-init-got ++Do not initialize the GOT register before using it when compiling PIC ++code. + +-@item -mlong-calls +-@itemx -mno-long-calls +-@opindex mlong-calls +-@opindex mno-long-calls +-Tells the compiler to perform function calls by first loading the +-address of the function into a register and then performing a subroutine +-call on this register. This switch is needed if the target function +-will lie outside of the 24 bit addressing range of the offset based +-version of subroutine call instruction. ++@item -mcpu=@var{cpu-type} ++@opindex mcpu ++Generate code for the specified cpu. Permissible names are: @samp{morgan}, ++@samp{ap7000} and @samp{default}. @samp{default} is a dummy cpu which ++allows all avr32 instructions. + +-This feature is not enabled by default. Specifying +-@option{-mno-long-calls} will restore the default behavior. Note these +-switches have no effect on how the compiler generates code to handle +-function calls via function pointers. + @end table + + @node CRIS Options +@@ -10853,6 +10817,7 @@ conventions that adheres to the March 19 + Application Binary Interface, PowerPC processor supplement. This is the + default unless you configured GCC using @samp{powerpc-*-eabiaix}. + ++ + @item -mcall-sysv-eabi + @opindex mcall-sysv-eabi + Specify both @option{-mcall-sysv} and @option{-meabi} options. +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/doc/md.texi gcc-4.0.2-atmel.0.99.2/gcc/doc/md.texi +--- gcc-4.0.2/gcc/doc/md.texi 2005-08-14 01:56:45.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/doc/md.texi 2006-07-13 09:53:31.000000000 +0200 +@@ -3,6 +3,7 @@ + @c This is part of the GCC manual. + @c For copying conditions, see the file gcc.texi. + ++ + @ifset INTERNALS + @node Machine Desc + @chapter Machine Descriptions +@@ -1683,6 +1684,59 @@ A memory reference suitable for iWMMXt l + A memory reference suitable for the ARMv4 ldrsb instruction. + @end table + ++@item AVR32 family---@file{avr32.h} ++@table @code ++@item f ++Floating-point registers (f0 to f15) ++ ++@item Ku@var{bits} ++Unsigned constant representable with @var{bits} number of bits (Must be ++two digits). I.e: An unsigned 8-bit constant is written as @samp{Ku08} ++ ++@item Ks@var{bits} ++Signed constant representable with @var{bits} number of bits (Must be ++two digits). I.e: A signed 12-bit constant is written as @samp{Ks12} ++ ++@item Is@var{bits} ++The negated range of a signed constant representable with @var{bits} ++number of bits. The same as @samp{Ks@var{bits}} with a negated range. ++This means that the constant must be in the range @math{-2^{bits-1}-1} to @math{2^{bits-1}} ++ ++@item G ++A single/double precision floating-point immediate or 64-bit integer ++immediate where the least and most significant words both can be ++loaded with a move instruction. That is the the integer form of the ++values in the least and most significant words both are in the range ++@math{-2^{20}} to @math{2^{20}-1}. ++ ++@item RKs@var{bits} ++A memory reference where the address consists of a base register ++plus a signed immediate displacement with range given by @samp{Ks@var{bits}} ++which has the same format as for the signed immediate integer constraint ++given above. ++ ++@item RKu@var{bits} ++A memory reference where the address consists of a base register ++plus an unsigned immediate displacement with range given by @samp{Ku@var{bits}} ++which has the same format as for the unsigned immediate integer constraint ++given above. ++ ++@item S ++A memory reference with an immediate or register offset ++ ++@item T ++A memory reference to a constant pool entry ++ ++@item W ++A valid operand for use in the @samp{lda.w} instruction macro when ++relaxing is enabled ++ ++@item Z ++A memory reference valid for coprocessor memory instructions ++ ++@end table ++ ++ + @item AVR family---@file{avr.h} + @table @code + @item l +@@ -2069,102 +2123,6 @@ range of 1 to 2047. + + @end table + +-@item Blackfin family---@file{bfin.h} +-@table @code +-@item a +-P register +- +-@item d +-D register +- +-@item z +-A call clobbered P register. +- +-@item D +-Even-numbered D register +- +-@item W +-Odd-numbered D register +- +-@item e +-Accumulator register. +- +-@item A +-Even-numbered accumulator register. +- +-@item B +-Odd-numbered accumulator register. +- +-@item b +-I register +- +-@item B +-B register +- +-@item f +-M register +- +-@item c +-Registers used for circular buffering, i.e. I, B, or L registers. +- +-@item C +-The CC register. +- +-@item x +-Any D, P, B, M, I or L register. +- +-@item y +-Additional registers typically used only in prologues and epilogues: RETS, +-RETN, RETI, RETX, RETE, ASTAT, SEQSTAT and USP. +- +-@item w +-Any register except accumulators or CC. +- +-@item Ksh +-Signed 16 bit integer (in the range -32768 to 32767) +- +-@item Kuh +-Unsigned 16 bit integer (in the range 0 to 65535) +- +-@item Ks7 +-Signed 7 bit integer (in the range -64 to 63) +- +-@item Ku7 +-Unsigned 7 bit integer (in the range 0 to 127) +- +-@item Ku5 +-Unsigned 5 bit integer (in the range 0 to 31) +- +-@item Ks4 +-Signed 4 bit integer (in the range -8 to 7) +- +-@item Ks3 +-Signed 3 bit integer (in the range -3 to 4) +- +-@item Ku3 +-Unsigned 3 bit integer (in the range 0 to 7) +- +-@item P@var{n} +-Constant @var{n}, where @var{n} is a single-digit constant in the range 0 to 4. +- +-@item M1 +-Constant 255. +- +-@item M2 +-Constant 65535. +- +-@item J +-An integer constant with exactly a single bit set. +- +-@item L +-An integer constant with all bits set except exactly one. +- +-@item H +- +-@item Q +-Any SYMBOL_REF. +-@end table +- + @item IP2K---@file{ip2k.h} + @table @code + @item a +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/expr.c gcc-4.0.2-atmel.0.99.2/gcc/expr.c +--- gcc-4.0.2/gcc/expr.c 2005-09-10 03:03:28.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/expr.c 2006-10-10 12:40:42.000000000 +0200 +@@ -3314,16 +3314,17 @@ emit_single_push_insn (enum machine_mode + } + else + { ++ emit_move_insn (stack_pointer_rtx, ++ expand_binop (Pmode, + #ifdef STACK_GROWS_DOWNWARD +- /* ??? This seems wrong if STACK_PUSH_CODE == POST_DEC. */ +- dest_addr = gen_rtx_PLUS (Pmode, stack_pointer_rtx, +- GEN_INT (-(HOST_WIDE_INT) rounded_size)); ++ sub_optab, + #else +- /* ??? This seems wrong if STACK_PUSH_CODE == POST_INC. */ +- dest_addr = gen_rtx_PLUS (Pmode, stack_pointer_rtx, +- GEN_INT (rounded_size)); ++ add_optab, + #endif +- dest_addr = gen_rtx_PRE_MODIFY (Pmode, stack_pointer_rtx, dest_addr); ++ stack_pointer_rtx, ++ GEN_INT (rounded_size), ++ NULL_RTX, 0, OPTAB_LIB_WIDEN)); ++ dest_addr = stack_pointer_rtx; + } + + dest = gen_rtx_MEM (mode, dest_addr); +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/genemit.c gcc-4.0.2-atmel.0.99.2/gcc/genemit.c +--- gcc-4.0.2/gcc/genemit.c 2004-09-09 15:22:33.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/genemit.c 2006-03-23 13:26:49.000000000 +0100 +@@ -122,6 +122,24 @@ max_operand_vec (rtx insn, int arg) + } + + static void ++gen_vararg_prologue(int operands) ++{ ++ int i; ++ ++ if (operands > 1) ++ { ++ for (i = 1; i < operands; i++) ++ printf(" rtx operand%d ATTRIBUTE_UNUSED;\n", i); ++ ++ printf(" va_list args;\n\n"); ++ printf(" va_start(args, operand0);\n"); ++ for (i = 1; i < operands; i++) ++ printf(" operand%d = va_arg(args, rtx);\n", i); ++ printf(" va_end(args);\n\n"); ++ } ++} ++ ++static void + print_code (RTX_CODE code) + { + const char *p1; +@@ -406,18 +424,16 @@ gen_insn (rtx insn, int lineno) + fatal ("match_dup operand number has no match_operand"); + + /* Output the function name and argument declarations. */ +- printf ("rtx\ngen_%s (", XSTR (insn, 0)); ++ printf ("rtx\ngen_%s ", XSTR (insn, 0)); ++ + if (operands) +- for (i = 0; i < operands; i++) +- if (i) +- printf (",\n\trtx operand%d ATTRIBUTE_UNUSED", i); ++ printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n"); + else +- printf ("rtx operand%d ATTRIBUTE_UNUSED", i); +- else +- printf ("void"); +- printf (")\n"); ++ printf("(void)\n"); + printf ("{\n"); + ++ gen_vararg_prologue(operands); ++ + /* Output code to construct and return the rtl for the instruction body. */ + + if (XVECLEN (insn, 1) == 1) +@@ -457,16 +473,12 @@ gen_expand (rtx expand) + operands = max_operand_vec (expand, 1); + + /* Output the function name and argument declarations. */ +- printf ("rtx\ngen_%s (", XSTR (expand, 0)); ++ printf ("rtx\ngen_%s ", XSTR (expand, 0)); + if (operands) +- for (i = 0; i < operands; i++) +- if (i) +- printf (",\n\trtx operand%d", i); +- else +- printf ("rtx operand%d", i); ++ printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n"); + else +- printf ("void"); +- printf (")\n"); ++ printf("(void)\n"); ++ + printf ("{\n"); + + /* If we don't have any C code to write, only one insn is being written, +@@ -476,6 +488,8 @@ gen_expand (rtx expand) + && operands > max_dup_opno + && XVECLEN (expand, 1) == 1) + { ++ gen_vararg_prologue(operands); ++ + printf (" return "); + gen_exp (XVECEXP (expand, 1, 0), DEFINE_EXPAND, NULL); + printf (";\n}\n\n"); +@@ -489,6 +503,7 @@ gen_expand (rtx expand) + for (; i <= max_scratch_opno; i++) + printf (" rtx operand%d ATTRIBUTE_UNUSED;\n", i); + printf (" rtx _val = 0;\n"); ++ gen_vararg_prologue(operands); + printf (" start_sequence ();\n"); + + /* The fourth operand of DEFINE_EXPAND is some code to be executed +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/genflags.c gcc-4.0.2-atmel.0.99.2/gcc/genflags.c +--- gcc-4.0.2/gcc/genflags.c 2004-09-09 15:22:33.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/genflags.c 2006-10-10 12:40:42.000000000 +0200 +@@ -128,7 +128,6 @@ static void + gen_proto (rtx insn) + { + int num = num_operands (insn); +- int i; + const char *name = XSTR (insn, 0); + int truth = maybe_eval_c_test (XSTR (insn, 2)); + +@@ -159,12 +158,7 @@ gen_proto (rtx insn) + if (num == 0) + fputs ("void", stdout); + else +- { +- for (i = 1; i < num; i++) +- fputs ("rtx, ", stdout); +- +- fputs ("rtx", stdout); +- } ++ fputs("rtx, ...", stdout); + + puts (");"); + +@@ -174,12 +168,7 @@ gen_proto (rtx insn) + { + printf ("static inline rtx\ngen_%s", name); + if (num > 0) +- { +- putchar ('('); +- for (i = 0; i < num-1; i++) +- printf ("rtx ARG_UNUSED (%c), ", 'a' + i); +- printf ("rtx ARG_UNUSED (%c))\n", 'a' + i); +- } ++ puts("(rtx ARG_UNUSED(a), ...)"); + else + puts ("(void)"); + puts ("{\n return 0;\n}"); +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/genoutput.c gcc-4.0.2-atmel.0.99.2/gcc/genoutput.c +--- gcc-4.0.2/gcc/genoutput.c 2004-09-09 15:22:34.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/genoutput.c 2006-03-23 13:26:49.000000000 +0100 +@@ -383,7 +383,7 @@ output_insn_data (void) + } + + if (d->name && d->name[0] != '*') +- printf (" (insn_gen_fn) gen_%s,\n", d->name); ++ printf (" gen_%s,\n", d->name); + else + printf (" 0,\n"); + +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/longlong.h gcc-4.0.2-atmel.0.99.2/gcc/longlong.h +--- gcc-4.0.2/gcc/longlong.h 2004-06-15 12:40:44.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/longlong.h 2005-06-07 14:59:22.000000000 +0200 +@@ -227,6 +227,39 @@ UDItype __umulsidi3 (USItype, USItype); + #define UDIV_TIME 100 + #endif /* __arm__ */ + ++#if defined (__avr32__) && W_TYPE_SIZE == 32 ++#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ ++ __asm__ ("add\t%1, %4, %5\n\tadc\t%0, %2, %3" \ ++ : "=r" ((USItype) (sh)), \ ++ "=&r" ((USItype) (sl)) \ ++ : "r" ((USItype) (ah)), \ ++ "r" ((USItype) (bh)), \ ++ "r" ((USItype) (al)), \ ++ "r" ((USItype) (bl)) __CLOBBER_CC) ++#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ ++ __asm__ ("sub\t%1, %4, %5\n\tsbc\t%0, %2, %3" \ ++ : "=r" ((USItype) (sh)), \ ++ "=&r" ((USItype) (sl)) \ ++ : "r" ((USItype) (ah)), \ ++ "r" ((USItype) (bh)), \ ++ "r" ((USItype) (al)), \ ++ "r" ((USItype) (bl)) __CLOBBER_CC) ++ ++#define __umulsidi3(a,b) ((UDItype)(a) * (UDItype)(b)) ++ ++#define umul_ppmm(w1, w0, u, v) \ ++{ \ ++ DWunion __w; \ ++ __w.ll = __umulsidi3 (u, v); \ ++ w1 = __w.s.high; \ ++ w0 = __w.s.low; \ ++} ++ ++#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) ++#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctz (X)) ++#define COUNT_LEADING_ZEROS_0 32 ++#endif ++ + #if defined (__hppa) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0" \ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/optabs.h gcc-4.0.2-atmel.0.99.2/gcc/optabs.h +--- gcc-4.0.2/gcc/optabs.h 2005-02-12 12:34:21.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/optabs.h 2006-10-10 12:40:42.000000000 +0200 +@@ -389,7 +389,7 @@ extern enum insn_code reload_out_optab[N + extern GTY(()) optab code_to_optab[NUM_RTX_CODE + 1]; + + +-typedef rtx (*rtxfun) (rtx); ++typedef rtx (*rtxfun) (rtx, ...); + + /* Indexed by the rtx-code for a conditional (e.g. EQ, LT,...) + gives the gen_function to make a branch to test that condition. */ +Binary files gcc-4.0.2/gcc/po/be.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/be.gmo differ +Binary files gcc-4.0.2/gcc/po/ca.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/ca.gmo differ +Binary files gcc-4.0.2/gcc/po/da.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/da.gmo differ +Binary files gcc-4.0.2/gcc/po/de.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/de.gmo differ +Binary files gcc-4.0.2/gcc/po/el.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/el.gmo differ +Binary files gcc-4.0.2/gcc/po/es.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/es.gmo differ +Binary files gcc-4.0.2/gcc/po/fr.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/fr.gmo differ +Binary files gcc-4.0.2/gcc/po/ja.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/ja.gmo differ +Binary files gcc-4.0.2/gcc/po/nl.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/nl.gmo differ +Binary files gcc-4.0.2/gcc/po/sv.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/sv.gmo differ +Binary files gcc-4.0.2/gcc/po/tr.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/tr.gmo differ +Binary files gcc-4.0.2/gcc/po/zh_CN.gmo and gcc-4.0.2-atmel.0.99.2/gcc/po/zh_CN.gmo differ +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c gcc-4.0.2-atmel.0.99.2/gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c +--- gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c 2005-02-19 20:48:02.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/gcc/testsuite/gcc.dg/cpp/mac-eol-at-eof.c 2005-06-07 14:06:28.000000000 +0200 +@@ -1 +1,3 @@ +-/* Test no newline at eof warning when Mac line ending is used*/
/* { dg-do compile } */
int main() { return 0; }
+\ No newline at end of file ++/* Test no newline at eof warning when Mac line ending is used*/ ++/* { dg-do compile } */ ++int main() { return 0; } +diff -Nrup --ignore-space-change gcc-4.0.2/gcc/tree-ssa-operands.c gcc-4.0.2-atmel.0.99.2/gcc/tree-ssa-operands.c +--- gcc-4.0.2/gcc/tree-ssa-operands.c 2005-06-24 15:23:42.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/gcc/tree-ssa-operands.c 2005-07-15 16:06:29.000000000 +0200 +@@ -1135,7 +1135,7 @@ get_expr_operands (tree stmt, tree *expr + + if (code == COMPONENT_REF) + { +- if (s_ann && TREE_THIS_VOLATILE (TREE_OPERAND (expr, 1))) ++ if (TREE_THIS_VOLATILE (TREE_OPERAND (expr, 1))) + s_ann->has_volatile_ops = true; + get_expr_operands (stmt, &TREE_OPERAND (expr, 2), opf_none); + } +diff -Nrup --ignore-space-change gcc-4.0.2/libcpp/po/sv.po gcc-4.0.2-atmel.0.99.2/libcpp/po/sv.po +--- gcc-4.0.2/libcpp/po/sv.po 2005-09-04 14:30:22.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libcpp/po/sv.po 2006-01-20 10:54:31.000000000 +0100 +@@ -2,7 +2,7 @@ + # Copyright 2000, 2005 Free Software Foundation, Inc. + # Dennis Bjrklund <db@zigo.dhs.org>, 2000, 2001, 2002. + # Gran Uddeborg <goeran@uddeborg.se>, 2005. +-# $Revision: 1.2 $ ++# $Revision: 3550 $ + # + msgid "" + msgstr "" +Binary files gcc-4.0.2/libcpp/po/tr.gmo and gcc-4.0.2-atmel.0.99.2/libcpp/po/tr.gmo differ +Binary files gcc-4.0.2/libcpp/po/vi.gmo and gcc-4.0.2-atmel.0.99.2/libcpp/po/vi.gmo differ +diff -Nrup --ignore-space-change gcc-4.0.2/libffi/src/frv/eabi.S gcc-4.0.2-atmel.0.99.2/libffi/src/frv/eabi.S +--- gcc-4.0.2/libffi/src/frv/eabi.S 2004-08-30 17:43:03.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libffi/src/frv/eabi.S 2005-07-15 16:26:03.000000000 +0200 +@@ -3,7 +3,7 @@ + + FR-V Assembly glue. + +- $Id: sysv.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $ ++ $Id: eabi.S 3484 2005-07-15 14:26:03Z rpedersen $ + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/AttributeList.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/AttributeList.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/AttributeList.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/AttributeList.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX Attribute List Interface. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: AttributeList.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: AttributeList.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/Attributes.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/Attributes.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/Attributes.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/Attributes.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the public domain. +-// $Id: Attributes.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: Attributes.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ContentHandler.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ContentHandler.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ContentHandler.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ContentHandler.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the public domain. +-// $Id: ContentHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: ContentHandler.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/DocumentHandler.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/DocumentHandler.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/DocumentHandler.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/DocumentHandler.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX document handler. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: DocumentHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: DocumentHandler.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/DTDHandler.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/DTDHandler.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/DTDHandler.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/DTDHandler.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX DTD handler. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: DTDHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: DTDHandler.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/EntityResolver.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/EntityResolver.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/EntityResolver.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/EntityResolver.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX entity resolver. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: EntityResolver.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: EntityResolver.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ErrorHandler.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ErrorHandler.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ErrorHandler.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ErrorHandler.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX error handler. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: ErrorHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: ErrorHandler.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Attributes2Impl.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Attributes2Impl.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Attributes2Impl.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Attributes2Impl.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // Attributes2Impl.java - extended AttributesImpl + // http://www.saxproject.org + // Public Domain: no warranty. +-// $Id: Attributes2Impl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: Attributes2Impl.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Attributes2.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Attributes2.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Attributes2.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Attributes2.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // Attributes2.java - extended Attributes + // http://www.saxproject.org + // Public Domain: no warranty. +-// $Id: Attributes2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: Attributes2.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/DeclHandler.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/DeclHandler.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/DeclHandler.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/DeclHandler.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // DeclHandler.java - Optional handler for DTD declaration events. + // http://www.saxproject.org + // Public Domain: no warranty. +-// $Id: DeclHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: DeclHandler.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/DefaultHandler2.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/DefaultHandler2.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/DefaultHandler2.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/DefaultHandler2.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // DefaultHandler2.java - extended DefaultHandler + // http://www.saxproject.org + // Public Domain: no warranty. +-// $Id: DefaultHandler2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: DefaultHandler2.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/EntityResolver2.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/EntityResolver2.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/EntityResolver2.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/EntityResolver2.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // EntityResolver2.java - Extended SAX entity resolver. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: EntityResolver2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: EntityResolver2.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/LexicalHandler.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/LexicalHandler.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/LexicalHandler.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/LexicalHandler.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // LexicalHandler.java - optional handler for lexical parse events. + // http://www.saxproject.org + // Public Domain: no warranty. +-// $Id: LexicalHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: LexicalHandler.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Locator2Impl.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Locator2Impl.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Locator2Impl.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Locator2Impl.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // Locator2Impl.java - extended LocatorImpl + // http://www.saxproject.org + // Public Domain: no warranty. +-// $Id: Locator2Impl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: Locator2Impl.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Locator2.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Locator2.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/Locator2.java 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/Locator2.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // Locator2.java - extended Locator + // http://www.saxproject.org + // Public Domain: no warranty. +-// $Id: Locator2.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: Locator2.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.ext; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/package.html gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/package.html +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/ext/package.html 2005-02-02 01:41:52.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/ext/package.html 2005-07-15 16:26:03.000000000 +0200 +@@ -1,5 +1,5 @@ + <HTML><HEAD> +-<!-- $Id: package.html,v 1.1 2004/12/23 22:38:42 mark Exp $ --> ++<!-- $Id: package.html 3484 2005-07-15 14:26:03Z rpedersen $ --> + </HEAD><BODY> + + <p> +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/HandlerBase.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/HandlerBase.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/HandlerBase.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/HandlerBase.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX default handler base class. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: HandlerBase.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: HandlerBase.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/AttributeListImpl.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/AttributeListImpl.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/AttributeListImpl.java 2005-02-02 01:41:53.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/AttributeListImpl.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX default implementation for AttributeList. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: AttributeListImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: AttributeListImpl.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/AttributesImpl.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/AttributesImpl.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/AttributesImpl.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/AttributesImpl.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the public domain. +-// $Id: AttributesImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: AttributesImpl.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/DefaultHandler.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/DefaultHandler.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/DefaultHandler.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/DefaultHandler.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the public domain. +-// $Id: DefaultHandler.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: DefaultHandler.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/LocatorImpl.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/LocatorImpl.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/LocatorImpl.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/LocatorImpl.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX default implementation for Locator. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: LocatorImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: LocatorImpl.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java 2005-04-06 23:38:28.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/NamespaceSupport.java 2005-06-07 14:06:28.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // This class is in the Public Domain. NO WARRANTY! +-// $Id: NamespaceSupport.java,v 1.2 2005/03/24 00:04:07 tromey Exp $ ++// $Id: NamespaceSupport.java 3462 2005-06-07 12:06:28Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/NewInstance.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/NewInstance.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/NewInstance.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/NewInstance.java 2005-07-15 16:26:03.000000000 +0200 +@@ -3,7 +3,7 @@ + // Written by Edwin Goei, edwingo@apache.org + // and by David Brownell, dbrownell@users.sourceforge.net + // NO WARRANTY! This class is in the Public Domain. +-// $Id: NewInstance.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: NewInstance.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/package.html gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/package.html +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/package.html 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/package.html 2005-07-15 16:26:03.000000000 +0200 +@@ -1,5 +1,5 @@ + <HTML><HEAD> +-<!-- $Id: package.html,v 1.1 2004/12/23 22:38:42 mark Exp $ --> ++<!-- $Id: package.html 3484 2005-07-15 14:26:03Z rpedersen $ --> + </HEAD><BODY> + + <p>This package contains "helper" classes, including +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/ParserAdapter.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/ParserAdapter.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/ParserAdapter.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/ParserAdapter.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the public domain. +-// $Id: ParserAdapter.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: ParserAdapter.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/ParserFactory.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/ParserFactory.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/ParserFactory.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/ParserFactory.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX parser factory. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: ParserFactory.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: ParserFactory.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/XMLFilterImpl.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/XMLFilterImpl.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/XMLFilterImpl.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/XMLFilterImpl.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the Public Domain. +-// $Id: XMLFilterImpl.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: XMLFilterImpl.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the public domain. +-// $Id: XMLReaderAdapter.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: XMLReaderAdapter.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderFactory.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderFactory.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderFactory.java 2005-02-02 01:41:54.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/helpers/XMLReaderFactory.java 2005-07-15 16:26:03.000000000 +0200 +@@ -3,7 +3,7 @@ + // Written by David Megginson + // and by David Brownell + // NO WARRANTY! This class is in the Public Domain. +-// $Id: XMLReaderFactory.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: XMLReaderFactory.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax.helpers; + import java.io.BufferedReader; +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/InputSource.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/InputSource.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/InputSource.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/InputSource.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX input source. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: InputSource.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: InputSource.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/Locator.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/Locator.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/Locator.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/Locator.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX locator interface for document events. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: Locator.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: Locator.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/package.html gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/package.html +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/package.html 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/package.html 2005-07-15 16:26:03.000000000 +0200 +@@ -1,5 +1,5 @@ + <html><head> +-<!-- $Id: package.html,v 1.1 2004/12/23 22:38:42 mark Exp $ --> ++<!-- $Id: package.html 3484 2005-07-15 14:26:03Z rpedersen $ --> + </head><body> + + <p> This package provides the core SAX APIs. +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/Parser.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/Parser.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/Parser.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/Parser.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX parser interface. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: Parser.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: Parser.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXException.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXException.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXException.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXException.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX exception class. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: SAXException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: SAXException.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXNotRecognizedException.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXNotRecognizedException.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXNotRecognizedException.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXNotRecognizedException.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the Public Domain. +-// $Id: SAXNotRecognizedException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: SAXNotRecognizedException.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXNotSupportedException.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXNotSupportedException.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXNotSupportedException.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXNotSupportedException.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the Public Domain. +-// $Id: SAXNotSupportedException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: SAXNotSupportedException.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXParseException.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXParseException.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/SAXParseException.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/SAXParseException.java 2005-07-15 16:26:03.000000000 +0200 +@@ -1,7 +1,7 @@ + // SAX exception class. + // http://www.saxproject.org + // No warranty; no copyright -- use this as you will. +-// $Id: SAXParseException.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: SAXParseException.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/XMLFilter.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/XMLFilter.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/XMLFilter.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/XMLFilter.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the Public Domain. +-// $Id: XMLFilter.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: XMLFilter.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +diff -Nrup --ignore-space-change gcc-4.0.2/libjava/external/sax/org/xml/sax/XMLReader.java gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/XMLReader.java +--- gcc-4.0.2/libjava/external/sax/org/xml/sax/XMLReader.java 2005-02-02 01:41:51.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libjava/external/sax/org/xml/sax/XMLReader.java 2005-07-15 16:26:03.000000000 +0200 +@@ -2,7 +2,7 @@ + // http://www.saxproject.org + // Written by David Megginson + // NO WARRANTY! This class is in the Public Domain. +-// $Id: XMLReader.java,v 1.1 2004/12/23 22:38:42 mark Exp $ ++// $Id: XMLReader.java 3484 2005-07-15 14:26:03Z rpedersen $ + + package org.xml.sax; + +Binary files gcc-4.0.2/libjava/gnu/java/awt/doc-files/BitwiseXORComposite-1.png and gcc-4.0.2-atmel.0.99.2/libjava/gnu/java/awt/doc-files/BitwiseXORComposite-1.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/Area-1.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/Area-1.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/CubicCurve2D-1.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/CubicCurve2D-1.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/CubicCurve2D-2.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/CubicCurve2D-2.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/CubicCurve2D-3.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/CubicCurve2D-3.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/CubicCurve2D-4.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/CubicCurve2D-4.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/CubicCurve2D-5.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/CubicCurve2D-5.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/Ellipse-1.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/Ellipse-1.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/GeneralPath-1.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/GeneralPath-1.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/QuadCurve2D-1.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/QuadCurve2D-1.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/QuadCurve2D-2.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/QuadCurve2D-2.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/QuadCurve2D-3.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/QuadCurve2D-3.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/QuadCurve2D-4.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/QuadCurve2D-4.png differ +Binary files gcc-4.0.2/libjava/java/awt/geom/doc-files/QuadCurve2D-5.png and gcc-4.0.2-atmel.0.99.2/libjava/java/awt/geom/doc-files/QuadCurve2D-5.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/BevelBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/BevelBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/BevelBorder-2.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/BevelBorder-2.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/BevelBorder-3.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/BevelBorder-3.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/EmptyBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/EmptyBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/EtchedBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/EtchedBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/EtchedBorder-2.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/EtchedBorder-2.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/LineBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/LineBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/MatteBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/MatteBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/MatteBorder-2.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/MatteBorder-2.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/MatteBorder-3.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/MatteBorder-3.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/MatteBorder-4.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/MatteBorder-4.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/MatteBorder-5.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/MatteBorder-5.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/MatteBorder-6.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/MatteBorder-6.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/SoftBevelBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/SoftBevelBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/SoftBevelBorder-2.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/SoftBevelBorder-2.png differ +Binary files gcc-4.0.2/libjava/javax/swing/border/doc-files/SoftBevelBorder-3.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/border/doc-files/SoftBevelBorder-3.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders-2.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders-2.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.ButtonBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.ButtonBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.FieldBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.FieldBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.MarginBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.MarginBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.MenuBarBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.MenuBarBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.RadioButtonBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.RadioButtonBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.SplitPaneBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.SplitPaneBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.SplitPaneBorder-2.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.SplitPaneBorder-2.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.SplitPaneDividerBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.SplitPaneDividerBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.ToggleButtonBorder-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicBorders.ToggleButtonBorder-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-2.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-2.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-3.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-3.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-4.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-4.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-5.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-5.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-6.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-6.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-7.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/basic/doc-files/BasicGraphicsUtils-7.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/doc-files/ComponentUI-1.dia and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/doc-files/ComponentUI-1.dia differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/doc-files/ComponentUI-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/doc-files/ComponentUI-1.png differ +Binary files gcc-4.0.2/libjava/javax/swing/plaf/doc-files/TreeUI-1.png and gcc-4.0.2-atmel.0.99.2/libjava/javax/swing/plaf/doc-files/TreeUI-1.png differ +Binary files gcc-4.0.2/libjava/testsuite/libjava.jar/simple.jar and gcc-4.0.2-atmel.0.99.2/libjava/testsuite/libjava.jar/simple.jar differ +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/acinclude.m4 gcc-4.0.2-atmel.0.99.2/libstdc++-v3/acinclude.m4 +--- gcc-4.0.2/libstdc++-v3/acinclude.m4 2005-06-23 11:23:59.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/acinclude.m4 2006-03-28 10:54:09.000000000 +0200 +@@ -139,6 +139,15 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [ + #enable_symvers=no + #enable_hosted_libstdcxx=yes + ++ # Check for uClibc since Linux platforms use different configuration ++ # directories depending on the C library in use. ++ AC_EGREP_CPP([_using_uclibc], [ ++ #include <stdio.h> ++ #if __UCLIBC__ ++ _using_uclibc ++ #endif ++ ], uclibc=yes, uclibc=no) ++ + # Find platform-specific directories containing configuration info. + # Also possibly modify flags used elsewhere, as needed by the platform. + GLIBCXX_CHECK_HOST +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/configure.host gcc-4.0.2-atmel.0.99.2/libstdc++-v3/configure.host +--- gcc-4.0.2/libstdc++-v3/configure.host 2005-06-17 02:22:20.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/configure.host 2006-03-28 10:54:09.000000000 +0200 +@@ -193,8 +193,15 @@ case "${host_os}" in + freebsd*) + os_include_dir="os/bsd/freebsd" + ;; ++ linux-uclibc*) ++ os_include_dir="os/uclibc-linux" ++ ;; + gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) ++ if [ "$uclibc" = "yes" ]; then ++ os_include_dir="os/uclibc" ++ else + os_include_dir="os/gnu-linux" ++ fi + ;; + hpux*) + os_include_dir="os/hpux" +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/crossconfig.m4 gcc-4.0.2-atmel.0.99.2/libstdc++-v3/crossconfig.m4 +--- gcc-4.0.2/libstdc++-v3/crossconfig.m4 2005-02-01 07:56:19.000000000 +0100 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/crossconfig.m4 2006-03-28 10:54:09.000000000 +0200 +@@ -148,9 +148,13 @@ case "${host}" in + fp.h float.h endian.h inttypes.h locale.h float.h stdint.h]) + SECTION_FLAGS='-ffunction-sections -fdata-sections' + AC_SUBST(SECTION_FLAGS) ++ GLIBCXX_CHECK_COMPILER_FEATURES + GLIBCXX_CHECK_LINKER_FEATURES ++ GLIBCXX_CHECK_MATH_SUPPORT ++ GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT + GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT +- GLIBCXX_CHECK_WCHAR_T_SUPPORT ++ GLIBCXX_CHECK_ICONV_SUPPORT ++ GLIBCXX_CHECK_STDLIB_SUPPORT + + # For LFS. + AC_DEFINE(HAVE_INT64_T) +Binary files gcc-4.0.2/libstdc++-v3/docs/html/17_intro/confdeps.png and gcc-4.0.2-atmel.0.99.2/libstdc++-v3/docs/html/17_intro/confdeps.png differ +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/include/Makefile.in gcc-4.0.2-atmel.0.99.2/libstdc++-v3/include/Makefile.in +--- gcc-4.0.2/libstdc++-v3/include/Makefile.in 2005-06-22 22:39:09.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/include/Makefile.in 2006-03-28 10:54:09.000000000 +0200 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.3 from Makefile.am. ++# Makefile.in generated by automake 1.9.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004 Free Software Foundation, Inc. ++# 2003, 2004, 2005 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -36,6 +36,7 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ ++LIBOBJDIR = + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/fragment.am + subdir = include +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/libmath/Makefile.in gcc-4.0.2-atmel.0.99.2/libstdc++-v3/libmath/Makefile.in +--- gcc-4.0.2/libstdc++-v3/libmath/Makefile.in 2005-06-22 22:39:18.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/libmath/Makefile.in 2006-03-28 10:54:09.000000000 +0200 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.3 from Makefile.am. ++# Makefile.in generated by automake 1.9.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004 Free Software Foundation, Inc. ++# 2003, 2004, 2005 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -14,8 +14,6 @@ + + @SET_MAKE@ + +-SOURCES = $(libmath_la_SOURCES) +- + srcdir = @srcdir@ + top_srcdir = @top_srcdir@ + VPATH = @srcdir@ +@@ -39,6 +37,7 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ ++LIBOBJDIR = + subdir = libmath + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/libsupc++/Makefile.in gcc-4.0.2-atmel.0.99.2/libstdc++-v3/libsupc++/Makefile.in +--- gcc-4.0.2/libstdc++-v3/libsupc++/Makefile.in 2005-06-22 22:39:21.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/libsupc++/Makefile.in 2006-03-28 10:54:09.000000000 +0200 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.3 from Makefile.am. ++# Makefile.in generated by automake 1.9.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004 Free Software Foundation, Inc. ++# 2003, 2004, 2005 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -15,8 +15,6 @@ + @SET_MAKE@ + + +-SOURCES = $(libsupc___la_SOURCES) $(libsupc__convenience_la_SOURCES) +- + srcdir = @srcdir@ + top_srcdir = @top_srcdir@ + VPATH = @srcdir@ +@@ -40,6 +38,7 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ ++LIBOBJDIR = + DIST_COMMON = $(glibcxxinstall_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/fragment.am + subdir = libsupc++ +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/Makefile.in gcc-4.0.2-atmel.0.99.2/libstdc++-v3/Makefile.in +--- gcc-4.0.2/libstdc++-v3/Makefile.in 2005-06-22 22:37:12.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/Makefile.in 2006-03-28 10:54:09.000000000 +0200 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.3 from Makefile.am. ++# Makefile.in generated by automake 1.9.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004 Free Software Foundation, Inc. ++# 2003, 2004, 2005 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -36,6 +36,7 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ ++LIBOBJDIR = + DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \ + $(srcdir)/../config.sub $(srcdir)/../install-sh \ + $(srcdir)/../ltmain.sh $(srcdir)/../missing \ +@@ -408,7 +409,13 @@ uninstall-info-am: + # (which will cause the Makefiles to be regenerated when you run `make'); + # (2) otherwise, pass the desired values on the `make' command line. + $(RECURSIVE_TARGETS): +- @set fnord $$MAKEFLAGS; amf=$$2; \ ++ @failcom='exit 1'; \ ++ for f in x $$MAKEFLAGS; do \ ++ case $$f in \ ++ *=* | --[!k]*);; \ ++ *k*) failcom='fail=yes';; \ ++ esac; \ ++ done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ +@@ -420,7 +427,7 @@ $(RECURSIVE_TARGETS): + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ +- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ +@@ -428,7 +435,13 @@ $(RECURSIVE_TARGETS): + + mostlyclean-recursive clean-recursive distclean-recursive \ + maintainer-clean-recursive: +- @set fnord $$MAKEFLAGS; amf=$$2; \ ++ @failcom='exit 1'; \ ++ for f in x $$MAKEFLAGS; do \ ++ case $$f in \ ++ *=* | --[!k]*);; \ ++ *k*) failcom='fail=yes';; \ ++ esac; \ ++ done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ +@@ -449,7 +462,7 @@ maintainer-clean-recursive: + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ +- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ ++ || eval $$failcom; \ + done && test -z "$$fail" + tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/po/Makefile.in gcc-4.0.2-atmel.0.99.2/libstdc++-v3/po/Makefile.in +--- gcc-4.0.2/libstdc++-v3/po/Makefile.in 2005-06-22 22:39:24.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/po/Makefile.in 2006-03-28 10:54:09.000000000 +0200 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.3 from Makefile.am. ++# Makefile.in generated by automake 1.9.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004 Free Software Foundation, Inc. ++# 2003, 2004, 2005 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -36,6 +36,7 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ ++LIBOBJDIR = + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/fragment.am + subdir = po +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/src/Makefile.in gcc-4.0.2-atmel.0.99.2/libstdc++-v3/src/Makefile.in +--- gcc-4.0.2/libstdc++-v3/src/Makefile.in 2005-06-22 22:39:26.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/src/Makefile.in 2006-03-28 10:54:09.000000000 +0200 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.3 from Makefile.am. ++# Makefile.in generated by automake 1.9.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004 Free Software Foundation, Inc. ++# 2003, 2004, 2005 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -14,8 +14,6 @@ + + @SET_MAKE@ + +-SOURCES = $(libstdc___la_SOURCES) +- + srcdir = @srcdir@ + top_srcdir = @top_srcdir@ + pkgdatadir = $(datadir)/@PACKAGE@ +@@ -38,6 +36,7 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ ++LIBOBJDIR = + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/fragment.am + subdir = src +diff -Nrup --ignore-space-change gcc-4.0.2/libstdc++-v3/testsuite/Makefile.in gcc-4.0.2-atmel.0.99.2/libstdc++-v3/testsuite/Makefile.in +--- gcc-4.0.2/libstdc++-v3/testsuite/Makefile.in 2005-06-22 22:39:30.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/libstdc++-v3/testsuite/Makefile.in 2006-03-28 10:54:09.000000000 +0200 +@@ -1,8 +1,8 @@ +-# Makefile.in generated by automake 1.9.3 from Makefile.am. ++# Makefile.in generated by automake 1.9.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004 Free Software Foundation, Inc. ++# 2003, 2004, 2005 Free Software Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -14,8 +14,6 @@ + + @SET_MAKE@ + +-SOURCES = $(libv3test_a_SOURCES) +- + srcdir = @srcdir@ + top_srcdir = @top_srcdir@ + VPATH = @srcdir@ +@@ -39,6 +37,7 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + target_triplet = @target@ ++LIBOBJDIR = + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/fragment.am + subdir = testsuite +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/mtest.adb gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/mtest.adb +--- gcc-4.0.2/zlib/contrib/ada/mtest.adb 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/mtest.adb 2005-07-15 16:26:03.000000000 +0200 +@@ -8,7 +8,7 @@ + -- Continuous test for ZLib multithreading. If the test is fail + -- Wou should provide thread safe allocation routines for the Z_Stream. + -- +--- $Id: mtest.adb,v 1.2 2003/08/12 12:11:05 vagul Exp $ ++-- $Id: mtest.adb 3484 2005-07-15 14:26:03Z rpedersen $ + + with ZLib; + with Ada.Streams; +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/read.adb gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/read.adb +--- gcc-4.0.2/zlib/contrib/ada/read.adb 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/read.adb 2005-07-15 16:26:03.000000000 +0200 +@@ -6,7 +6,7 @@ + -- Open source license information is in the zlib.ads file. -- + ---------------------------------------------------------------- + +--- $Id: read.adb,v 1.7 2003/08/12 12:12:35 vagul Exp $ ++-- $Id: read.adb 3484 2005-07-15 14:26:03Z rpedersen $ + + -- Test/demo program for the generic read interface. + +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/test.adb gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/test.adb +--- gcc-4.0.2/zlib/contrib/ada/test.adb 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/test.adb 2005-07-15 16:26:03.000000000 +0200 +@@ -6,7 +6,7 @@ + -- Open source license information is in the zlib.ads file. -- + ---------------------------------------------------------------- + +--- $Id: test.adb,v 1.17 2003/08/12 12:13:30 vagul Exp $ ++-- $Id: test.adb 3484 2005-07-15 14:26:03Z rpedersen $ + + -- The program has a few aims. + -- 1. Test ZLib.Ada95 thick binding functionality. +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/zlib.adb gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib.adb +--- gcc-4.0.2/zlib/contrib/ada/zlib.adb 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib.adb 2005-07-15 16:26:03.000000000 +0200 +@@ -6,7 +6,7 @@ + -- Open source license information is in the zlib.ads file. -- + ---------------------------------------------------------------- + +--- $Id: zlib.adb,v 1.19 2003/07/13 16:02:19 vagul Exp $ ++-- $Id: zlib.adb 3484 2005-07-15 14:26:03Z rpedersen $ + + with Ada.Exceptions; + with Ada.Unchecked_Conversion; +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/zlib.ads gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib.ads +--- gcc-4.0.2/zlib/contrib/ada/zlib.ads 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib.ads 2005-07-15 16:26:03.000000000 +0200 +@@ -25,7 +25,7 @@ + -- covered by the GNU Public License. -- + ------------------------------------------------------------------------------ + +--- $Id: zlib.ads,v 1.17 2003/08/12 13:19:07 vagul Exp $ ++-- $Id: zlib.ads 3484 2005-07-15 14:26:03Z rpedersen $ + + with Ada.Streams; + +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/zlib-streams.adb gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-streams.adb +--- gcc-4.0.2/zlib/contrib/ada/zlib-streams.adb 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-streams.adb 2005-07-15 16:26:03.000000000 +0200 +@@ -6,7 +6,7 @@ + -- Open source license information is in the zlib.ads file. -- + ---------------------------------------------------------------- + +--- $Id: zlib-streams.adb,v 1.9 2003/08/12 13:15:31 vagul Exp $ ++-- $Id: zlib-streams.adb 3484 2005-07-15 14:26:03Z rpedersen $ + + with Ada.Unchecked_Deallocation; + +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/zlib-streams.ads gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-streams.ads +--- gcc-4.0.2/zlib/contrib/ada/zlib-streams.ads 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-streams.ads 2005-07-15 16:26:03.000000000 +0200 +@@ -6,7 +6,7 @@ + -- Open source license information is in the zlib.ads file. -- + ---------------------------------------------------------------- + +--- $Id: zlib-streams.ads,v 1.11 2003/08/12 13:15:31 vagul Exp $ ++-- $Id: zlib-streams.ads 3484 2005-07-15 14:26:03Z rpedersen $ + + package ZLib.Streams is + +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/zlib-thin.adb gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-thin.adb +--- gcc-4.0.2/zlib/contrib/ada/zlib-thin.adb 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-thin.adb 2005-07-15 16:26:03.000000000 +0200 +@@ -6,7 +6,7 @@ + -- Open source license information is in the zlib.ads file. -- + ---------------------------------------------------------------- + +--- $Id: zlib-thin.adb,v 1.6 2003/01/21 15:26:37 vagul Exp $ ++-- $Id: zlib-thin.adb 3484 2005-07-15 14:26:03Z rpedersen $ + + package body ZLib.Thin is + +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/contrib/ada/zlib-thin.ads gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-thin.ads +--- gcc-4.0.2/zlib/contrib/ada/zlib-thin.ads 2004-10-11 19:44:23.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/contrib/ada/zlib-thin.ads 2005-07-15 16:26:03.000000000 +0200 +@@ -6,7 +6,7 @@ + -- Open source license information is in the zlib.ads file. -- + ---------------------------------------------------------------- + +--- $Id: zlib-thin.ads,v 1.8 2003/08/12 13:16:51 vagul Exp $ ++-- $Id: zlib-thin.ads 3484 2005-07-15 14:26:03Z rpedersen $ + + with Interfaces.C.Strings; + with System.Address_To_Access_Conversions; +diff -Nrup --ignore-space-change gcc-4.0.2/zlib/zconf.in.h gcc-4.0.2-atmel.0.99.2/zlib/zconf.in.h +--- gcc-4.0.2/zlib/zconf.in.h 2004-10-11 19:44:14.000000000 +0200 ++++ gcc-4.0.2-atmel.0.99.2/zlib/zconf.in.h 2005-07-15 16:26:03.000000000 +0200 +@@ -3,7 +3,7 @@ + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +-/* @(#) $Id$ */ ++/* @(#) $Id: zconf.in.h 3484 2005-07-15 14:26:03Z rpedersen $ */ + + #ifndef ZCONF_H + #define ZCONF_H 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/gcc/gcc-4.2-20060513/armeb-fix.patch b/packages/gcc/gcc-4.2-20060513/armeb-fix.patch deleted file mode 100644 index 42bb4ea9ab..0000000000 --- a/packages/gcc/gcc-4.2-20060513/armeb-fix.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- gcc-4.0-20050305/gcc/config/arm/linux-elf.h.orig 2005-03-23 18:44:54.822707377 +0100 -+++ gcc-4.0-20050305/gcc/config/arm/linux-elf.h 2005-03-23 18:46:18.228560206 +0100 -@@ -31,19 +31,33 @@ - /* Do not assume anything about header files. */ - #define NO_IMPLICIT_EXTERN_C - -+/* -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for -+ * arm*b-*-linux* (big endian) configurations. -+ */ -+#if TARGET_BIG_ENDIAN_DEFAULT -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END -+#define TARGET_ENDIAN_OPTION "mbig-endian" -+#define TARGET_LINKER_EMULATION "armelfb_linux" -+#else -+#define TARGET_ENDIAN_DEFAULT 0 -+#define TARGET_ENDIAN_OPTION "mlittle-endian" -+#define TARGET_LINKER_EMULATION "armelf_linux" -+#endif -+ - #undef TARGET_DEFAULT_FLOAT_ABI - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD - - #undef TARGET_DEFAULT --#define TARGET_DEFAULT (0) -+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT) - - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6 - --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p" -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p" - - #undef MULTILIB_DEFAULTS - #define MULTILIB_DEFAULTS \ -- { "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" } -+ { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" } - - /* The GNU C++ standard library requires that these macros be defined. */ - #undef CPLUSPLUS_CPP_SPEC -@@ -90,7 +104,7 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ - -X \ -- %{mbig-endian:-EB}" \ -+ %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ - SUBTARGET_EXTRA_LINK_SPEC - - #define TARGET_OS_CPP_BUILTINS() \ ---- gcc-4.0-20050305/gcc/config.gcc.orig 2005-03-23 18:46:23.318105335 +0100 -+++ gcc-4.0-20050305/gcc/config.gcc 2005-03-23 18:47:41.592546386 +0100 -@@ -650,6 +650,11 @@ - ;; - arm*-*-linux*) # ARM GNU/Linux with ELF - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" -+ case $target in -+ arm*b-*-linux*) -+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" -+ ;; -+ esac - tmake_file="${tmake_file} arm/t-arm arm/t-linux" - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - gnu_ld=yes diff --git a/packages/ipsec-tools/ipsec-tools-0.6.6/.mtn2git_empty b/packages/gcc/gcc-4.2.0/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/ipsec-tools/ipsec-tools-0.6.6/.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-20060513/arm-nolibfloat.patch b/packages/gcc/gcc-4.2.0/arm-nolibfloat.patch index c4897c0330..c4897c0330 100644 --- a/packages/gcc/gcc-4.2-20060513/arm-nolibfloat.patch +++ b/packages/gcc/gcc-4.2.0/arm-nolibfloat.patch diff --git a/packages/gcc/gcc-4.2-20060513/arm-softfloat.patch b/packages/gcc/gcc-4.2.0/arm-softfloat.patch index c86c83ed15..c86c83ed15 100644 --- a/packages/gcc/gcc-4.2-20060513/arm-softfloat.patch +++ b/packages/gcc/gcc-4.2.0/arm-softfloat.patch 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-20060513/ldflags.patch b/packages/gcc/gcc-4.2.0/ldflags.patch index 9576f60778..9576f60778 100644 --- a/packages/gcc/gcc-4.2-20060513/ldflags.patch +++ b/packages/gcc/gcc-4.2.0/ldflags.patch 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-20060513/zecke-no-host-includes.patch b/packages/gcc/gcc-4.2.0/zecke-no-host-includes.patch index 6afb10d6ef..6afb10d6ef 100644 --- a/packages/gcc/gcc-4.2-20060513/zecke-no-host-includes.patch +++ b/packages/gcc/gcc-4.2.0/zecke-no-host-includes.patch diff --git a/packages/gcc/gcc-4.2-20060513/zecke-xgcc-cpp.patch b/packages/gcc/gcc-4.2.0/zecke-xgcc-cpp.patch index ba7d7257d9..42ec190600 100644 --- a/packages/gcc/gcc-4.2-20060513/zecke-xgcc-cpp.patch +++ b/packages/gcc/gcc-4.2.0/zecke-xgcc-cpp.patch @@ -1,9 +1,9 @@ -Index: gcc-4.0.2/Makefile.in +Index: gcc-4.1.1/Makefile.in =================================================================== ---- gcc-4.0.2.orig/Makefile.in 2006-08-06 13:17:09.000000000 +0200 -+++ gcc-4.0.2/Makefile.in 2006-08-06 13:18:35.000000000 +0200 -@@ -197,6 +197,7 @@ - AS="$(AS_FOR_TARGET)"; export AS; \ +--- 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; \ 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-sdk_4.2.0.bb b/packages/gcc/gcc-cross-sdk_4.2.0.bb new file mode 100644 index 0000000000..71c2cd08a2 --- /dev/null +++ b/packages/gcc/gcc-cross-sdk_4.2.0.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "The GNU cc and gcc C compilers." +HOMEPAGE = "http://www.gnu.org/software/gcc/" +SECTION = "devel" +LICENSE = "GPL" +PR = "r0" + +inherit sdk + +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}" + +DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc" +PACKAGES = "${PN}" + +require gcc_${PV}.bb +require gcc4-build-sdk.inc +require gcc-package-sdk.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://unbreak-armv4t.patch;patch=1 \ + file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \ + " + +SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " + diff --git a/packages/gcc/gcc-cross_4.0.2.bb b/packages/gcc/gcc-cross_4.0.2.bb index d2dc240126..59da2080e8 100644 --- a/packages/gcc/gcc-cross_4.0.2.bb +++ b/packages/gcc/gcc-cross_4.0.2.bb @@ -5,7 +5,7 @@ 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" +PR = "r7" DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc gmp-native mpfr-native" PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" diff --git a/packages/gcc/gcc-cross_4.2-20060513.bb b/packages/gcc/gcc-cross_4.2.0.bb index 4e380c5f66..9025a98f3c 100644 --- a/packages/gcc/gcc-cross_4.2-20060513.bb +++ b/packages/gcc/gcc-cross_4.2.0.bb @@ -15,4 +15,6 @@ require gcc3-build-cross.inc # cross packaging require gcc-package-cross.inc -EXTRA_OECONF += "--with-mpfr=${STAGING_DIR}/${BUILD_SYS}" +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.0.2.bb b/packages/gcc/gcc_4.0.2.bb index f812897786..0541ddfe96 100644 --- a/packages/gcc/gcc_4.0.2.bb +++ b/packages/gcc/gcc_4.0.2.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.gnu.org/software/gcc/" SECTION = "devel" LICENSE = "GPL" DEPENDS = "mpfr gmp" -PR = "r3" +PR = "r5" inherit autotools gettext @@ -23,7 +23,9 @@ SRC_URI_append = " file://100-uclibc-conf.patch;patch=1 \ file://302-c99-snprintf.patch;patch=1 \ file://303-c99-complex-ugly-hack.patch;patch=1 \ file://800-arm-bigendian.patch;patch=1 \ - file://zecke-host-cpp-ac-hack.patch;patch=1 " + file://zecke-host-cpp-ac-hack.patch;patch=1 \ + file://gcc-4.0.2-atmel.0.99.2.patch;patch=1 \ + " SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 " 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-20060513.bb b/packages/gcc/gcc_4.2-20060513.bb deleted file mode 100644 index 85fe468bc0..0000000000 --- a/packages/gcc/gcc_4.2-20060513.bb +++ /dev/null @@ -1,27 +0,0 @@ -PR = "r0" -DESCRIPTION = "The GNU cc and gcc C compilers." -HOMEPAGE = "http://www.gnu.org/software/gcc/" -SECTION = "devel" -LICENSE = "GPL" -DEFAULT_PREFERENCE = "-1" - -inherit autotools gettext - -require gcc-package.inc - -SRC_URI = "http://ftp.nluug.nl/languages/gcc/snapshots/${PV}/gcc-${PV}.tar.bz2 \ - file://arm-nolibfloat.patch;patch=1 \ - file://arm-softfloat.patch;patch=1 \ - file://zecke-xgcc-cpp.patch;patch=1 \ - file://ldflags.patch;patch=1" - -SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 " - -require gcc4-build.inc -EXTRA_OECONF += "--disable-libssp" - -FORTRAN = "" -HAS_GFORTRAN = "" -HAS_G2C = "no" - - 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/gdb/gdb_6.6.bb b/packages/gdb/gdb_6.6.bb index 2c0f2c67d9..3650b927da 100644 --- a/packages/gdb/gdb_6.6.bb +++ b/packages/gdb/gdb_6.6.bb @@ -1,6 +1,7 @@ require gdb.inc -PR = "r1" +PR = "r2" -#only append it for glib, not for uclibcc +#only append it for glib, not for uclibc RRECOMMENDS_gdb_append_linux = " glibc-thread-db " +RRECOMMENDS_gdb_append_linux-gnueabi = " glibc-thread-db " diff --git a/packages/gizmod/gizmod_2.3.bb b/packages/gizmod/gizmod_2.3.bb index ff9ae25640..bc70aa0414 100644 --- a/packages/gizmod/gizmod_2.3.bb +++ b/packages/gizmod/gizmod_2.3.bb @@ -1,7 +1,6 @@ DESCRIPTION = "Gizmo Daemon" HOMEPAGE = "http://gizmod.sourceforge.net" LICENSE = "GPLv2" -MAINTAINER = "Justin Patrin <papercrane@reversefold.com>" SECTION = "console/multimedia" DEPENDS = "python virtual/libx11 xf86vidmodeproto alsa-lib" SRC_URI = "${SOURCEFORGE_MIRROR}/gizmod/gizmod-${PV}.tar.bz2 \ 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.2.5.bb b/packages/glibc/glibc_2.2.5.bb index adb8a45283..82ab193073 100644 --- a/packages/glibc/glibc_2.2.5.bb +++ b/packages/glibc/glibc_2.2.5.bb @@ -23,7 +23,7 @@ python __anonymous () { bb.data.getVar('TARGET_OS', d, 1)) } -PROVIDES_unslung = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" +PROVIDES_unslung = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc libc6-unslung" libc_baselibs = "/lib/libc* /lib/libm* /lib/ld* /lib/libpthread* /lib/libresolv* /lib/librt* /lib/libutil* /lib/libnsl* /lib/libnss_files* /lib/libnss_compat* /lib/libnss_dns* /lib/libdl* /lib/libanl* /lib/libBrokenLocale*" 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/glibmm/glibmm_2.8.4.bb b/packages/glibmm/glibmm_2.8.4.bb index a1235ae563..1819114cb1 100644 --- a/packages/glibmm/glibmm_2.8.4.bb +++ b/packages/glibmm/glibmm_2.8.4.bb @@ -3,8 +3,8 @@ HOMEPAGE = "http://www.gtkmm.org/" SECTION = "libs" PRIORITY = "optional" LICENSE = "LGPL" -DEPENDS = "gtk+ libsigc++-2.0" -PR = "r1" +DEPENDS = "glib-2.0 libsigc++-2.0" +PR = "r2" SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/2.8/glibmm-${PV}.tar.bz2" diff --git a/packages/gnome/gnome-desktop/no-desktop-docs.patch b/packages/gnome/gnome-desktop/no-desktop-docs.patch new file mode 100644 index 0000000000..c132341728 --- /dev/null +++ b/packages/gnome/gnome-desktop/no-desktop-docs.patch @@ -0,0 +1,10 @@ +--- Makefile.am~ 2007-05-22 16:50:35.000000000 +0200 ++++ Makefile.am 2007-05-22 16:50:35.000000000 +0200 +@@ -3,7 +3,6 @@ + libgnome-desktop \ + gnome-about \ + pixmaps \ +- desktop-docs \ + docs \ + man + diff --git a/packages/gnome/gnome-desktop_2.16.1.bb b/packages/gnome/gnome-desktop_2.16.1.bb index 1e3e814d17..4d4b80efbc 100644 --- a/packages/gnome/gnome-desktop_2.16.1.bb +++ b/packages/gnome/gnome-desktop_2.16.1.bb @@ -1,14 +1,16 @@ LICENSE = "GPL" SECTION = "x11/gnome" -PR = "r1" +PR = "r2" DESCRIPTION = "GNOME library for reading .desktop files" inherit gnome pkgconfig DEPENDS = "gnome-common gnome-doc-utils libgnomeui" -SRC_URI += "file://scrollkeeper.patch;patch=1" +SRC_URI += "file://scrollkeeper.patch;patch=1 \ + file://no-desktop-docs.patch;patch=1;pnum=0" EXTRA_OECONF = "--disable-scrollkeeper" + EXTRA_AUTORECONF = "-I ${STAGING_DIR}/${HOST_SYS}/share/aclocal/gnome2-macros" do_configure_prepend () { diff --git a/packages/gnu-config/gnu-config/avr32.patch b/packages/gnu-config/gnu-config/avr32.patch new file mode 100644 index 0000000000..43efcd8a2e --- /dev/null +++ b/packages/gnu-config/gnu-config/avr32.patch @@ -0,0 +1,20 @@ +--- /tmp/config.sub 2007-06-01 15:29:41.000000000 +0200 ++++ config/config.sub 2007-06-01 15:58:50.005251000 +0200 +@@ -231,7 +231,7 @@ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ ++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ +@@ -305,7 +305,7 @@ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* \ ++ | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ diff --git a/packages/gnu-config/gnu-config_20050701.bb b/packages/gnu-config/gnu-config_20050701.bb index 2066014adf..2f1b6eb785 100644 --- a/packages/gnu-config/gnu-config_20050701.bb +++ b/packages/gnu-config/gnu-config_20050701.bb @@ -6,10 +6,11 @@ INHIBIT_DEFAULT_DEPS = "1" FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" PV = "0.1+cvs${FIXEDSRCDATE}" -PR = "r4" +PR = "r5" SRC_URI = "cvs://anonymous@cvs.sv.gnu.org/cvsroot/config;module=config;method=pserver;date=${FIXEDSRCDATE} \ file://config-guess-uclibc.patch;patch=1 \ + file://avr32.patch;patch=1 \ file://gnu-configize.in" S = "${WORKDIR}/config" diff --git a/packages/kismet/kismet-2006-04-R1/.mtn2git_empty b/packages/gnuchess/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/kismet/kismet-2006-04-R1/.mtn2git_empty +++ b/packages/gnuchess/.mtn2git_empty diff --git a/packages/gnuchess/gnuchess_5.05.bb b/packages/gnuchess/gnuchess_5.05.bb new file mode 100644 index 0000000000..d0536c3f84 --- /dev/null +++ b/packages/gnuchess/gnuchess_5.05.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "Gnuchess is a chess playing engine." +HOMEPAGE = "http://www.gnu.org/software/chess/" +SECTION = "console" +PRIORITY = "optional" +LICENSE = "GPL" + +SRC_URI = "${GNU_MIRROR}/chess/${PN}-${PV}.tar.gz" +S = "${WORKDIR}/chess" + +inherit autotools diff --git a/packages/gpe-bluetooth/gpe-bluetooth_0.55.bb b/packages/gpe-bluetooth/gpe-bluetooth_0.55.bb new file mode 100644 index 0000000000..e6ff0d6624 --- /dev/null +++ b/packages/gpe-bluetooth/gpe-bluetooth_0.55.bb @@ -0,0 +1,4 @@ +require gpe-bluetooth.inc + +PR = "r0" + diff --git a/packages/gpe-calendar/gpe-calendar_0.90.bb b/packages/gpe-calendar/gpe-calendar_0.90.bb new file mode 100644 index 0000000000..5b7c321fa9 --- /dev/null +++ b/packages/gpe-calendar/gpe-calendar_0.90.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "GPE calendar is the calendar application of the GPE PIM suite." +SECTION = "gpe" +LICENSE = "GPL" + +DEPENDS = "libhandoff libsoup libeventdb libschedule libxsettings libxsettings-client libgpepimc libdisplaymigration libgpevtype" +RDEPENDS = "gpe-icons" + +PR = "r0" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit autotools gpe + +do_configure () { + autotools_do_configure +} + + diff --git a/packages/gpe-contacts/gpe-contacts_0.47.bb b/packages/gpe-contacts/gpe-contacts_0.47.bb new file mode 100644 index 0000000000..dadb085f06 --- /dev/null +++ b/packages/gpe-contacts/gpe-contacts_0.47.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "GPE contacts manager" +LICENSE = "GPL" +SECTION = "gpe" + +DEPENDS = "libcontactsdb libgpewidget libgpepimc libdisplaymigration libgpevtype dbus-glib" +RDEPENDS = "gpe-icons" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit gpe autotools + +FILES_${PN} += " ${datadir}/gpe ${datadir}/gpe-contacts" + diff --git a/packages/gpe-login/files/brightness-adjust-keyluanchrc.patch b/packages/gpe-login/files/brightness-adjust-keyluanchrc.patch new file mode 100644 index 0000000000..cfc73f4d56 --- /dev/null +++ b/packages/gpe-login/files/brightness-adjust-keyluanchrc.patch @@ -0,0 +1,10 @@ +--- gpe-login-0.88/gpe-login.keylaunchrc.orig 2007-06-05 00:50:27.000000000 +0000 ++++ gpe-login-0.88/gpe-login.keylaunchrc 2007-06-05 00:52:03.000000000 +0000 +@@ -7,3 +7,7 @@ + key=...*Right:-:~chvt 3 + key=...*Escape:-:~/etc/init.d/gpe-dm stop + ++# Brightness control ++key=...*3:-:~display-brightness.sh down ++key=...*4:-:~display-brightness.sh up ++ diff --git a/packages/libmpeg2/.mtn2git_empty b/packages/gpe-login/gpe-login-0.90/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/libmpeg2/.mtn2git_empty +++ b/packages/gpe-login/gpe-login-0.90/.mtn2git_empty diff --git a/packages/gpe-login/gpe-login-0.90/chvt-keylaunch.patch b/packages/gpe-login/gpe-login-0.90/chvt-keylaunch.patch new file mode 100644 index 0000000000..798c059ccc --- /dev/null +++ b/packages/gpe-login/gpe-login-0.90/chvt-keylaunch.patch @@ -0,0 +1,12 @@ +--- /tmp/gpe-login.keylaunchrc 2006-05-29 23:46:42.806081576 +0200 ++++ gpe-login-0.87/gpe-login.keylaunchrc 2006-05-29 23:48:18.476537456 +0200 +@@ -1,3 +1,9 @@ + key=????XF86AudioRecord:xcalibrate:/usr/bin/gpe-xcalibrate.sh + key=????XF86PowerDown:-:/usr/bin/apm --suspend + key=????Held XF86PowerDown:-:bl toggle ++ ++# VT changing ++key=...*Left:-:~chvt 1 ++key=...*Right:-:~chvt 3 ++key=...*Escape:-:~/etc/init.d/gpe-dm stop ++ diff --git a/packages/gpe-login/gpe-login_0.88.bb b/packages/gpe-login/gpe-login_0.88.bb index f42aa4c6a3..6780add5c8 100644 --- a/packages/gpe-login/gpe-login_0.88.bb +++ b/packages/gpe-login/gpe-login_0.88.bb @@ -5,11 +5,18 @@ LICENSE = "GPL" DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd" RDEPENDS = "xkbd" RPROVIDES = "gpe-session-starter" -PR = "r1" +PR = "r2" + +PACKAGE_ARCH_${PN} = "${MACHINE}" inherit gpe + SRC_URI += "file://removeblue-fontsize8.patch;patch=1" SRC_URI += " file://chvt-keylaunch.patch;patch=1 " SRC_URI += " file://use-xtscal.patch;patch=1 " +SRC_URI_append_spitz = "file://brightness-adjust-keyluanchrc.patch;patch=1" +SRC_URI_append_akita = "file://brightness-adjust-keyluanchrc.patch;patch=1" +SRC_URI_append_c7x0 = "file://brightness-adjust-keyluanchrc.patch;patch=1" + diff --git a/packages/gpe-login/gpe-login_0.90.bb b/packages/gpe-login/gpe-login_0.90.bb new file mode 100644 index 0000000000..609255e54e --- /dev/null +++ b/packages/gpe-login/gpe-login_0.90.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "GPE user login screen" +SECTION = "gpe" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd" +RDEPENDS = "xkbd" +RPROVIDES = "gpe-session-starter" +PR = "r0" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit gpe autotools pkgconfig + + +SRC_URI += "file://removeblue-fontsize8.patch;patch=1" +SRC_URI += " file://chvt-keylaunch.patch;patch=1 " + +SRC_URI_append_spitz = "file://brightness-adjust-keyluanchrc.patch;patch=1" +SRC_URI_append_akita = "file://brightness-adjust-keyluanchrc.patch;patch=1" +SRC_URI_append_c7x0 = "file://brightness-adjust-keyluanchrc.patch;patch=1" + diff --git a/packages/gpe-timesheet/gpe-timesheet.inc b/packages/gpe-timesheet/gpe-timesheet.inc new file mode 100644 index 0000000000..11c1327752 --- /dev/null +++ b/packages/gpe-timesheet/gpe-timesheet.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "GPE time tracker" +SECTION = "gpe" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "libgpewidget gtk+ sqlite libtododb" +RDEPENDS = "gpe-icons" + +inherit autotools gpe + +GPE_TARBALL_SUFFIX = "bz2" diff --git a/packages/gpe-timesheet/gpe-timesheet_0.30.bb b/packages/gpe-timesheet/gpe-timesheet_0.30.bb index 1e995c2d81..c642bfacb5 100644 --- a/packages/gpe-timesheet/gpe-timesheet_0.30.bb +++ b/packages/gpe-timesheet/gpe-timesheet_0.30.bb @@ -1,9 +1,3 @@ -LICENSE = "GPL" -inherit autotools gpe +require gpe-timesheet.inc -DESCRIPTION = "GPE time tracker" -GPE_TARBALL_SUFFIX = "bz2" -DEPENDS = "libgpewidget gtk+ sqlite libtododb" -SECTION = "gpe" -RDEPENDS = "gpe-icons" PR = "r1" diff --git a/packages/gpe-timesheet/gpe-timesheet_0.31.bb b/packages/gpe-timesheet/gpe-timesheet_0.31.bb index 1e995c2d81..c642bfacb5 100644 --- a/packages/gpe-timesheet/gpe-timesheet_0.31.bb +++ b/packages/gpe-timesheet/gpe-timesheet_0.31.bb @@ -1,9 +1,3 @@ -LICENSE = "GPL" -inherit autotools gpe +require gpe-timesheet.inc -DESCRIPTION = "GPE time tracker" -GPE_TARBALL_SUFFIX = "bz2" -DEPENDS = "libgpewidget gtk+ sqlite libtododb" -SECTION = "gpe" -RDEPENDS = "gpe-icons" PR = "r1" diff --git a/packages/gpe-timesheet/gpe-timesheet_0.32.bb b/packages/gpe-timesheet/gpe-timesheet_0.32.bb new file mode 100644 index 0000000000..9a3b61106c --- /dev/null +++ b/packages/gpe-timesheet/gpe-timesheet_0.32.bb @@ -0,0 +1,3 @@ +require gpe-timesheet.inc + +PR = "r0" diff --git a/packages/gpe-timesheet/gpe-timesheet_svn.bb b/packages/gpe-timesheet/gpe-timesheet_svn.bb index 0eae00b1ca..28eb65d31b 100644 --- a/packages/gpe-timesheet/gpe-timesheet_svn.bb +++ b/packages/gpe-timesheet/gpe-timesheet_svn.bb @@ -1,13 +1,8 @@ -DESCRIPTION = "GPE time tracker" -SECTION = "gpe" -LICENSE = "GPL" -DEPENDS = "libgpewidget gtk+ sqlite libtododb" -RDEPENDS = "gpe-icons" +require gpe-timesheet.inc + PR = "r1" PV = "0.31+svn-${SRCDATE}" -inherit autotools - SRC_URI = "${GPE_SVN}" S = "${WORKDIR}/${PN}" diff --git a/packages/gpe-what/gpe-what.inc b/packages/gpe-what/gpe-what.inc new file mode 100644 index 0000000000..fd4307631e --- /dev/null +++ b/packages/gpe-what/gpe-what.inc @@ -0,0 +1,8 @@ +DESCRIPTION = "GPE modal help" +SECTION = "gpe" +LICENSE = "GPL" +DEPENDS = "virtual/libx11 gtk+" + +inherit autotools gpe + +GPE_TARBALL_SUFFIX= "bz2" diff --git a/packages/gpe-what/gpe-what_0.30.bb b/packages/gpe-what/gpe-what_0.30.bb index 9c711a624d..165ea4cc3b 100644 --- a/packages/gpe-what/gpe-what_0.30.bb +++ b/packages/gpe-what/gpe-what_0.30.bb @@ -1,9 +1,4 @@ -LICENSE = "GPL" -SECTION = "gpe" -inherit gpe - -DESCRIPTION = "GPE modal help" -DEPENDS = "virtual/libx11" +require gpe-what.inc do_compile_prepend() { rm *.d diff --git a/packages/gpe-what/gpe-what_0.31.bb b/packages/gpe-what/gpe-what_0.31.bb index 362e573538..50a614bdd2 100644 --- a/packages/gpe-what/gpe-what_0.31.bb +++ b/packages/gpe-what/gpe-what_0.31.bb @@ -1,6 +1,3 @@ -LICENSE = "GPL" -SECTION = "gpe" -inherit gpe +require gpe-what.inc -DESCRIPTION = "GPE modal help" DEPENDS = "virtual/libx11 libxpm libmatchbox" diff --git a/packages/gpe-what/gpe-what_0.33.bb b/packages/gpe-what/gpe-what_0.33.bb index ed7c7577ec..71ae7dac95 100644 --- a/packages/gpe-what/gpe-what_0.33.bb +++ b/packages/gpe-what/gpe-what_0.33.bb @@ -1,8 +1,5 @@ -LICENSE = "GPL" -SECTION = "gpe" -inherit gpe +require gpe-what.inc SRC_URI += "file://makefile-fix.patch;patch=1" -DESCRIPTION = "GPE modal help" DEPENDS = "virtual/libx11 libxpm libmatchbox" diff --git a/packages/gpe-what/gpe-what_0.41.bb b/packages/gpe-what/gpe-what_0.41.bb index 2cc0dc9c2f..853abec8aa 100644 --- a/packages/gpe-what/gpe-what_0.41.bb +++ b/packages/gpe-what/gpe-what_0.41.bb @@ -1,8 +1 @@ -LICENSE = "GPL" -DESCRIPTION = "GPE modal help" -DEPENDS = "virtual/libx11 gtk+" - - -GPE_TARBALL_SUFFIX= "bz2" -inherit autotools gpe - +require gpe-what.inc diff --git a/packages/gpe-what/gpe-what_0.42.bb b/packages/gpe-what/gpe-what_0.42.bb index 2cc0dc9c2f..853abec8aa 100644 --- a/packages/gpe-what/gpe-what_0.42.bb +++ b/packages/gpe-what/gpe-what_0.42.bb @@ -1,8 +1 @@ -LICENSE = "GPL" -DESCRIPTION = "GPE modal help" -DEPENDS = "virtual/libx11 gtk+" - - -GPE_TARBALL_SUFFIX= "bz2" -inherit autotools gpe - +require gpe-what.inc diff --git a/packages/gpe-what/gpe-what_0.43.bb b/packages/gpe-what/gpe-what_0.43.bb index b82da4ff7f..624f2e365e 100644 --- a/packages/gpe-what/gpe-what_0.43.bb +++ b/packages/gpe-what/gpe-what_0.43.bb @@ -1,9 +1,5 @@ -LICENSE = "GPL" -DESCRIPTION = "GPE modal help" -DEPENDS = "virtual/libx11 gtk+" -PR = "r1" +require gpe-what.inc -GPE_TARBALL_SUFFIX= "bz2" -inherit autotools gpe +PR = "r1" SRC_URI += " file://set-wm-hint.patch;patch=1;pnum=0" diff --git a/packages/gpe-what/gpe-what_svn.bb b/packages/gpe-what/gpe-what_svn.bb index 7ecaf20a2f..c448751096 100644 --- a/packages/gpe-what/gpe-what_svn.bb +++ b/packages/gpe-what/gpe-what_svn.bb @@ -1,9 +1,6 @@ -DESCRIPTION = "GPE modal help" -LICENSE = "GPL" -DEPENDS = "virtual/libx11 gtk+" -PV = "0.41+svn${SRCDATE}" +require gpe-what.inc -inherit autotools +PV = "0.41+svn${SRCDATE}" SRC_URI = "${GPE_SVN}" diff --git a/packages/gpephone/connect_0.1.bb b/packages/gpephone/connect_0.1.bb index c5ce0a0d54..a3171eef97 100644 --- a/packages/gpephone/connect_0.1.bb +++ b/packages/gpephone/connect_0.1.bb @@ -17,6 +17,6 @@ do_compile() { do_install() { install -d ${D}/${prefix}/bin - install -m755 connect ${D}/${prefix}/bin - install -m755 disconnect ${D}/${prefix}/bin + install -m 755 connect ${D}/${prefix}/bin + install -m 755 disconnect ${D}/${prefix}/bin } diff --git a/packages/gpephone/gpe-session-scripts-phone_0.67.bb b/packages/gpephone/gpe-session-scripts-phone_0.67.bb index 24d4a27e80..00031ac546 100644 --- a/packages/gpephone/gpe-session-scripts-phone_0.67.bb +++ b/packages/gpephone/gpe-session-scripts-phone_0.67.bb @@ -34,7 +34,7 @@ do_install_append() { mv ${D}/usr/bin/gpe-logout ${D}/usr/bin/gpe-logout.matchbox install -d ${D}${sysconfdir}/X11 - install -m755 ${WORKDIR}/phonesession ${D}${sysconfdir}/X11/phonesession + install -m 755 ${WORKDIR}/phonesession ${D}${sysconfdir}/X11/phonesession } do_install_append_x86() { diff --git a/packages/gpesyncd/gpe-synctool_0.2.bb b/packages/gpesyncd/gpe-synctool_0.2.bb new file mode 100644 index 0000000000..5db87ad995 --- /dev/null +++ b/packages/gpesyncd/gpe-synctool_0.2.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "Sync daemon for GPE and OpenSync" +LICENSE = "GPL" +DEPENDS = "gtk+ glib-2.0 libgpewidget" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit gpe autotools + diff --git a/packages/gpesyncd/gpe-synctool_svn.bb b/packages/gpesyncd/gpe-synctool_svn.bb index 2fdc4c7e56..e85013c117 100644 --- a/packages/gpesyncd/gpe-synctool_svn.bb +++ b/packages/gpesyncd/gpe-synctool_svn.bb @@ -2,7 +2,9 @@ DESCRIPTION = "Sync daemon for GPE and OpenSync" LICENSE = "GPL" DEPENDS = "gtk+ glib-2.0 libgpewidget" -PV = "0.0+svn${SRCDATE}" +DEFAULT_PREFERENCE = "-1" + +PV = "0.2+svn${SRCDATE}" PR = "r0" SRC_URI = "${GPE_SVN}" diff --git a/packages/gpsd/files/gpsd b/packages/gpsd/files/gpsd index 289896fb47..2cf26c5f3a 100755 --- a/packages/gpsd/files/gpsd +++ b/packages/gpsd/files/gpsd @@ -16,6 +16,8 @@ GPS_DEV="/dev/ttyS3" RETVAL=0 prog="gpsd" +test -f /etc/default/$prog && . /etc/default/$prog + start() { # Start daemons. echo -n "Starting $prog: " diff --git a/packages/gpsd/gpsd.inc b/packages/gpsd/gpsd.inc index f7c1de2362..6e35227f41 100644 --- a/packages/gpsd/gpsd.inc +++ b/packages/gpsd/gpsd.inc @@ -10,6 +10,7 @@ EXTRA_OECONF = "--x-includes=${STAGING_INCDIR}/X11 \ --disable-python " SRC_URI = "http://download.berlios.de/gpsd/gpsd-${PV}.tar.gz \ + file://gpsd-default \ file://gpsd" inherit autotools update-rc.d @@ -40,9 +41,12 @@ do_install_append() { install -d ${D}/${sysconfdir}/init.d install -d ${D}/dev install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/ + install -d ${D}/${sysconfdir}/default + install -m 0644 ${WORKDIR}/gpsd-default ${D}/${sysconfdir}/default/gpsd } PACKAGES =+ "libgps" FILES_${PN} += "${sysconfdir}" FILES_libgps = "${libdir}/*.so*" +CONFFILES_${PN} = "${sysconfdir}/default/gpsd" diff --git a/packages/gpsd/gpsd_2.28.bb b/packages/gpsd/gpsd_2.28.bb index 1a5e608aa8..d51d088807 100644 --- a/packages/gpsd/gpsd_2.28.bb +++ b/packages/gpsd/gpsd_2.28.bb @@ -1,2 +1,2 @@ require gpsd.inc -PR = "r1" +PR = "r3" diff --git a/packages/gpsd/gpsd_2.32.bb b/packages/gpsd/gpsd_2.32.bb index 4d07974d6e..12ef7f47a3 100644 --- a/packages/gpsd/gpsd_2.32.bb +++ b/packages/gpsd/gpsd_2.32.bb @@ -1,2 +1,2 @@ require gpsd.inc -PR = "r0" +PR = "r2" diff --git a/packages/gpsd/gpsd_2.33.bb b/packages/gpsd/gpsd_2.33.bb index f61c613eb8..a3b5b0bc25 100644 --- a/packages/gpsd/gpsd_2.33.bb +++ b/packages/gpsd/gpsd_2.33.bb @@ -2,4 +2,4 @@ require gpsd.inc DEPENDS = "ncurses" -PR = "r0" +PR = "r2" diff --git a/packages/gpsd/gpsd_2.34.bb b/packages/gpsd/gpsd_2.34.bb index 58e9ebeee2..726ba42481 100644 --- a/packages/gpsd/gpsd_2.34.bb +++ b/packages/gpsd/gpsd_2.34.bb @@ -1,3 +1,3 @@ require gpsd.inc -PR = "r0" +PR = "r2" diff --git a/packages/gsm/files/alive-start-if-interpreter-ready.patch b/packages/gsm/files/alive-start-if-interpreter-ready.patch new file mode 100644 index 0000000000..20104d2e3f --- /dev/null +++ b/packages/gsm/files/alive-start-if-interpreter-ready.patch @@ -0,0 +1,39 @@ +Index: gsm/src/gsmd/atcmd.c +=================================================================== +--- gsm.orig/src/gsmd/atcmd.c 2007-06-03 13:24:44.000000000 +0200 ++++ gsm/src/gsmd/atcmd.c 2007-06-03 13:24:46.000000000 +0200 +@@ -185,6 +185,7 @@ + !strcmp(buf, "AT-Command Interpreter ready")) { + g->interpreter_ready = 1; + gsmd_initsettings(g); ++ gmsd_alive_start(g); + return 0; + } + +Index: gsm/src/gsmd/gsmd.c +=================================================================== +--- gsm.orig/src/gsmd/gsmd.c 2007-06-03 13:22:02.000000000 +0200 ++++ gsm/src/gsmd/gsmd.c 2007-06-03 13:22:56.000000000 +0200 +@@ -128,7 +128,7 @@ + gsmd_timer_register(tmr); + } + +-static int gmsd_alive_start(struct gsmd *gsmd) ++int gmsd_alive_start(struct gsmd *gsmd) + { + struct timeval tv; + +@@ -478,10 +478,11 @@ + /* select a vendor plugin */ + gsmd_vendor_plugin_find(&g); + +- if (g.interpreter_ready) ++ if (g.interpreter_ready) { + gsmd_initsettings(&g); + +- gmsd_alive_start(&g); ++ gmsd_alive_start(&g); ++ } + + gsmd_opname_init(&g); + diff --git a/packages/gsm/files/extreplychars.patch b/packages/gsm/files/extreplychars.patch new file mode 100644 index 0000000000..8ebc343e27 --- /dev/null +++ b/packages/gsm/files/extreplychars.patch @@ -0,0 +1,70 @@ +Index: gsm/src/gsmd/atcmd.c +=================================================================== +--- gsm.orig/src/gsmd/atcmd.c 2007-06-03 10:46:19.000000000 +0200 ++++ gsm/src/gsmd/atcmd.c 2007-06-03 15:54:53.000000000 +0200 +@@ -208,7 +208,7 @@ + * TBD + */ + +- if (buf[0] == '+' || buf[0] == '%') { ++ if (buf[0] == '+' || strchr(g->vendorpl->ext_chars, buf[0])) { + /* an extended response */ + const char *colon = strchr(buf, ':'); + if (!colon) { +@@ -255,7 +255,7 @@ + } + + if (cmd) { +- if (cmd->buf[2] != '+' && cmd->buf[2] != '%') { ++ if (cmd->buf[2] != '+' && strchr(g->vendorpl->ext_chars, cmd->buf[2]) == NULL) { + gsmd_log(GSMD_ERROR, "extd reply to non-extd command?\n"); + return -EINVAL; + } +Index: gsm/src/gsmd/vendor_qc.c +=================================================================== +--- gsm.orig/src/gsmd/vendor_qc.c 2007-06-03 10:46:19.000000000 +0200 ++++ gsm/src/gsmd/vendor_qc.c 2007-06-03 11:45:58.000000000 +0200 +@@ -97,6 +97,7 @@ + + struct gsmd_vendor_plugin gsmd_vendor_plugin = { + .name = "Qualcomm msm6250", ++ .ext_chars = "@", + .num_unsolicit = ARRAY_SIZE(qc_unsolicit), + .unsolicit = qc_unsolicit, + .detect = &qc_detect, +Index: gsm/src/gsmd/vendor_ti.c +=================================================================== +--- gsm.orig/src/gsmd/vendor_ti.c 2007-06-03 10:46:19.000000000 +0200 ++++ gsm/src/gsmd/vendor_ti.c 2007-06-03 11:45:58.000000000 +0200 +@@ -303,6 +303,7 @@ + + struct gsmd_vendor_plugin gsmd_vendor_plugin = { + .name = "TI Calypso", ++ .ext_chars = "%@", + .num_unsolicit = ARRAY_SIZE(ticalypso_unsolicit), + .unsolicit = ticalypso_unsolicit, + .detect = &ticalypso_detect, +Index: gsm/include/gsmd/vendorplugin.h +=================================================================== +--- gsm.orig/include/gsmd/vendorplugin.h 2007-02-16 15:12:40.000000000 +0100 ++++ gsm/include/gsmd/vendorplugin.h 2007-06-03 11:45:58.000000000 +0200 +@@ -12,6 +12,7 @@ + struct gsmd_vendor_plugin { + struct llist_head list; + unsigned char *name; ++ unsigned char *ext_chars; + unsigned int num_unsolicit; + const struct gsmd_unsolicit *unsolicit; + int (*detect)(struct gsmd *g); +Index: gsm/src/gsmd/vendor_tihtc.c +=================================================================== +--- gsm.orig/src/gsmd/vendor_tihtc.c 2007-06-03 15:55:31.000000000 +0200 ++++ gsm/src/gsmd/vendor_tihtc.c 2007-06-03 15:55:43.000000000 +0200 +@@ -298,6 +298,7 @@ + + struct gsmd_vendor_plugin gsmd_vendor_plugin = { + .name = "TI Calypso / HTC firmware", ++ .ext_chars = "%", + .num_unsolicit = ARRAY_SIZE(tihtc_unsolicit), + .unsolicit = tihtc_unsolicit, + .detect = &tihtc_detect, diff --git a/packages/gsm/files/getopt-wait-interpreter-ready.patch b/packages/gsm/files/getopt-wait-interpreter-ready.patch new file mode 100644 index 0000000000..52b0da1183 --- /dev/null +++ b/packages/gsm/files/getopt-wait-interpreter-ready.patch @@ -0,0 +1,57 @@ +Index: gsm/src/gsmd/gsmd.c +=================================================================== +--- gsm.orig/src/gsmd/gsmd.c 2007-06-03 11:57:43.000000000 +0200 ++++ gsm/src/gsmd/gsmd.c 2007-06-03 11:57:45.000000000 +0200 +@@ -311,6 +311,7 @@ + { "leak-report", 0, NULL, 'L' }, + { "vendor", 1, NULL, 'v' }, + { "machine", 1, NULL, 'm' }, ++ { "wait", 1, NULL, 'w' }, + { 0, 0, 0, 0 } + }; + +@@ -333,6 +334,7 @@ + "\t-l file\t--logfile file\tSpecify a logfile to log to\n" + "\t-v\t--vendor v\tSpecify GSM modem vendor plugin\n" + "\t-m\t--machine m\tSpecify GSM modem machine plugin\n" ++ "\t-w\t--wait m\tWait for the AT Interpreter Ready message\n" + ); + } + +@@ -362,6 +364,7 @@ + char *logfile = "syslog"; + char *vendor_name = NULL; + char *machine_name = NULL; ++ int wait = -1; + + signal(SIGTERM, sig_handler); + signal(SIGINT, sig_handler); +@@ -374,7 +377,7 @@ + print_header(); + + /*FIXME: parse commandline, set daemonize, device, ... */ +- while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:v:m:", opts, NULL)) != -1) { ++ while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:v:m:w:", opts, NULL)) != -1) { + switch (argch) { + case 'V': + /* FIXME */ +@@ -411,6 +414,9 @@ + case 'm': + machine_name = optarg; + break; ++ case 'w': ++ wait = atoi(optarg); ++ break; + } + } + +@@ -455,6 +461,9 @@ + exit(1); + } + ++ if (wait >= 0) ++ g.interpreter_ready = !wait; ++ + if (atcmd_init(&g, fd) < 0) { + fprintf(stderr, "can't initialize UART device\n"); + exit(1); diff --git a/packages/gsm/files/plugin.patch b/packages/gsm/files/plugin.patch deleted file mode 100644 index 7f455ce718..0000000000 --- a/packages/gsm/files/plugin.patch +++ /dev/null @@ -1,935 +0,0 @@ -Index: gsm/include/gsmd/gsmd.h -=================================================================== ---- gsm.orig/include/gsmd/gsmd.h 2007-04-02 09:58:55.000000000 +0200 -+++ gsm/include/gsmd/gsmd.h 2007-04-02 11:03:41.000000000 +0200 -@@ -7,6 +7,7 @@ - - #include <common/linux_list.h> - -+#include <gsmd/machineplugin.h> - #include <gsmd/vendorplugin.h> - #include <gsmd/select.h> - #include <gsmd/state.h> -@@ -58,12 +59,14 @@ - - struct gsmd { - unsigned int flags; -+ int interpreter_ready; - struct gsmd_fd gfd_uart; - struct gsmd_fd gfd_sock; - struct llparser llp; - struct llist_head users; - struct llist_head pending_atcmds; /* our busy gsmd_atcmds */ - struct llist_head busy_atcmds; /* our busy gsmd_atcmds */ -+ struct gsmd_machine_plugin *machinepl; - struct gsmd_vendor_plugin *vendorpl; - struct gsmd_device_state dev_state; - -Index: gsm/include/gsmd/machineplugin.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gsm/include/gsmd/machineplugin.h 2007-04-02 11:03:41.000000000 +0200 -@@ -0,0 +1,24 @@ -+#ifndef _GSMD_MACHINEPLUG_H -+#define _GSMD_MACHINEPLUG_H -+ -+#ifdef __GSMD__ -+ -+#include <common/linux_list.h> -+#include <gsmd/gsmd.h> -+ -+struct gsmd; -+ -+struct gsmd_machine_plugin { -+ struct llist_head list; -+ unsigned char *name; -+ int (*detect)(struct gsmd *g); -+ int (*init)(struct gsmd *g, int fd); -+}; -+ -+extern int gsmd_machine_plugin_register(struct gsmd_machine_plugin *pl); -+extern void gsmd_machine_plugin_unregister(struct gsmd_machine_plugin *pl); -+extern int gsmd_machine_plugin_find(struct gsmd *g); -+ -+#endif /* __GSMD__ */ -+ -+#endif -Index: gsm/src/gsmd/machine_tihtc.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gsm/src/gsmd/machine_tihtc.c 2007-04-02 11:03:41.000000000 +0200 -@@ -0,0 +1,71 @@ -+/* TI [Calypso] with HTC firmware machine plugin -+ * -+ * Written by Philipp Zabel <philipp.zabel@gmail.com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program 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 program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ */ -+ -+#include <stdlib.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdio.h> -+#include <errno.h> -+#include <sys/ioctl.h> -+ -+#include "gsmd.h" -+ -+#include <gsmd/gsmd.h> -+#include <gsmd/usock.h> -+#include <gsmd/event.h> -+#include <gsmd/talloc.h> -+#include <gsmd/extrsp.h> -+#include <gsmd/machineplugin.h> -+ -+#define N_TIHTC 17 -+ -+static int tihtc_detect(struct gsmd *g) -+{ -+ /* FIXME: do actual detection of machine if we have multiple machines */ -+ return 1; -+} -+ -+static int tihtc_init(struct gsmd *g, int fd) -+{ -+ int ldisc = N_TIHTC; -+ int rc; -+ -+ /* -+ * Himalaya, Blueangel, Alpine and Magican -+ * power up their GSM chipsets when the -+ * tty is opened. Wait for the "AT-Command -+ * Interpreter ready" message before trying -+ * to send commands. -+ */ -+ g->interpreter_ready = 0; -+ -+ /* Set the line discipline to N_TIHTC */ -+ rc = ioctl(fd, TIOCSETD, &ldisc); -+ if (rc < 0) -+ fprintf(stderr, "can't set line discipline\n"); -+ -+ return rc; -+} -+ -+struct gsmd_machine_plugin gsmd_machine_plugin = { -+ .name = "TI Calypso / HTC firmware", -+ .detect = &tihtc_detect, -+ .init = &tihtc_init, -+}; -Index: gsm/src/gsmd/machine_generic.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gsm/src/gsmd/machine_generic.c 2007-04-02 11:03:41.000000000 +0200 -@@ -0,0 +1,61 @@ -+/* generic machine plugin -+ * -+ * Written by Philipp Zabel <philipp.zabel@gmail.com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program 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 program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ */ -+ -+#include <stdlib.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdio.h> -+#include <errno.h> -+ -+#include "gsmd.h" -+ -+#include <gsmd/gsmd.h> -+#include <gsmd/usock.h> -+#include <gsmd/event.h> -+#include <gsmd/talloc.h> -+#include <gsmd/extrsp.h> -+#include <gsmd/machineplugin.h> -+ -+static int generic_detect(struct gsmd *g) -+{ -+ /* FIXME: do actual detection of machine if we have multiple machines */ -+ return 1; -+} -+ -+static int generic_init(struct gsmd *g, int fd) -+{ -+ int rc; -+ -+ /* -+ * We assume that the GSM chipset can take -+ * input immediately, so we don't have to -+ * wait for the "AT-Command Interpreter ready" -+ * message before trying to send commands. -+ */ -+ g->interpreter_ready = 1; -+ -+ return 0; -+} -+ -+struct gsmd_machine_plugin gsmd_machine_plugin = { -+ .name = "generic", -+ .detect = &generic_detect, -+ .init = &generic_init, -+}; -Index: gsm/src/gsmd/machine.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gsm/src/gsmd/machine.c 2007-04-02 13:43:04.000000000 +0200 -@@ -0,0 +1,140 @@ -+/* gsmd machine plugin core -+ * -+ * Written by Philipp Zabel <philipp.zabel@gmail.com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program 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 program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ */ -+ -+#include <dlfcn.h> -+#include <errno.h> -+#include <stdio.h> -+#include <string.h> -+ -+#include <common/linux_list.h> -+ -+#include "gsmd.h" -+ -+#include <gsmd/gsmd.h> -+#include <gsmd/machineplugin.h> -+ -+static LLIST_HEAD(machinepl_list); -+ -+int gsmd_machine_plugin_register(struct gsmd_machine_plugin *pl) -+{ -+ llist_add(&pl->list, &machinepl_list); -+ -+ return 0; -+} -+ -+void gsmd_machine_plugin_unregister(struct gsmd_machine_plugin *pl) -+{ -+ llist_del(&pl->list); -+} -+ -+int gsmd_machine_plugin_find(struct gsmd *g) -+{ -+ struct gsmd_machine_plugin *pl; -+ -+ if (g->machinepl) -+ return -EEXIST; -+ -+ llist_for_each_entry(pl, &machinepl_list, list) { -+ if (pl->detect(g) == 1) { -+ DEBUGP("selecting machine plugin \"%s\"\n", pl->name); -+ g->machinepl = pl; -+ return 1; -+ } -+ } -+ -+ return 0; -+} -+ -+int gsmd_machine_plugin_load(char *name) -+{ -+ int rc = -1; -+ void *plugin; -+ struct gsmd_machine_plugin *pl; -+ char buf[128]; -+ -+ DEBUGP("loading machine plugin \"%s\"\n", name); -+ -+ snprintf(buf, sizeof(buf), PLUGINDIR"/libgsmd-machine_%s.so", name); -+ -+ plugin = dlopen(buf, RTLD_LAZY); -+ if (!plugin) { -+ fprintf(stderr, "gsmd_machine_plugin_load: %s\n", dlerror()); -+ return -1; -+ } -+ -+ pl = dlsym(plugin, "gsmd_machine_plugin"); -+ if (pl) -+ rc = gsmd_machine_plugin_register(pl); -+ else -+ dlclose(plugin); -+ -+ return rc; -+} -+ -+/* maybe /etc/gsmd/cpuinfo */ -+struct machines { -+ char *cpuinfo; -+ char *machine; -+ char *vendor; -+} machines[] = { -+ { "GTA01", "generic", "ti" }, -+ { "HTC Blueangel", "tihtc", "tihtc" }, -+ { "HTC Himalaya", "tihtc", "tihtc" }, -+ { "HTC Magician", "tihtc", "tihtc" }, -+ { "HTC Universal", "generic", "qc" }, -+ { NULL, NULL, NULL }, -+}; -+ -+int gsmd_machine_plugin_init(struct gsmd *g, int fd) -+{ -+ FILE *cpuinfo; -+ char buf[1024]; -+ char *line, *machine = NULL; -+ int i, rc; -+ -+ cpuinfo = fopen("/proc/cpuinfo", "r"); -+ fread(buf, sizeof(buf), 1, cpuinfo); -+ fclose(cpuinfo); -+ -+ line = strtok(buf, "\n"); -+ while (line = strtok(NULL, "\n")) { -+ if (strncmp(line, "Hardware\t: ", 11) == 0) { -+ machine = line+11; -+ break; -+ } -+ } -+ /* FIXME: do this dynamically */ -+ if (machine) { -+ for (i = 0; machines[i].cpuinfo; i++) { -+ if (strcmp(machine, machines[i].cpuinfo) == 0) { -+ DEBUGP("detected %s\n", machine); -+ rc = gsmd_machine_plugin_load(machines[i].machine); -+ rc |= gsmd_vendor_plugin_load(machines[i].vendor); -+ return rc; -+ } -+ } -+ } -+ /* load generic machine and all vendor plugins */ -+ rc = gsmd_machine_plugin_load("generic"); -+ gsmd_vendor_plugin_load("ti"); -+ gsmd_vendor_plugin_load("tihtc"); -+ gsmd_vendor_plugin_load("qc"); -+ return rc; -+} -Index: gsm/src/gsmd/vendor_qc.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gsm/src/gsmd/vendor_qc.c 2007-04-02 11:03:41.000000000 +0200 -@@ -0,0 +1,104 @@ -+/* Qualcomm [msm6250] gsmd plugin -+ * -+ * Written by Philipp Zabel <philipp.zabel@gmail.com> -+ * based on vendor_ti.c -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program 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 program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ */ -+ -+#include <stdlib.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdio.h> -+#include <errno.h> -+ -+#include "gsmd.h" -+ -+#include <gsmd/gsmd.h> -+#include <gsmd/usock.h> -+#include <gsmd/event.h> -+#include <gsmd/talloc.h> -+#include <gsmd/extrsp.h> -+#include <gsmd/atcmd.h> -+#include <gsmd/vendorplugin.h> -+#include <gsmd/unsolicited.h> -+ -+static int htccsq_parse(char *buf, int len, const char *param, -+ struct gsmd *gsmd) -+{ -+ char *tok; -+ struct gsmd_evt_auxdata *aux; -+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL, -+ sizeof(*aux)); -+ static int rssi_table[] = { 0,5,10,15,20,25,99 }; /* FIXME */ -+ unsigned int i; -+ -+ DEBUGP("entering htccsq_parse param=`%s'\n", param); -+ if (!ucmd) -+ return -EINVAL; -+ -+ -+ aux = (struct gsmd_evt_auxdata *) ucmd->buf; -+ -+ i = atoi(buf); -+ if (i > 6) -+ i = 6; -+ aux->u.signal.sigq.rssi = rssi_table[atoi(buf)]; -+ aux->u.signal.sigq.ber = 99; -+ -+ DEBUGP("sending EVT_SIGNAL\n"); -+ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL); -+ -+ return 0; -+ -+out_free_io: -+ free(ucmd); -+ return -EIO; -+} -+ -+static const struct gsmd_unsolicit qc_unsolicit[] = { -+ { "@HTCCSQ", &htccsq_parse }, /* Signal Quality */ -+ -+ /* FIXME: parse the below and generate the respective events */ -+ -+ /* %CGREG: reports extended information about GPRS registration state */ -+}; -+ -+static int qc_detect(struct gsmd *g) -+{ -+ /* FIXME: do actual detection of vendor if we have multiple vendors */ -+ /* open /proc/cpuinfo and check for HTC Universal? */ -+ return 1; -+} -+ -+static int qc_initsettings(struct gsmd *g) -+{ -+ int rc; -+ struct gsmd_atcmd *cmd; -+ -+ /* enable @HTCCSQ: signal quality reports */ -+ rc |= gsmd_simplecmd(g, "AT@HTCCSQ=1"); -+ -+ return rc; -+} -+ -+struct gsmd_vendor_plugin gsmd_vendor_plugin = { -+ .name = "Qualcomm msm6250", -+ .num_unsolicit = ARRAY_SIZE(qc_unsolicit), -+ .unsolicit = qc_unsolicit, -+ .detect = &qc_detect, -+ .initsettings = &qc_initsettings, -+}; -Index: gsm/src/gsmd/Makefile.am -=================================================================== ---- gsm.orig/src/gsmd/Makefile.am 2007-04-02 09:58:55.000000000 +0200 -+++ gsm/src/gsmd/Makefile.am 2007-04-02 13:33:11.000000000 +0200 -@@ -1,11 +1,26 @@ - INCLUDES = $(all_includes) -I$(top_srcdir)/include - AM_CFLAGS = -std=gnu99 -+plugindir = $(libdir)/gsmd - - sbin_PROGRAMS = gsmd - --gsmd_SOURCES = gsmd.c atcmd.c select.c vendor.c usock.c unsolicited.c log.c \ -- vendor_ti.c talloc.c operator_cache.c ext_response.c --#gsmd_LDADD = ../libgsmd/libgsmd.la --#gsmd_LDFLAGS = -dynamic -+gsmd_CFLAGS = -D PLUGINDIR=\"$(plugindir)\" -+gsmd_SOURCES = gsmd.c atcmd.c select.c machine.c vendor.c unsolicited.c log.c \ -+ usock.c talloc.c operator_cache.c ext_response.c -+gsmd_LDADD = -ldl -+gsmd_LDFLAGS = -Wl,--export-dynamic -+ -+plugin_LTLIBRARIES = libgsmd-machine_generic.la \ -+ libgsmd-machine_tihtc.la \ -+ libgsmd-vendor_ti.la \ -+ libgsmd-vendor_tihtc.la \ -+ libgsmd-vendor_qc.la -+ -+libgsmd_machine_generic_la_SOURCES = machine_generic.c -+libgsmd_machine_tihtc_la_SOURCES = machine_tihtc.c -+ -+libgsmd_vendor_ti_la_SOURCES = vendor_ti.c -+libgsmd_vendor_tihtc_la_SOURCES = vendor_tihtc.c -+libgsmd_vendor_qc_la_SOURCES = vendor_qc.c - - noinst_HEADERS = gsmd.h -Index: gsm/src/gsmd/atcmd.c -=================================================================== ---- gsm.orig/src/gsmd/atcmd.c 2007-04-02 11:03:40.000000000 +0200 -+++ gsm/src/gsmd/atcmd.c 2007-04-02 11:03:41.000000000 +0200 -@@ -183,6 +183,7 @@ - * an empty string or that 'ready' string, we need to init the modem */ - if (strlen(buf) == 0 || - !strcmp(buf, "AT-Command Interpreter ready")) { -+ g->interpreter_ready = 1; - gsmd_initsettings(g); - return 0; - } -@@ -370,7 +371,7 @@ - } - - /* write pending commands to UART */ -- if (what & GSMD_FD_WRITE) { -+ if ((what & GSMD_FD_WRITE) && g->interpreter_ready) { - struct gsmd_atcmd *pos, *pos2; - llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) { - len = strlen(pos->buf); -Index: gsm/src/gsmd/vendor_tihtc.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gsm/src/gsmd/vendor_tihtc.c 2007-04-02 13:16:45.000000000 +0200 -@@ -0,0 +1,305 @@ -+/* TI [Calypso] with HTC firmware gsmd plugin -+ * -+ * Written by Philipp Zabel <philipp.zabel@gmail.com> -+ * based on vendor_ti.c -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program 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 program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ */ -+ -+#include <stdlib.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdio.h> -+#include <errno.h> -+ -+#include "gsmd.h" -+ -+#include <gsmd/gsmd.h> -+#include <gsmd/usock.h> -+#include <gsmd/event.h> -+#include <gsmd/talloc.h> -+#include <gsmd/extrsp.h> -+#include <gsmd/atcmd.h> -+#include <gsmd/vendorplugin.h> -+#include <gsmd/unsolicited.h> -+ -+static int gsmd_test_atcb(struct gsmd_atcmd *cmd, void *ctx, char *resp) -+{ -+ printf("`%s' returned `%s'\n", cmd->buf, resp); -+ return 0; -+} -+ -+int gsmd_simplecmd(struct gsmd *gsmd, char *cmdtxt) -+{ -+ struct gsmd_atcmd *cmd; -+ cmd = atcmd_fill(cmdtxt, strlen(cmdtxt)+1, &gsmd_test_atcb, NULL, 0); -+ if (!cmd) -+ return -ENOMEM; -+ -+ return atcmd_submit(gsmd, cmd); -+} -+ -+ -+#if 0 -+#include "vendorplugin.h" -+ -+static int -+ti_getopt(struct gsmd *gh, int optname, void *optval, int *optlen) -+{ -+ switch (optname) { -+ case GSMD_OPT_CIPHER_IND: -+ /* FIXME: send AT%CPRI=? */ -+ break; -+ default: -+ return -EINVAL; -+ } -+} -+ -+static int -+ti_setopt(struct gsmd *gh, int optname, const void *optval, int optlen) -+{ -+ switch (optname) { -+ case GSMD_OPT_CIPHER_IND: -+ /* FIXME: send AT%CPRI= */ -+ break; -+ default: -+ return -EINVAL; -+ } -+} -+ -+#endif -+ -+ -+static int htccsq_parse(char *buf, int len, const char *param, -+ struct gsmd *gsmd) -+{ -+ char *tok; -+ struct gsmd_evt_auxdata *aux; -+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL, -+ sizeof(*aux)); -+ -+ DEBUGP("entering htccsq_parse param=`%s'\n", param); -+ if (!ucmd) -+ return -EINVAL; -+ -+ -+ aux = (struct gsmd_evt_auxdata *) ucmd->buf; -+ -+ /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */ -+ /* 2 --> 11 */ -+ aux->u.signal.sigq.rssi = atoi(buf); -+ aux->u.signal.sigq.ber = 99; -+ -+ DEBUGP("sending EVT_SIGNAL\n"); -+ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL); -+ -+ return 0; -+ -+out_free_io: -+ free(ucmd); -+ return -EIO; -+} -+ -+static int cpri_parse(char *buf, int len, const char *param, struct gsmd *gsmd) -+{ -+ char *tok1, *tok2; -+ -+ tok1 = strtok(buf, ","); -+ if (!tok1) -+ return -EIO; -+ -+ tok2 = strtok(NULL, ","); -+ if (!tok2) { -+ switch (atoi(tok1)) { -+ case 0: -+ gsmd->dev_state.ciph_ind.flags &= ~GSMD_CIPHIND_ACTIVE; -+ break; -+ case 1: -+ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_ACTIVE; -+ break; -+ case 2: -+ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_DISABLED_SIM; -+ break; -+ } -+ } else { -+ struct gsmd_evt_auxdata *aux; -+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, -+ GSMD_EVT_CIPHER, -+ sizeof(*aux)); -+ if (!ucmd) -+ return -ENOMEM; -+ -+ aux = (struct gsmd_evt_auxdata *) ucmd->buf; -+ -+ aux->u.cipher.net_state_gsm = atoi(tok1); -+ aux->u.cipher.net_state_gsm = atoi(tok2); -+ -+ usock_evt_send(gsmd, ucmd, GSMD_EVT_CIPHER); -+ } -+ -+ return 0; -+} -+ -+/* Call Progress Information */ -+static int cpi_parse(char *buf, int len, const char *param, struct gsmd *gsmd) -+{ -+ char *tok; -+ struct gsmd_evt_auxdata *aux; -+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, -+ GSMD_EVT_OUT_STATUS, -+ sizeof(*aux)); -+ -+ DEBUGP("entering cpi_parse param=`%s'\n", param); -+ if (!ucmd) -+ return -EINVAL; -+ -+ aux = (struct gsmd_evt_auxdata *) ucmd->buf; -+ -+ /* Format: cId, msgType, ibt, tch, dir,[mode],[number],[type],[alpha],[cause],line */ -+ -+ /* call ID */ -+ tok = strtok(buf, ","); -+ if (!tok) -+ goto out_free_io; -+ -+ /* message type (layer 3) */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_free_io; -+ aux->u.call_status.prog = atoi(tok); -+ -+ /* in-band tones */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_free_io; -+ -+ if (*tok == '1') -+ aux->u.call_status.ibt = 1; -+ else -+ aux->u.call_status.ibt = 0; -+ -+ /* TCH allocated */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_free_io; -+ -+ if (*tok == '1') -+ aux->u.call_status.tch = 1; -+ else -+ aux->u.call_status.tch = 0; -+ -+ /* direction */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_send; -+ -+ switch (*tok) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ aux->u.call_status.dir = (*tok - '0'); -+ break; -+ default: -+ break; -+ } -+ -+ /* mode */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_send; -+ -+out_send: -+ usock_evt_send(gsmd, ucmd, GSMD_EVT_OUT_STATUS); -+ -+ return 0; -+ -+out_free_io: -+ talloc_free(ucmd); -+ return -EIO; -+} -+ -+static const struct gsmd_unsolicit tihtc_unsolicit[] = { -+ { "%HTCCSQ", &htccsq_parse }, /* Signal Quality */ -+ { "%CPRI", &cpri_parse }, /* Ciphering Indication */ -+ { "%CPI", &cpi_parse }, /* Call Progress Information */ -+ -+ /* FIXME: parse the below and generate the respective events */ -+ -+ /* %CGREG: reports extended information about GPRS registration state */ -+}; -+ -+static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) -+{ -+ struct gsmd *g = ctx; -+ struct gsm_extrsp *er; -+ -+ if (strncmp(resp, "%CPI: ", 6)) -+ return -EINVAL; -+ resp += 6; -+ -+ er = extrsp_parse(cmd, resp); -+ if (!er) -+ return -EINVAL; -+ -+ if (extrsp_supports(er, 0, 3)) -+ return gsmd_simplecmd(g, "AT%CPI=3"); -+ else if (extrsp_supports(er, 0, 2)) -+ return gsmd_simplecmd(g, "AT%CPI=2"); -+ else -+ DEBUGP("Call Progress Indication mode 2 or 3 not supported!!\n"); -+ -+ talloc_free(er); -+ return 0; -+} -+ -+static int tihtc_detect(struct gsmd *g) -+{ -+ /* FIXME: do actual detection of vendor if we have multiple vendors */ -+ /* open /proc/cpuinfo and check for HTC Magician or HTC Blueangel? */ -+ /* check for N_TIHTC ldisc? or set it ourselves? */ -+ return 1; -+} -+ -+static int tihtc_initsettings(struct gsmd *g) -+{ -+ int rc; -+ struct gsmd_atcmd *cmd; -+ -+ /* use %CGREG */ -+ //rc |= gsmd_simplecmd(g, "AT%CGREG=3"); -+ /* enable %CPRI: ciphering indications */ -+ rc |= gsmd_simplecmd(g, "AT%CPRI=1"); -+ /* enable %HTCCSQ: signal quality reports */ -+ rc |= gsmd_simplecmd(g, "AT%HTCCSQ=1"); -+ /* send unsolicited commands at any time */ -+ rc |= gsmd_simplecmd(g, "AT%CUNS=0"); -+ -+ /* enable %CPI: call progress indication */ -+ cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0); -+ if (cmd) -+ atcmd_submit(g, cmd); -+ -+ return rc; -+} -+ -+struct gsmd_vendor_plugin gsmd_vendor_plugin = { -+ .name = "TI Calypso / HTC firmware", -+ .num_unsolicit = ARRAY_SIZE(tihtc_unsolicit), -+ .unsolicit = tihtc_unsolicit, -+ .detect = &tihtc_detect, -+ .initsettings = &tihtc_initsettings, -+}; -Index: gsm/src/gsmd/vendor_ti.c -=================================================================== ---- gsm.orig/src/gsmd/vendor_ti.c 2007-04-02 09:58:55.000000000 +0200 -+++ gsm/src/gsmd/vendor_ti.c 2007-04-02 11:03:41.000000000 +0200 -@@ -301,16 +301,10 @@ - return rc; - } - --static struct gsmd_vendor_plugin plugin_ticalypso = { -+struct gsmd_vendor_plugin gsmd_vendor_plugin = { - .name = "TI Calypso", - .num_unsolicit = ARRAY_SIZE(ticalypso_unsolicit), - .unsolicit = ticalypso_unsolicit, - .detect = &ticalypso_detect, - .initsettings = &ticalypso_initsettings, - }; -- --/* FIXME: this will be _init() when we make this a plugin */ --int ticalypso_init(void) --{ -- return gsmd_vendor_plugin_register(&plugin_ticalypso); --} -Index: gsm/src/gsmd/gsmd.c -=================================================================== ---- gsm.orig/src/gsmd/gsmd.c 2007-04-02 09:58:55.000000000 +0200 -+++ gsm/src/gsmd/gsmd.c 2007-04-02 13:39:40.000000000 +0200 -@@ -254,6 +254,21 @@ - exit(1); - } - -+ if (gsmd_machine_plugin_init(&g) < 0) { -+ fprintf(stderr, "no machine plugins found\n"); -+ exit(1); -+ } -+ -+ /* select a machine plugin and load possible vendor plugins */ -+ gsmd_machine_plugin_find(&g); -+ -+ /* initialize the machine plugin */ -+ if (g.machinepl->init) -+ if (g.machinepl->init(&g, fd) < 0) { -+ fprintf(stderr, "couldn't initialize machine plugin\n"); -+ exit(1); -+ } -+ - if (atcmd_init(&g, fd) < 0) { - fprintf(stderr, "can't initialize UART device\n"); - exit(1); -@@ -275,12 +290,11 @@ - setsid(); - } - -- /* FIXME: do this dynamically */ -- ticalypso_init(); -- -+ /* select a vendor plugin */ - gsmd_vendor_plugin_find(&g); - -- gsmd_initsettings(&g); -+ if (g.interpreter_ready) -+ gsmd_initsettings(&g); - - gsmd_opname_init(&g); - -Index: gsm/src/gsmd/vendor.c -=================================================================== ---- gsm.orig/src/gsmd/vendor.c 2007-04-02 09:58:55.000000000 +0200 -+++ gsm/src/gsmd/vendor.c 2007-04-02 13:38:38.000000000 +0200 -@@ -20,7 +20,10 @@ - * - */ - -+#include <dlfcn.h> - #include <errno.h> -+#include <stdio.h> -+#include <string.h> - - #include <common/linux_list.h> - -@@ -52,6 +55,7 @@ - - llist_for_each_entry(pl, &vendorpl_list, list) { - if (pl->detect(g) == 1) { -+ DEBUGP("selecting vendor plugin \"%s\"\n", pl->name); - g->vendorpl = pl; - return 1; - } -@@ -59,3 +63,29 @@ - - return 0; - } -+ -+int gsmd_vendor_plugin_load(char *name) -+{ -+ int rc = -1; -+ void *lib; -+ struct gsmd_vendor_plugin *pl; -+ char buf[128]; -+ -+ DEBUGP("loading vendor plugin \"%s\"\n", name); -+ -+ snprintf(buf, sizeof(buf), PLUGINDIR"/libgsmd-vendor_%s.so", name); -+ -+ lib = dlopen(buf, RTLD_LAZY); -+ if (!lib) { -+ fprintf(stderr, "gsmd_vendor_plugin_load: %s\n", dlerror()); -+ return -1; -+ } -+ -+ pl = dlsym(lib, "gsmd_vendor_plugin"); -+ if (pl) -+ rc = gsmd_vendor_plugin_register(pl); -+ else -+ dlclose(lib); -+ -+ return rc; -+} diff --git a/packages/gsm/files/qualcomm-extreply.patch b/packages/gsm/files/qualcomm-extreply.patch deleted file mode 100644 index 010a8c9f31..0000000000 --- a/packages/gsm/files/qualcomm-extreply.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: gsm/src/gsmd/atcmd.c -=================================================================== ---- gsm.orig/src/gsmd/atcmd.c 2007-04-02 09:59:16.000000000 +0200 -+++ gsm/src/gsmd/atcmd.c 2007-04-02 10:10:54.000000000 +0200 -@@ -207,7 +207,7 @@ - * TBD - */ - -- if (buf[0] == '+' || buf[0] == '%') { -+ if (buf[0] == '+' || buf[0] == '%' || buf[0] == '@') { - /* an extended response */ - const char *colon = strchr(buf, ':'); - if (!colon) { diff --git a/packages/gsm/files/tihtc-csq-fix.patch b/packages/gsm/files/tihtc-csq-fix.patch new file mode 100644 index 0000000000..3346d85809 --- /dev/null +++ b/packages/gsm/files/tihtc-csq-fix.patch @@ -0,0 +1,27 @@ +Index: gsm/src/gsmd/vendor_tihtc.c +=================================================================== +--- gsm.orig/src/gsmd/vendor_tihtc.c 2007-06-03 16:26:39.000000000 +0200 ++++ gsm/src/gsmd/vendor_tihtc.c 2007-06-03 16:26:41.000000000 +0200 +@@ -90,6 +90,8 @@ + struct gsmd_evt_auxdata *aux; + struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL, + sizeof(*aux)); ++ static int rssi_table[] = { 0,5,10,15,20,25,99 }; ++ unsigned int i; + + DEBUGP("entering htccsq_parse param=`%s'\n", param); + if (!ucmd) +@@ -98,9 +100,10 @@ + + aux = (struct gsmd_evt_auxdata *) ucmd->buf; + +- /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */ +- /* 2 --> 11 */ +- aux->u.signal.sigq.rssi = atoi(buf); ++ i = atoi(buf); ++ if (i > 6) ++ i = 6; ++ aux->u.signal.sigq.rssi = rssi_table[atoi(buf)]; + aux->u.signal.sigq.ber = 99; + + DEBUGP("sending EVT_SIGNAL\n"); diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb index 0215bb92b9..230d4d6fe5 100644 --- a/packages/gsm/libgsmd_svn.bb +++ b/packages/gsm/libgsmd_svn.bb @@ -4,16 +4,17 @@ LICENSE = "GPL" SECTION = "libs/gsm" PROVIDES += "gsmd" PV = "0.0+svn${SRCDATE}" -PR = "r10" +PR = "r13" SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \ file://gsmd \ - file://default" -S = "${WORKDIR}/gsm" + file://default \ + file://extreplychars.patch;patch=1 \ + file://getopt-wait-interpreter-ready.patch;patch=1 \ + file://alive-start-if-interpreter-ready.patch;patch=1 \ + file://tihtc-csq-fix.patch;patch=1" -SRC_URI_append_magician = " file://plugin.patch;patch=1" -SRC_URI_append_htcuniversal = " file://plugin.patch;patch=1 \ - file://qualcomm-extreply.patch;patch=1" +S = "${WORKDIR}/gsm" inherit autotools pkgconfig update-rc.d diff --git a/packages/gsoap/gsoap_2.7.7.bb b/packages/gsoap/gsoap_2.7.7.bb index 170c251aaf..799c4a13f3 100644 --- a/packages/gsoap/gsoap_2.7.7.bb +++ b/packages/gsoap/gsoap_2.7.7.bb @@ -22,5 +22,4 @@ do_install_append() { done } -PACKAGES = "gsoap-dev" FILES_gsoap-dev = "${bindir}/wsdl2h ${bindir}/soapcpp2 ${libdir}" diff --git a/packages/libmpeg2/libmpeg2-0.4.0b/.mtn2git_empty b/packages/gspcav1/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/libmpeg2/libmpeg2-0.4.0b/.mtn2git_empty +++ b/packages/gspcav1/files/.mtn2git_empty diff --git a/packages/gspcav1/gspcav1-20070110/MS.patch b/packages/gspcav1/files/MS.patch index 588a4bc3da..588a4bc3da 100644 --- a/packages/gspcav1/gspcav1-20070110/MS.patch +++ b/packages/gspcav1/files/MS.patch diff --git a/packages/gspcav1/gspcav1-20070110/Makefile.patch b/packages/gspcav1/files/Makefile.patch index 87262686cb..87262686cb 100644 --- a/packages/gspcav1/gspcav1-20070110/Makefile.patch +++ b/packages/gspcav1/files/Makefile.patch diff --git a/packages/gspcav1/gspcav1_20070110.bb b/packages/gspcav1/gspcav1_20070110.bb index 86cb1010df..e1fc443d36 100644 --- a/packages/gspcav1/gspcav1_20070110.bb +++ b/packages/gspcav1/gspcav1_20070110.bb @@ -4,7 +4,9 @@ PRIORITY = "optional" SECTION = "kernel/modules" LICENSE = "GPL" -SRC_URI = "http://mxhaard.free.fr/spca50x/Download/${PN}-${PV}.tar.gz \ +PR = "r1" + +SRC_URI = "http://mxhaard.free.fr/spca50x/Download/oldrelease/${PN}-${PV}.tar.gz \ file://Makefile.patch;patch=1 \ file://MS.patch;patch=1" diff --git a/packages/gspcav1/gspcav1_20070508.bb b/packages/gspcav1/gspcav1_20070508.bb new file mode 100644 index 0000000000..14c98e3e3a --- /dev/null +++ b/packages/gspcav1/gspcav1_20070508.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "USB Webcam driver for spca5xx chipset family supporting \ +over 100 models of camera" +PRIORITY = "optional" +SECTION = "kernel/modules" +LICENSE = "GPL" + +DEFAULT_PREFERENCE = "-1" + +PR = "r1" + +SRC_URI = "http://mxhaard.free.fr/spca50x/Download/oldrelease/${PN}-${PV}.tar.gz \ + file://Makefile.patch;patch=1 \ + file://MS.patch;patch=1" + +S = "${WORKDIR}/${PN}-${PV}" + +inherit module + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake 'KERNELDIR=${STAGING_KERNEL_DIR}' \ + 'CC=${KERNEL_CC}' \ + 'LD=${KERNEL_LD}' +} + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media + install -m 0644 *${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/usb/media +} diff --git a/packages/gtk+/composite-pixbuf_0.0.bb b/packages/gtk+/composite-pixbuf_0.0.bb new file mode 100644 index 0000000000..729343fb44 --- /dev/null +++ b/packages/gtk+/composite-pixbuf_0.0.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Pixbuf performance test" +LICENSE = "Public domain" +DEPENDS = "gtk+" + +SRC_URI = "http://amelang.net/composite_pixbuf.c" + +S = "${WORKDIR}" + +do_compile() { + ${CC} ${CFLAGS} composite_pixbuf.c -o composite_pixbuf \ + `pkg-config --cflags gdk-2.0` `pkg-config --libs gdk-2.0` `pkg-config --libs x11` `pkg-config --libs pango` \ + -lxcb -lXext -lXinerama -lXrandr -lXcursor -lXfixes -lpangoft2-1.0 -lz -lexpat -lxcb-xlib -lXau -lXdmcp +} + +do_install() { + install -d ${D}${bindir} + install -m 755 composite_pixbuf ${D}${bindir} +} diff --git a/packages/gtk+/gtk-2.10.inc b/packages/gtk+/gtk-2.10.inc index 6f9035055b..7f610294d1 100644 --- a/packages/gtk+/gtk-2.10.inc +++ b/packages/gtk+/gtk-2.10.inc @@ -27,9 +27,11 @@ FILES_${PN}-dbg += " \ ${libdir}/gtk-2.0/${LIBV}/engines/.debug/*" -RRECOMMENDS_${PN} = "glibc-gconv-iso8859-1 ttf-dejavu-sans" -RRECOMMENDS_${PN}_angstrom = "glibc-gconv-iso8859-1 ttf-dejavu-sans gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm" -RRECOMMENDS_${PN}_openzaurus = "glibc-gconv-iso8859-1 ttf-dejavu-sans gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm" +RRECOMMENDS_${PN} = " ttf-dejavu-sans" +RRECOMMENDS_${PN}_angstrom += " gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm" +RRECOMMENDS_${PN}_openzaurus += " gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm" +RRECOMMENDS_${PN}_linux += " glibc-gconv-iso8859-1" + EXTRA_OECONF = "--without-libtiff --disable-xkb --disable-glibtest --enable-display-migration" diff --git a/packages/gtk-engines/gtk-engines_2.2.0.bb b/packages/gtk-engines/gtk-engines_2.2.0.bb deleted file mode 100644 index 5572568f61..0000000000 --- a/packages/gtk-engines/gtk-engines_2.2.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -LICENSE = "GPL" -SECTION = "x11/base" -DESCRIPTION = "GTK theme engines" -DEPENDS = "gtk+" - -PACKAGES += " gtk-engine-pixmap gtk-engine-redmond95 gtk-engine-metal gtk-theme-metal gtk-theme-redmond95" -FILES_gtk-engine-pixmap = "${libdir}/gtk-2.0/*/engines/libpixmap.so" -FILES_gtk-engine-redmond95 = "${libdir}/gtk-2.0/*/engines/libredmond95.so" -FILES_gtk-engine-metal = "${libdir}/gtk-2.0/*/engines/libmetal.so" -FILES_gtk-theme-redmond95 = "${datadir}/themes/Redmond95" -FILES_gtk-theme-metal = "${datadir}/themes/Metal" -DEPENDS_gtk-theme-redmond95 = "gtk-engine-redmond95" -DEPENDS_gtk-theme-metal = "gtk-engine-metal" - -SRC_URI = "${GNOME_MIRROR}/${PN}/2.2/${PN}-${PV}.tar.bz2" - -inherit autotools pkgconfig diff --git a/packages/gtk-engines/gtk-engines_2.6.1.bb b/packages/gtk-engines/gtk-engines_2.6.1.bb deleted file mode 100644 index 6e192d78fd..0000000000 --- a/packages/gtk-engines/gtk-engines_2.6.1.bb +++ /dev/null @@ -1,29 +0,0 @@ -LICENSE = "GPL" -SECTION = "x11/base" -DESCRIPTION = "GTK theme engines" -DEPENDS = "gtk+" - -RDEPENDS_gtk-theme-redmond = "gtk-engine-redmond95" -RDEPENDS_gtk-theme-metal = "gtk-engine-metal" -RDEPENDS_gtk-theme-mist = "gtk-engine-mist" -RDEPENDS_gtk-theme-crux = "gtk-engine-crux-engine" -RDEPENDS_gtk-theme-lighthouseblue = "gtk-engine-lighthouseblue" -RDEPENDS_gtk-theme-thinice = "gtk-engine-thinice" -RDEPENDS_gtk-theme-industrial = "gtk-engine-industrial" - -SRC_URI = "${GNOME_MIRROR}/${PN}/2.6/${PN}-${PV}.tar.bz2" - -inherit autotools pkgconfig - -PACKAGES_DYNAMIC = "gtk-engine-* gtk-theme-*" - -python populate_packages_prepend() { - import os.path - - engines_root = os.path.join(bb.data.getVar('libdir', d, 1), "gtk-2.0/2.4.0/engines") - themes_root = os.path.join(bb.data.getVar('datadir', d, 1), "themes") - - do_split_packages(d, engines_root, '^lib(.*)\.so$', 'gtk-engine-%s', 'GTK %s theme engine', extra_depends='') - do_split_packages(d, themes_root, '(.*)', 'gtk-theme-%s', 'GTK theme %s', allow_dirs=True, extra_depends='') -} - diff --git a/packages/gtk-engines/gtk-engines_2.6.3.bb b/packages/gtk-engines/gtk-engines_2.6.3.bb deleted file mode 100644 index 6e192d78fd..0000000000 --- a/packages/gtk-engines/gtk-engines_2.6.3.bb +++ /dev/null @@ -1,29 +0,0 @@ -LICENSE = "GPL" -SECTION = "x11/base" -DESCRIPTION = "GTK theme engines" -DEPENDS = "gtk+" - -RDEPENDS_gtk-theme-redmond = "gtk-engine-redmond95" -RDEPENDS_gtk-theme-metal = "gtk-engine-metal" -RDEPENDS_gtk-theme-mist = "gtk-engine-mist" -RDEPENDS_gtk-theme-crux = "gtk-engine-crux-engine" -RDEPENDS_gtk-theme-lighthouseblue = "gtk-engine-lighthouseblue" -RDEPENDS_gtk-theme-thinice = "gtk-engine-thinice" -RDEPENDS_gtk-theme-industrial = "gtk-engine-industrial" - -SRC_URI = "${GNOME_MIRROR}/${PN}/2.6/${PN}-${PV}.tar.bz2" - -inherit autotools pkgconfig - -PACKAGES_DYNAMIC = "gtk-engine-* gtk-theme-*" - -python populate_packages_prepend() { - import os.path - - engines_root = os.path.join(bb.data.getVar('libdir', d, 1), "gtk-2.0/2.4.0/engines") - themes_root = os.path.join(bb.data.getVar('datadir', d, 1), "themes") - - do_split_packages(d, engines_root, '^lib(.*)\.so$', 'gtk-engine-%s', 'GTK %s theme engine', extra_depends='') - do_split_packages(d, themes_root, '(.*)', 'gtk-theme-%s', 'GTK theme %s', allow_dirs=True, extra_depends='') -} - diff --git a/packages/gtk-engines/gtk-engines_2.6.5.bb b/packages/gtk-engines/gtk-engines_2.6.5.bb index 6e192d78fd..e795791cfc 100644 --- a/packages/gtk-engines/gtk-engines_2.6.5.bb +++ b/packages/gtk-engines/gtk-engines_2.6.5.bb @@ -1,7 +1,9 @@ -LICENSE = "GPL" -SECTION = "x11/base" DESCRIPTION = "GTK theme engines" +SECTION = "x11/base" +PRIORITY = "optional" +LICENSE = "GPL" DEPENDS = "gtk+" +PR = "r1" RDEPENDS_gtk-theme-redmond = "gtk-engine-redmond95" RDEPENDS_gtk-theme-metal = "gtk-engine-metal" @@ -20,10 +22,11 @@ PACKAGES_DYNAMIC = "gtk-engine-* gtk-theme-*" python populate_packages_prepend() { import os.path - engines_root = os.path.join(bb.data.getVar('libdir', d, 1), "gtk-2.0/2.4.0/engines") + engines_ver = ['gtk-2.0/', gtkbinver_find(d), '/engines'] + + engines_root = os.path.join(bb.data.getVar('libdir', d, 1), ''.join(engines_ver)) themes_root = os.path.join(bb.data.getVar('datadir', d, 1), "themes") do_split_packages(d, engines_root, '^lib(.*)\.so$', 'gtk-engine-%s', 'GTK %s theme engine', extra_depends='') do_split_packages(d, themes_root, '(.*)', 'gtk-theme-%s', 'GTK theme %s', allow_dirs=True, extra_depends='') } - diff --git a/packages/gtk-engines/gtk-smooth-engine_0.5.8.bb b/packages/gtk-engines/gtk-smooth-engine_0.5.8.bb index 95a8d87d9c..28888c45ba 100644 --- a/packages/gtk-engines/gtk-smooth-engine_0.5.8.bb +++ b/packages/gtk-engines/gtk-smooth-engine_0.5.8.bb @@ -1,11 +1,22 @@ -PR = "r0" -LICENSE = "LGPL" -SECTION = "x11/base" DESCRIPTION = "GTK theme engine Smooth" +SECTION = "x11/base" +PRIORITY = "optional" +LICENSE = "LGPL" DEPENDS = "gtk+" - -FILES_${PN} = "${libdir}/gtk-2.0/2.4.0/engines/libsmooth.so" +PR = "r1" SRC_URI = "${SOURCEFORGE_MIRROR}/smooth-engine/${PN}-${PV}.tar.gz" inherit autotools pkgconfig + +python populate_packages_prepend() { + import os.path + + engines_ver = ['gtk-2.0/', gtkbinver_find(d), '/engines'] + + engines_root = os.path.join(bb.data.getVar('libdir', d, 1), ''.join(engines_ver)) + themes_root = os.path.join(bb.data.getVar('datadir', d, 1), "themes") + + do_split_packages(d, engines_root, '^lib(.*)\.so$', 'gtk-engine-%s', 'GTK %s theme engine', extra_depends='') + do_split_packages(d, themes_root, '(.*)', 'gtk-theme-%s', 'GTK theme %s', allow_dirs=True, extra_depends='') +} diff --git a/packages/gtkhtml/gtkhtml-2.0_2.6.3.bb b/packages/gtkhtml/gtkhtml-2.0_2.6.3.bb index 33b0423e25..f44e8b57a6 100644 --- a/packages/gtkhtml/gtkhtml-2.0_2.6.3.bb +++ b/packages/gtkhtml/gtkhtml-2.0_2.6.3.bb @@ -1,22 +1,15 @@ -LICENSE = "GPL" -SECTION = "x11/libs" -DESCRIPTION = "HTML rendering/editing library" +require gtkhtml.inc + DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui gal-2.0" PR = "r0" -inherit gnome - SRC_URI = "http://ftp.debian.org/debian/pool/main/libg/libgtkhtml2/libgtkhtml2_2.6.3.orig.tar.gz" - FILES_${PN} += "${datadir}/gtkhtml-3.0 ${libdir}/gtkhtml/*.so" FILES_${PN}-dev += "${libdir}/gtkhtml" -S = "${WORKDIR}/libgtkhtml2-${PV}" - -EXTRA_OECONF = "--disable-gtk-doc" do_stage() { - mv src/libgtkhtml.pc src/libgtkhtml-2.0.pc || true + mv src/libgtkhtml.pc src/libgtkhtml-2.0.pc || true autotools_stage_all } diff --git a/packages/gtkhtml/gtkhtml-3.0_3.0.10.bb b/packages/gtkhtml/gtkhtml-3.0_3.0.10.bb index d27f72ae4a..66993cec74 100644 --- a/packages/gtkhtml/gtkhtml-3.0_3.0.10.bb +++ b/packages/gtkhtml/gtkhtml-3.0_3.0.10.bb @@ -1,18 +1,12 @@ -LICENSE = "GPL" -SECTION = "x11/libs" -DESCRIPTION = "HTML rendering/editing library" +require gtkhtml.inc + DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui gal-2.0" PR = "r2" -inherit gnome - SRC_URI = "${GNOME_MIRROR}/gtkhtml/3.0/gtkhtml-${PV}.tar.bz2 \ file://fix-missing-colormap.patch;patch=1" FILES_${PN} += "${datadir}/gtkhtml-3.0 ${libdir}/gtkhtml/*.so" FILES_${PN}-dev += "${libdir}/gtkhtml" -S = "${WORKDIR}/gtkhtml-${PV}" - -EXTRA_OECONF = "--disable-gtk-doc" do_stage() { mv src/libgtkhtml.pc src/libgtkhtml-3.0.pc || true diff --git a/packages/gtkhtml/gtkhtml-3.1_3.1.16.bb b/packages/gtkhtml/gtkhtml-3.1_3.1.16.bb index 2b57a0b2c4..1e389dabe0 100644 --- a/packages/gtkhtml/gtkhtml-3.1_3.1.16.bb +++ b/packages/gtkhtml/gtkhtml-3.1_3.1.16.bb @@ -1,15 +1,9 @@ -LICENSE = "GPL" -SECTION = "x11/libs" -DESCRIPTION = "HTML rendering/editing library" -DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui" +require gtkhtml.inc -inherit gnome +DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui" SRC_URI = "${GNOME_MIRROR}/gtkhtml/3.1/gtkhtml-${PV}.tar.bz2" FILES_${PN} += "${datadir}/gtkhtml-3.1" -S = "${WORKDIR}/gtkhtml-${PV}" - -EXTRA_OECONF = "--disable-gtk-doc" do_stage() { mv src/libgtkhtml.pc src/libgtkhtml-3.1.pc || true diff --git a/packages/gtkhtml/gtkhtml-3.6_3.6.2.bb b/packages/gtkhtml/gtkhtml-3.6_3.6.2.bb index 6194529aa0..fd5fde49ed 100644 --- a/packages/gtkhtml/gtkhtml-3.6_3.6.2.bb +++ b/packages/gtkhtml/gtkhtml-3.6_3.6.2.bb @@ -1,15 +1,9 @@ -LICENSE = "GPL" -SECTION = "x11/libs" -DESCRIPTION = "HTML rendering/editing library" -DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui" +require gtkhtml.inc -inherit gnome +DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui" SRC_URI = "${GNOME_MIRROR}/gtkhtml/3.6/gtkhtml-${PV}.tar.bz2" FILES_${PN} += "${datadir}/gtkhtml-3.6" -S = "${WORKDIR}/gtkhtml-${PV}" - -EXTRA_OECONF = "--disable-gtk-doc" do_stage() { mv src/libgtkhtml.pc src/libgtkhtml-3.6.pc || true diff --git a/packages/gtkhtml/gtkhtml-3.8_3.8.2.bb b/packages/gtkhtml/gtkhtml-3.8_3.8.2.bb index 1db83609c2..cc177de08f 100644 --- a/packages/gtkhtml/gtkhtml-3.8_3.8.2.bb +++ b/packages/gtkhtml/gtkhtml-3.8_3.8.2.bb @@ -1,15 +1,9 @@ -LICENSE = "GPL" -SECTION = "x11/libs" -DESCRIPTION = "HTML rendering/editing library" -DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui" +require gtkhtml.inc -inherit gnome +DEPENDS = "gtk+ gail libbonoboui libgnomeprintui libgnomeui" SRC_URI = "${GNOME_MIRROR}/gtkhtml/3.8/gtkhtml-${PV}.tar.bz2" FILES_${PN} += "${datadir}/gtkhtml-3.8" -S = "${WORKDIR}/gtkhtml-${PV}" - -EXTRA_OECONF = "--disable-gtk-doc" do_stage() { mv src/libgtkhtml.pc src/libgtkhtml-3.8.pc || true diff --git a/packages/gtkhtml/gtkhtml-lite-3.0_3.0.10.bb b/packages/gtkhtml/gtkhtml-lite-3.0_3.0.10.bb index 14e6818e7b..44a96d6d64 100644 --- a/packages/gtkhtml/gtkhtml-lite-3.0_3.0.10.bb +++ b/packages/gtkhtml/gtkhtml-lite-3.0_3.0.10.bb @@ -1,17 +1,11 @@ -LICENSE = "GPL" -SECTION = "x11/libs" -DESCRIPTION = "HTML rendering/editing library" +require gtkhtml.inc + DEPENDS = "gtk+ gail libgnomeprint orbit2-native" PR = "r1" -inherit gnome - SRC_URI = "http://stag.mind.be/gtkhtml-lite-3.0.10.tar.bz2" FILES_${PN} += "${datadir}/gtkhtml-3.0 ${libdir}/gtkhtml/*.so" FILES_${PN}-dev += "${libdir}/gtkhtml" -S = "${WORKDIR}/gtkhtml-${PV}" - -EXTRA_OECONF = "--disable-gtk-doc" do_stage() { mv src/libgtkhtml.pc src/libgtkhtml-3.0.pc || true diff --git a/packages/gtkhtml/gtkhtml.inc b/packages/gtkhtml/gtkhtml.inc new file mode 100644 index 0000000000..f7a346a67a --- /dev/null +++ b/packages/gtkhtml/gtkhtml.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "HTML rendering/editing library" +SECTION = "x11/libs" +PRIORITY = "optional" +LICENSE = "GPL" + +inherit gnome + +S = "${WORKDIR}/gtkhtml-${PV}" + +EXTRA_OECONF = "--disable-gtk-doc" diff --git a/packages/gtkmm/gtkmm.inc b/packages/gtkmm/gtkmm.inc index 843274fdc5..f0c6dc093b 100644 --- a/packages/gtkmm/gtkmm.inc +++ b/packages/gtkmm/gtkmm.inc @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.gtkmm.org/" SECTION = "libs" PRIORITY = "optional" LICENSE = "LGPL" -DEPENDS = "glibmm" +DEPENDS = "glibmm gtk+" inherit autotools pkgconfig flow-lossage diff --git a/packages/hal/hal.inc b/packages/hal/hal.inc new file mode 100644 index 0000000000..11a6531951 --- /dev/null +++ b/packages/hal/hal.inc @@ -0,0 +1,10 @@ +DESCRIPTION = "Hardware Abstraction Layer" +HOMEPAGE = "http://freedesktop.org/Software/hal" +SECTION = "unknown" +LICENSE = "GPL LGPL AFL" + +SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz" + +S = "${WORKDIR}/hal-${PV}" + +inherit autotools pkgconfig diff --git a/packages/hal/hal_0.2.98.bb b/packages/hal/hal_0.2.98.bb index 7c8b8b73eb..468a948b1a 100644 --- a/packages/hal/hal_0.2.98.bb +++ b/packages/hal/hal_0.2.98.bb @@ -1,14 +1,7 @@ -SECTION = "unknown" -DESCRIPTION = "Hardware Abstraction Layer" +require hal.inc + DEPENDS = "dbus expat" RDEPENDS += "hotplug" -HOMEPAGE = "http://freedesktop.org/Software/hal" -LICENSE = "GPL LGPL AFL" - -SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz" -S = "${WORKDIR}/hal-${PV}" - -inherit autotools EXTRA_OECONF = "--with-hwdata=${datadir}/hwdata \ --with-expat=${STAGING_LIBDIR}/.. \ diff --git a/packages/hal/hal_0.5.2.bb b/packages/hal/hal_0.5.2.bb index fd29980e56..1ca95e8739 100644 --- a/packages/hal/hal_0.5.2.bb +++ b/packages/hal/hal_0.5.2.bb @@ -1,15 +1,8 @@ -SECTION = "unknown" -DESCRIPTION = "Hardware Abstraction Layer" +require hal.inc + DEPENDS = "dbus expat" RDEPENDS += "hotplug" RRECOMMENDS = "udev-utils" -HOMEPAGE = "http://freedesktop.org/Software/hal" -LICENSE = "GPL LGPL AFL" - -SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz" -S = "${WORKDIR}/hal-${PV}" - -inherit autotools pkgconfig EXTRA_OECONF = "--with-hwdata=${datadir}/hwdata \ --with-expat=${STAGING_LIBDIR}/.. \ diff --git a/packages/hal/hal_0.5.4.bb b/packages/hal/hal_0.5.4.bb index 147439d4c3..1246637f67 100644 --- a/packages/hal/hal_0.5.4.bb +++ b/packages/hal/hal_0.5.4.bb @@ -1,18 +1,11 @@ -SECTION = "unknown" -DESCRIPTION = "Hardware Abstraction Layer" +require hal.inc + DEPENDS = "dbus expat libusb" RDEPENDS += "hotplug" RDEPENDS_hal-device-manager = "python hal python-pygnome" RRECOMMENDS = "udev-utils" -HOMEPAGE = "http://freedesktop.org/Software/hal" -LICENSE = "GPL LGPL AFL" PR = "r1" -SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz" -S = "${WORKDIR}/hal-${PV}" - -inherit autotools pkgconfig - EXTRA_OECONF = "--with-hwdata=${datadir}/hwdata \ --with-expat=${STAGING_LIBDIR}/.. \ --with-dbus-sys=${sysconfdir}/dbus-1/system.d \ diff --git a/packages/hal/hal_0.5.7.bb b/packages/hal/hal_0.5.7.bb index 5933676260..05a3ea010b 100644 --- a/packages/hal/hal_0.5.7.bb +++ b/packages/hal/hal_0.5.7.bb @@ -1,17 +1,11 @@ -DESCRIPTION = "Hardware Abstraction Layer" -HOMEPAGE = "http://freedesktop.org/Software/hal" -SECTION = "unknown" -LICENSE = "GPL LGPL AFL" +require hal.inc + DEPENDS = "dbus expat libusb" RDEPENDS += "hotplug" #RDEPENDS_hal-device-manager = "python hal python-pygnome" RRECOMMENDS = "udev-utils" -SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz \ - file://dbus-fix-api.patch;patch=1" -S = "${WORKDIR}/hal-${PV}" - -inherit autotools pkgconfig +SRC_URI += "file://dbus-fix-api.patch;patch=1" EXTRA_OECONF = "--with-hwdata=${datadir}/hwdata \ --with-expat=${STAGING_LIBDIR}/.. \ diff --git a/packages/hal/hal_0.5.8.1.bb b/packages/hal/hal_0.5.8.1.bb index f608c4018c..d0b888192c 100644 --- a/packages/hal/hal_0.5.8.1.bb +++ b/packages/hal/hal_0.5.8.1.bb @@ -1,7 +1,4 @@ -DESCRIPTION = "Hardware Abstraction Layer" -HOMEPAGE = "http://freedesktop.org/Software/hal" -SECTION = "unknown" -LICENSE = "GPL LGPL AFL" +require hal.inc DEPENDS = "dbus-glib udev intltool expat libusb" RDEPENDS += "udev" @@ -10,12 +7,7 @@ RRECOMMENDS = "udev-utils" PR = "r2" -SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz \ - file://99_hal" - -S = "${WORKDIR}/hal-${PV}" - -inherit autotools pkgconfig +SRC_URI += "file://99_hal" EXTRA_OECONF = "--with-hwdata=${datadir}/hwdata \ --with-expat=${STAGING_LIBDIR}/.. \ diff --git a/packages/hal/hal_0.5.9.bb b/packages/hal/hal_0.5.9.bb index bb9dc82b52..79d53970f3 100644 --- a/packages/hal/hal_0.5.9.bb +++ b/packages/hal/hal_0.5.9.bb @@ -1,7 +1,4 @@ -DESCRIPTION = "Hardware Abstraction Layer" -HOMEPAGE = "http://freedesktop.org/Software/hal" -SECTION = "unknown" -LICENSE = "GPL LGPL AFL" +require hal.inc DEPENDS = "virtual/kernel dbus-glib udev intltool expat libusb" RDEPENDS += "udev hal-info" @@ -10,12 +7,7 @@ RRECOMMENDS = "udev-utils" PR = "r1" -SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz \ - file://99_hal" - -S = "${WORKDIR}/hal-${PV}" - -inherit autotools pkgconfig +SRC_URI += "file://99_hal" EXTRA_OECONF = "--with-hwdata=${datadir}/hwdata \ --with-expat=${STAGING_LIBDIR}/.. \ diff --git a/packages/helloworld/helloworld_1.0.0.bb b/packages/helloworld/helloworld_1.0.0.bb index 99ebc051fd..da4daa408d 100644 --- a/packages/helloworld/helloworld_1.0.0.bb +++ b/packages/helloworld/helloworld_1.0.0.bb @@ -22,29 +22,3 @@ do_install () { install -d ${D}${base_bindir} ln -sf ${bindir}/helloworld ${D}${base_bindir}/init } - -DESCRIPTION = "Minimal statically compiled Hello world!" -LICENSE = "GPL" -PR = "r0" - -S = "${WORKDIR}/${P}" - -do_fetch () { - mkdir -p ${WORKDIR}/${P} - cd ${WORKDIR}/${P} - echo -e "#include <stdio.h>\nint main(void)\n{\n\tprintf(\"Hello world!\\\n\");\twhile(1);\n\treturn 0;\n}\n" >helloworld.c -} - -do_compile () { - ${CC} -o helloworld helloworld.c -static -} - -do_install () { - install -d ${D}${bindir} - install -m 0755 helloworld ${D}${bindir}/ - # /bin/init is on purpose, it is tried after /sbin/init and /etc/init - # so if a sysvinit is installed, it will be used instead of helloworld - install -d ${D}${base_bindir} - ln -sf ${bindir}/helloworld ${D}${base_bindir}/init -} - diff --git a/packages/linux/linux-dht-walnut-2.6.12.6/.mtn2git_empty b/packages/iana-etc/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/linux-dht-walnut-2.6.12.6/.mtn2git_empty +++ b/packages/iana-etc/.mtn2git_empty diff --git a/packages/iana-etc/iana-etc_2.20.bb b/packages/iana-etc/iana-etc_2.20.bb new file mode 100644 index 0000000000..ccf0b8da8a --- /dev/null +++ b/packages/iana-etc/iana-etc_2.20.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "The iana-etc package provides the Unix/Linux /etc/services and /etc/protocols files." +AUTHOR = "Seth W. Klein" +HOMEPAGE = "http://www.sethwklein.net/projects/iana-etc/" +SECTION = "base" +LICENSE = "OPL" + +SRC_URI = "http://www.sethwklein.net/projects/iana-etc/downloads/${P}.tar.bz2" + +do_make(){ + oe_runmake 'STRIP=yes' +} + +do_install(){ + oe_runmake 'DESTDIR=${D}' install +} diff --git a/packages/icu/icu_3.6.bb b/packages/icu/icu_3.6.bb index 03abbaa958..39162d2179 100644 --- a/packages/icu/icu_3.6.bb +++ b/packages/icu/icu_3.6.bb @@ -1,13 +1,16 @@ require icu-3.6.inc +DEPENDS += "icu-native" + PR = "r1" do_configure_append() { for i in */Makefile */*.inc */*/Makefile */*/*.inc ; do - sed -i -e 's:$(INVOKE) $(BINDIR)/:$(INVOKE) :g' $i - sed -i -e 's:$(BINDIR)/::g' $i + sed -i -e 's:$(INVOKE) $(BINDIR)/:$(INVOKE) :g' $i + sed -i -e 's:$(BINDIR)/::g' $i done - sed -i -e 's:$(BINDIR)/::g' extra/uconv/pkgdata.inc + sed -i -e 's:$(BINDIR)/::g' extra/uconv/pkgdata.inc || true + sed -i -e 's:$(BINDIR)/::g' extra/uconv/pkgdata.inc.in || true } diff --git a/packages/images/angstrom-minimal-image.bb b/packages/images/angstrom-minimal-image.bb index 90f46a1e01..c79bff25e2 100644 --- a/packages/images/angstrom-minimal-image.bb +++ b/packages/images/angstrom-minimal-image.bb @@ -1,15 +1,11 @@ #Angstrom minimalist image #gives you a small images with ssh access LICENSE = "MIT" -PR = "r0" +PR = "r1" ANGSTROM_EXTRA_INSTALL ?= "" DISTRO_SSH_DAEMON ?= "dropbear" -DEPENDS = "task-base \ - ${DISTRO_SSH_DAEMON} \ - " - RDEPENDS = "task-boot \ ${DISTRO_SSH_DAEMON} \ " diff --git a/packages/images/hentges-console-image.bb b/packages/images/hentges-console-image.bb new file mode 100644 index 0000000000..87381a4c77 --- /dev/null +++ b/packages/images/hentges-console-image.bb @@ -0,0 +1,37 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: hentges-console-image.bb +# Date: 20070516 (YMD) + +DESCRIPTION = "Hentges Console Image" +HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" +LICENSE = "GPL" + +###################################################################################### + +PV = "${HENTGES_PV}" +PR = "${HENTGES_PR}" + +###################################################################################### + +export IMAGE_NAME = "hentges-console-image" +export IMAGE_LINGUAS = "" +export PACKAGE_INSTALL = "${RDEPENDS}" + +###################################################################################### + +DEPENDS = "task-base \ + task-hentges-base" + +RDEPENDS = "task-base \ + task-hentges-base" + +###################################################################################### + +inherit image + + diff --git a/packages/images/hentges-x11-image.bb b/packages/images/hentges-x11-image.bb new file mode 100644 index 0000000000..475f9f0ea9 --- /dev/null +++ b/packages/images/hentges-x11-image.bb @@ -0,0 +1,47 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: hentges-x11-image.bb +# Date: 20070522 (YMD) + +DESCRIPTION = "Hentges X11 Image" +HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" +LICENSE = "MIT" + +###################################################################################### + +PV = "${HENTGES_PV}" +PR = "${HENTGES_PR}" + +###################################################################################### + +export IMAGE_NAME = "hentges-x11-image" +export IMAGE_LINGUAS = "" +export PACKAGE_INSTALL = "${RDEPENDS}" + +###################################################################################### + +PREFERRED_PROVIDER_libgpewidget ?= "libgpewidget" +PREFERRED_PROVIDER_tslib ?= "tslib" +PREFERRED_PROVIDER_virtual/libsdl ?= "libsdl-x11" +PREFERRED_PROVIDER_virtual/libxine ?= "libxine-x11" +PREFERRED_PROVIDER_virtual/libx11 ?= "diet-x11" + +###################################################################################### + +DEPENDS = "task-base \ + task-hentges-base \ + task-hentges-x11" + +RDEPENDS = "task-base \ + task-hentges-base \ + task-hentges-x11" + +###################################################################################### + +inherit image + + diff --git a/packages/images/initramfs-image.bb b/packages/images/initramfs-image.bb new file mode 100644 index 0000000000..1b60405e74 --- /dev/null +++ b/packages/images/initramfs-image.bb @@ -0,0 +1,15 @@ +# Sample initramfs image +LICENSE = "MIT" +PR = "r0" + +#RDEPENDS = "initramfs-boot busybox kernel-module-uinput uclibc libgcc1" +RDEPENDS = "initramfs-nfsboot busybox-static kernel-module-uinput" + +export IMAGE_BASENAME = "initramfs-image" +export IMAGE_LINGUAS = "" + +PACKAGE_INSTALL = "${RDEPENDS}" +# Install only ${PACKAGE_INSTALL}, not even deps +PACKAGE_INSTALL_NO_DEPS = "1" + +inherit image diff --git a/packages/linux/linux-dht-walnut-2.6.12/.mtn2git_empty b/packages/initrdscripts/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/linux-dht-walnut-2.6.12/.mtn2git_empty +++ b/packages/initrdscripts/.mtn2git_empty diff --git a/packages/pointercal/files/h2200/.mtn2git_empty b/packages/initrdscripts/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pointercal/files/h2200/.mtn2git_empty +++ b/packages/initrdscripts/files/.mtn2git_empty diff --git a/packages/initrdscripts/files/nfsboot.sh b/packages/initrdscripts/files/nfsboot.sh new file mode 100644 index 0000000000..bb689fa3b8 --- /dev/null +++ b/packages/initrdscripts/files/nfsboot.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "Starting initramfs boot..." +mkdir /proc +mount -t proc proc /proc +ifconfig eth0 192.168.20.230 +mkdir /mnt +mount -t nfs 192.168.20.210:/home/nfs/Angstrom-opie-image-test-h4000 /mnt +cd /mnt +exec switch_root -c /dev/console /mnt /sbin/init diff --git a/packages/initrdscripts/initramfs-nfsboot_0.1.bb b/packages/initrdscripts/initramfs-nfsboot_0.1.bb new file mode 100644 index 0000000000..1a4d48813b --- /dev/null +++ b/packages/initrdscripts/initramfs-nfsboot_0.1.bb @@ -0,0 +1,8 @@ +SRC_URI = "file://nfsboot.sh" +PR = "r0" + +do_install() { + install -m 0755 ${WORKDIR}/nfsboot.sh ${D}/init +} + +FILES_${PN} += " /init " diff --git a/packages/initscripts/initscripts-1.0/mountall.sh b/packages/initscripts/initscripts-1.0/mountall.sh index b5cb85a1e9..65d5d26b24 100755 --- a/packages/initscripts/initscripts-1.0/mountall.sh +++ b/packages/initscripts/initscripts-1.0/mountall.sh @@ -41,5 +41,17 @@ then swapon -a 2> /dev/null fi +# A missing homedirectory for root can cause all sorts of problems. +# This can happen after user formats his /home partition for example + +if test -e /etc/passwd +then + ROOT_HOME="`cat /etc/passwd|grep ^root | awk '{split($0,x,":");printf("%s\n",x[6])}'`" + + if test -n "$ROOT_HOME" + then + ! test -d "$ROOT_HOME" && mkdir -p "$ROOT_HOME" + fi +fi : exit 0 diff --git a/packages/initscripts/initscripts_1.0.bb b/packages/initscripts/initscripts_1.0.bb index d814e937db..f979a50c27 100644 --- a/packages/initscripts/initscripts_1.0.bb +++ b/packages/initscripts/initscripts_1.0.bb @@ -4,7 +4,7 @@ PRIORITY = "required" DEPENDS = "makedevs" RDEPENDS = "makedevs" LICENSE = "GPL" -PR = "r91" +PR = "r92" SRC_URI = "file://halt \ file://ramdisk \ diff --git a/packages/intltool/intltool-native_0.30.bb b/packages/intltool/intltool-native_0.30.bb index 7cf3c4e11f..05f7efdda4 100644 --- a/packages/intltool/intltool-native_0.30.bb +++ b/packages/intltool/intltool-native_0.30.bb @@ -1,4 +1,4 @@ -SECTION = "devel" require intltool_${PV}.bb + inherit native DEPENDS = "libxml-parser-perl-native" diff --git a/packages/intltool/intltool-native_0.31.bb b/packages/intltool/intltool-native_0.31.bb index 7cf3c4e11f..05f7efdda4 100644 --- a/packages/intltool/intltool-native_0.31.bb +++ b/packages/intltool/intltool-native_0.31.bb @@ -1,4 +1,4 @@ -SECTION = "devel" require intltool_${PV}.bb + inherit native DEPENDS = "libxml-parser-perl-native" diff --git a/packages/intltool/intltool-native_0.34.bb b/packages/intltool/intltool-native_0.34.bb index 7cf3c4e11f..05f7efdda4 100644 --- a/packages/intltool/intltool-native_0.34.bb +++ b/packages/intltool/intltool-native_0.34.bb @@ -1,4 +1,4 @@ -SECTION = "devel" require intltool_${PV}.bb + inherit native DEPENDS = "libxml-parser-perl-native" diff --git a/packages/intltool/intltool-native_0.35.0.bb b/packages/intltool/intltool-native_0.35.0.bb index fdd2652e11..bac5378113 100644 --- a/packages/intltool/intltool-native_0.35.0.bb +++ b/packages/intltool/intltool-native_0.35.0.bb @@ -1,7 +1,7 @@ -SECTION = "devel" require intltool_${PV}.bb + inherit native DEPENDS = "libxml-parser-perl-native" -export PERL="/usr/bin/env perl" +export PERL = "/usr/bin/env perl" SRC_URI_append = " file://intltool-nowarn.patch;patch=1" diff --git a/packages/intltool/intltool.inc b/packages/intltool/intltool.inc new file mode 100644 index 0000000000..f4de1ff4aa --- /dev/null +++ b/packages/intltool/intltool.inc @@ -0,0 +1,13 @@ +DESCRIPTION = "Utility scripts for internationalizing XML" +PRIORITY = "optional" +SECTION = "devel" +LICENSE = "GPL" + +SRC_URI = "${GNOME_MIRROR}/intltool/${PV}/intltool-${PV}.tar.bz2" +S = "${WORKDIR}/intltool-${PV}" + +inherit autotools pkgconfig + +do_stage() { + install -m 0644 intltool.m4 ${STAGING_DATADIR}/aclocal/ +} diff --git a/packages/intltool/intltool_0.30.bb b/packages/intltool/intltool_0.30.bb index f1660e7262..e48262574b 100644 --- a/packages/intltool/intltool_0.30.bb +++ b/packages/intltool/intltool_0.30.bb @@ -1,12 +1 @@ -SECTION = "devel" -DESCRIPTION = "Utility scripts for internationalizing XML" -LICENSE = "GPL" - -SRC_URI = "${GNOME_MIRROR}/intltool/${PV}/intltool-${PV}.tar.bz2" -S = "${WORKDIR}/intltool-${PV}" - -inherit autotools pkgconfig - -do_stage() { - install -m 0644 intltool.m4 ${STAGING_DATADIR}/aclocal/ -} +require intltool.inc diff --git a/packages/intltool/intltool_0.31.bb b/packages/intltool/intltool_0.31.bb index f1660e7262..e48262574b 100644 --- a/packages/intltool/intltool_0.31.bb +++ b/packages/intltool/intltool_0.31.bb @@ -1,12 +1 @@ -SECTION = "devel" -DESCRIPTION = "Utility scripts for internationalizing XML" -LICENSE = "GPL" - -SRC_URI = "${GNOME_MIRROR}/intltool/${PV}/intltool-${PV}.tar.bz2" -S = "${WORKDIR}/intltool-${PV}" - -inherit autotools pkgconfig - -do_stage() { - install -m 0644 intltool.m4 ${STAGING_DATADIR}/aclocal/ -} +require intltool.inc diff --git a/packages/intltool/intltool_0.34.bb b/packages/intltool/intltool_0.34.bb index f1660e7262..e48262574b 100644 --- a/packages/intltool/intltool_0.34.bb +++ b/packages/intltool/intltool_0.34.bb @@ -1,12 +1 @@ -SECTION = "devel" -DESCRIPTION = "Utility scripts for internationalizing XML" -LICENSE = "GPL" - -SRC_URI = "${GNOME_MIRROR}/intltool/${PV}/intltool-${PV}.tar.bz2" -S = "${WORKDIR}/intltool-${PV}" - -inherit autotools pkgconfig - -do_stage() { - install -m 0644 intltool.m4 ${STAGING_DATADIR}/aclocal/ -} +require intltool.inc diff --git a/packages/intltool/intltool_0.35.0.bb b/packages/intltool/intltool_0.35.0.bb index de8705ccf0..6dea51a5fc 100644 --- a/packages/intltool/intltool_0.35.0.bb +++ b/packages/intltool/intltool_0.35.0.bb @@ -1,18 +1,8 @@ -SECTION = "devel" -DESCRIPTION = "Utility scripts for internationalizing XML" -LICENSE = "GPL" +require intltool.inc + DEPENDS = "libxml-parser-perl-native" #RDEPENDS = "libxml-parser-perl" PR = "r1" RRECOMMENDS = "perl-modules" - -SRC_URI = "${GNOME_MIRROR}/intltool/0.35/intltool-${PV}.tar.bz2" -S = "${WORKDIR}/intltool-${PV}" - -inherit autotools pkgconfig - -do_stage() { - install -m 0644 intltool.m4 ${STAGING_DATADIR}/aclocal/ -} diff --git a/packages/intltool/intltool_0.35.2.bb b/packages/intltool/intltool_0.35.2.bb index daba37a9da..6626ed54fe 100644 --- a/packages/intltool/intltool_0.35.2.bb +++ b/packages/intltool/intltool_0.35.2.bb @@ -1,18 +1,8 @@ -SECTION = "devel" -DESCRIPTION = "Utility scripts for internationalizing XML" -LICENSE = "GPL" +require intltool.inc + DEPENDS = "libxml-parser-perl-native" #RDEPENDS = "libxml-parser-perl" PR = "r0" RRECOMMENDS = "perl-modules" - -SRC_URI = "${GNOME_MIRROR}/intltool/0.35/intltool-${PV}.tar.bz2" -S = "${WORKDIR}/intltool-${PV}" - -inherit autotools pkgconfig - -do_stage() { - install -m 0644 intltool.m4 ${STAGING_DATADIR}/aclocal/ -} diff --git a/packages/iperf/iperf_2.0.2.bb b/packages/iperf/iperf_2.0.2.bb index 357ac19dd0..c54bafe70d 100644 --- a/packages/iperf/iperf_2.0.2.bb +++ b/packages/iperf/iperf_2.0.2.bb @@ -13,6 +13,7 @@ S="${WORKDIR}/iperf-${PV}" # --disable-threads is needed on epia/x86 with uclibc do_configure() { + gnu-configize oe_runconf --exec-prefix=${STAGING_DIR} --disable-threads } diff --git a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb index 03a381387e..c57c14333a 100644 --- a/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb +++ b/packages/ipkg-utils/ipkg-utils-native_1.6+cvs20050404.bb @@ -1,15 +1,14 @@ require ipkg-utils_${PV}.bb -SRC_URI += "file://ipkg-utils-fix.patch;patch=1 \ - file://ipkg-py-sane-vercompare.patch;patch=1" RDEPENDS = "" -PR = "r9" +PR = "r13" inherit native # Avoid circular dependencies from package_ipk.bbclass PACKAGES = "" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ipkg-utils" +INSTALL += "arfile.py" do_stage() { for i in ${INSTALL}; do diff --git a/packages/ipkg-utils/ipkg-utils/index_speedup.patch b/packages/ipkg-utils/ipkg-utils/index_speedup.patch deleted file mode 100644 index bef28a9df1..0000000000 --- a/packages/ipkg-utils/ipkg-utils/index_speedup.patch +++ /dev/null @@ -1,53 +0,0 @@ -Index: ipkg-utils/ipkg-make-index -=================================================================== ---- ipkg-utils.orig/ipkg-make-index 2005-03-20 18:10:54.000000000 +0000 -+++ ipkg-utils/ipkg-make-index 2006-07-24 09:18:16.000000000 +0100 -@@ -37,6 +37,21 @@ - if os.path.exists(pkg_dir + "/" + filename + ".asc"): - os.rename(pkg_dir + "/" + filename + ".asc", locale_dir + "/" + filename + ".asc") - -+def md5sum(file): -+ import md5 -+ sum = md5.new() -+ f = open(file, "r") -+ while 1: -+ data = f.read(1024) -+ if not data: break -+ sum.update(data) -+ f.close() -+ if sys.version[:1] > '2': -+ # when using Python 2.0 or newer -+ return sum.hexdigest() -+ else: -+ return string.join(map((lambda x:"%02x" % ord(x)),sum.digest()),'') -+ - old_filename = None - packages_filename = None - filelist_filename = "Packages.filelist" -@@ -87,7 +102,7 @@ - files.sort() - for filename in files: - basename = os.path.basename(filename) -- if old_pkg_hash.has_key(basename): -+ if old_pkg_hash.has_key(basename) and old_pkg_hash[basename].md5 == md5sum(filename) and old_pkg_hash[basename].size == os.stat(filename)[6]: - if (verbose): - sys.stderr.write("Found %s in Packages\n" % (filename,)) - pkg = old_pkg_hash[basename] -Index: ipkg-utils/ipkg.py -=================================================================== ---- ipkg-utils.orig/ipkg.py 2005-01-20 23:09:10.000000000 +0000 -+++ ipkg-utils/ipkg.py 2006-07-24 09:16:44.000000000 +0100 -@@ -210,8 +210,13 @@ - value = value + '\n' + line - if name == 'size': - self.size = int(value) -+ elif name == 'md5sum': -+ self.md5 = value - elif self.__dict__.has_key(name): - self.__dict__[name] = value -+ else: -+ print "Lost field %s, %s" % (name,value) -+ - if line[0] == '\n': - return # consumes one blank line at end of package descriptoin - else: diff --git a/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch b/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch new file mode 100644 index 0000000000..9f9b9359ce --- /dev/null +++ b/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch @@ -0,0 +1,97 @@ +--- + ipkg-make-index | 31 +++++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) + +Index: ipkg-utils/ipkg-make-index +=================================================================== +--- ipkg-utils.orig/ipkg-make-index 2007-05-26 23:45:56.000000000 +0100 ++++ ipkg-utils/ipkg-make-index 2007-05-26 23:47:25.000000000 +0100 +@@ -40,6 +40,7 @@ def to_locale(filename, locale): + old_filename = None + packages_filename = None + filelist_filename = "Packages.filelist" ++stamplist_filename = "Packages.stamps" + opt_s = 0 + opt_m = 0 + (opts, remaining_args) = getopt.getopt(sys.argv[1:], "hl:p:vsmr:L:") +@@ -50,6 +51,7 @@ for (optkey, optval) in opts: + opt_s = 1 + if optkey == '-p': + packages_filename = optval ++ stamplist_filename = optval + ".stamps" + if optkey == '-l': + filelist_filename = optval + if optkey == '-v': +@@ -72,6 +74,7 @@ old_pkg_hash = {} + if packages_filename and not old_filename and os.path.exists(packages_filename): + old_filename = packages_filename + ++pkgsStamps = {} + if old_filename: + if (verbose): + sys.stderr.write("Reading package list from " + old_filename + "\n") +@@ -80,6 +83,14 @@ if old_filename: + for k in old_packages.packages.keys(): + p = old_packages.packages[k] + old_pkg_hash[p.filename] = p ++ try: ++ f = open(stamplist_filename, "r") ++ for l in f: ++ l = l.strip() ++ s, f = l.split(" ", 1) ++ pkgsStamps[f] = int(s) ++ except IOError: ++ pass + + if (verbose): + sys.stderr.write("Reading in all the package info from %s\n" % (pkg_dir, )) +@@ -87,11 +98,17 @@ files=glob(pkg_dir + '/*.ipk') + glob(pk + files.sort() + for filename in files: + basename = os.path.basename(filename) ++ pkg = None ++ fnameStat = os.stat(filename) + if old_pkg_hash.has_key(basename): +- if (verbose): ++ if pkgsStamps.has_key(basename) and fnameStat.st_mtime == pkgsStamps[basename]: ++ if (verbose): + sys.stderr.write("Found %s in Packages\n" % (filename,)) +- pkg = old_pkg_hash[basename] +- else: ++ pkg = old_pkg_hash[basename] ++ else: ++ sys.stderr.write("Found %s in Packages, but mtime differs - re-reading\n" % (filename,)) ++ ++ if not pkg: + if (verbose): + sys.stderr.write("Reading info for package %s\n" % (filename,)) + pkg = ipkg.Package(filename) +@@ -101,6 +118,7 @@ for filename in files: + else: + old_filename = "" + s = packages.add_package(pkg) ++ pkgsStamps[basename] = fnameStat.st_mtime + if s == 0: + if old_filename: + # old package was displaced by newer +@@ -114,6 +132,11 @@ for filename in files: + if opt_s: + print filename + ++pkgsStampsFile = open(stamplist_filename, "w") ++for f in pkgsStamps.keys(): ++ pkgsStampsFile.write("%d %s\n" % (pkgsStamps[f], f)) ++pkgsStampsFile.close() ++ + if opt_s: + sys.exit(0) + +@@ -154,7 +177,7 @@ if packages_filename: + os.rename(tmp_packages_filename, packages_filename) + os.rename(tmp_gzip_filename, gzip_filename) + +-if verbose: ++if verbose: + sys.stderr.write("Generate Packages.filelist file\n") + files = {} + names = packages.packages.keys() diff --git a/packages/ipkg-utils/ipkg-utils-native/ipkg-py-sane-vercompare.patch b/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch index 00ee391405..00ee391405 100644 --- a/packages/ipkg-utils/ipkg-utils-native/ipkg-py-sane-vercompare.patch +++ b/packages/ipkg-utils/ipkg-utils/ipkg-py-sane-vercompare.patch diff --git a/packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch b/packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch new file mode 100644 index 0000000000..25eb2cce6f --- /dev/null +++ b/packages/ipkg-utils/ipkg-utils/ipkg-py-tarfile.patch @@ -0,0 +1,309 @@ +--- + arfile.py | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + ipkg.py | 106 ++++++++++++++++++++++++++--------------------------- + setup.py | 2 - + 3 files changed, 177 insertions(+), 55 deletions(-) + +Index: ipkg-utils/arfile.py +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ ipkg-utils/arfile.py 2007-05-26 23:46:59.000000000 +0100 +@@ -0,0 +1,124 @@ ++""" ++arfile - A module to parse GNU ar archives. ++ ++Copyright (c) 2006-7 Paul Sokolovsky ++This file is released under the terms ++of GNU General Public License v2 or later. ++""" ++import sys ++import os ++import tarfile ++ ++ ++class FileSection: ++ "A class which allows to treat portion of file as separate file object." ++ ++ def __init__(self, f, offset, size): ++ self.f = f ++ self.offset = offset ++ self.size = size ++ self.seek(0, 0) ++ ++ def seek(self, offset, whence = 0): ++# print "seek(%x, %d)" % (offset, whence) ++ if whence == 0: ++ return self.f.seek(offset + self.offset, whence) ++ elif whence == 1: ++ return self.f.seek(offset, whence) ++ elif whence == 2: ++ return self.f.seek(self.offset + self.size + offset, 0) ++ else: ++ assert False ++ ++ def tell(self): ++# print "tell()" ++ return self.f.tell() - self.offset ++ ++ def read(self, size = -1): ++# print "read(%d)" % size ++ return self.f.read(size) ++ ++class ArFile: ++ ++ def __init__(self, f): ++ self.f = f ++ self.directory = {} ++ self.directoryRead = False ++ ++ signature = self.f.readline() ++ assert signature == "!<arch>\n" ++ self.directoryOffset = self.f.tell() ++ ++ def open(self, fname): ++ if self.directory.has_key(fname): ++ return FileSection(self.f, self.directory[fname][-1], int(self.directory[fname][5])) ++ ++ if self.directoryRead: ++ raise IOError, (2, "AR member not found: " + fname) ++ ++ f = self._scan(fname) ++ if f == None: ++ raise IOError, (2, "AR member not found: " + fname) ++ return f ++ ++ ++ def _scan(self, fname): ++ self.f.seek(self.directoryOffset, 0) ++ ++ while True: ++ l = self.f.readline() ++ if not l: ++ self.directoryRead = True ++ return None ++ ++ if l == "\n": ++ l = self.f.readline() ++ if not l: break ++ descriptor = l.split() ++# print descriptor ++ size = int(descriptor[5]) ++ memberName = descriptor[0][:-1] ++ self.directory[memberName] = descriptor + [self.f.tell()] ++# print "read:", memberName ++ if memberName == fname: ++ # Record directory offset to start from next time ++ self.directoryOffset = self.f.tell() + size ++ return FileSection(self.f, self.f.tell(), size) ++ ++ # Skip data and loop ++ data = self.f.seek(size, 1) ++# print hex(f.tell()) ++ ++ ++if __name__ == "__main__": ++ if None: ++ f = open(sys.argv[1], "rb") ++ ++ ar = ArFile(f) ++ tarStream = ar.open("data.tar.gz") ++ print "--------" ++ tarStream = ar.open("data.tar.gz") ++ print "--------" ++ tarStream = ar.open("control.tar.gz") ++ print "--------" ++ tarStream = ar.open("control.tar.gz2") ++ ++ sys.exit(0) ++ ++ ++ dir = "." ++ if len(sys.argv) > 1: ++ dir = sys.argv[1] ++ for f in os.listdir(dir): ++ if not f.endswith(".ipk"): continue ++ ++ print "=== %s ===" % f ++ f = open(dir + "/" + f, "rb") ++ ++ ar = ArFile(f) ++ tarStream = ar.open("control.tar.gz") ++ tarf = tarfile.open("control.tar.gz", "r", tarStream) ++ #tarf.list() ++ ++ f2 = tarf.extractfile("control") ++ print f2.read() +Index: ipkg-utils/setup.py +=================================================================== +--- ipkg-utils.orig/setup.py 2007-05-26 23:45:55.000000000 +0100 ++++ ipkg-utils/setup.py 2007-05-26 23:46:59.000000000 +0100 +@@ -16,6 +16,6 @@ distutils.core.setup( name = 'ipkg-utils + platforms = 'POSIX', + keywords = 'ipkg familiar', + url = 'http://www.handhelds.org/sources.html/', +- py_modules = [ 'ipkg' ], ++ py_modules = [ 'ipkg', 'arfile' ], + scripts = ['ipkg-compare-indexes', 'ipkg-make-index', 'ipkg-update-index', 'ipkg-build', 'ipkg-unbuild', 'ipkg-upload'] + ) +Index: ipkg-utils/ipkg.py +=================================================================== +--- ipkg-utils.orig/ipkg.py 2007-05-26 23:46:55.000000000 +0100 ++++ ipkg-utils/ipkg.py 2007-05-26 23:45:20.000000000 +0100 +@@ -41,6 +41,8 @@ import re + import string + import commands + from stat import ST_SIZE ++import arfile ++import tarfile + + class Version: + """A class for holding parsed package version information.""" +@@ -131,78 +133,61 @@ class Package: + self.section = None + self.filename_header = None + self.file_list = [] +- self.md5 = None ++ # md5 is lazy attribute, computed on demand ++ #self.md5 = None + self.size = None + self.installed_size = None + self.filename = None + self.isdeb = 0 ++ self.fn = fn + + if fn: + # see if it is deb format +- f = open(fn, "r") ++ f = open(fn, "rb") + magic = f.read(4) +- f.close() ++ f.seek(0, 0) + if (magic == "!<ar"): + self.isdeb = 1 + +- # compute the MD5. +- f = open(fn, "r") +- sum = md5.new() +- while 1: +- data = f.read(1024) +- if not data: break +- sum.update(data) +- f.close() +- if sys.version[:1] > '2': +- # when using Python 2.0 or newer +- self.md5 = sum.hexdigest() +- else: +- self.md5 = string.join(map((lambda x:"%02x" % ord(x)),sum.digest()),'') +- stat = os.stat(fn) +- self.size = stat[ST_SIZE] ++ + self.filename = os.path.basename(fn) ++ assert self.isdeb == 1, "Old ipk format (non-deb) is unsupported" ++ + ## sys.stderr.write(" extracting control.tar.gz from %s\n"% (fn,)) +- if self.isdeb: +- control = os.popen("ar p "+fn+" control.tar.gz | tar xfzO - './control'","r") +- else: +- control = os.popen("tar xfzO "+fn+" 'control.tar.gz' | tar xfzO - './control'","r") +- line = control.readline() +- while 1: +- if not line: break +- line = string.rstrip(line) +- lineparts = re.match(r'([\w-]*?):\s*(.*)', line) +- if lineparts: +- name = string.lower(lineparts.group(1)) +- value = lineparts.group(2) +- while 1: +- line = control.readline() +- if not line: break +- if line[0] != ' ': break +- line = string.rstrip(line) +- value = value + '\n' + line +- # don't allow package to override its own filename +- if name == "filename": +- self.filename_header = value +- else: +- if self.__dict__.has_key(name): +- self.__dict__[name] = value +- else: +- line = control.readline() ++ ++ ar = arfile.ArFile(f) ++ tarStream = ar.open("control.tar.gz") ++ tarf = tarfile.open("control.tar.gz", "r", tarStream) ++ ++ try: ++ control = tarf.extractfile("control") ++ except KeyError: ++ control = tarf.extractfile("./control") ++ self.read_control(control) + control.close() +- if self.isdeb: +- data = os.popen("ar p "+fn+" data.tar.gz | tar tfz -","r") +- else: +- data = os.popen("tar xfzO "+fn+" '*data.tar.gz' | tar tfz -","r") +- while 1: +- line = data.readline() +- if not line: break +- self.file_list.append(string.rstrip(line)) +- data.close() + + self.scratch_dir = None + self.file_dir = None + self.meta_dir = None + ++ def __getattr__(self, name): ++ if name == "md5": ++ self._computeFileMD5() ++ return self.md5 ++ else: ++ raise AttributeError, name ++ ++ def _computeFileMD5(self): ++ # compute the MD5. ++ f = open(self.fn, "rb") ++ sum = md5.new() ++ while 1: ++ data = f.read(1024) ++ if not data: break ++ sum.update(data) ++ f.close() ++ self.md5 = sum.hexdigest() ++ + def read_control(self, control): + import os + +@@ -221,9 +203,15 @@ class Package: + value = value + '\n' + line + if name == 'size': + self.size = int(value) ++ elif name == 'md5sum': ++ self.md5 = value + elif self.__dict__.has_key(name): + self.__dict__[name] = value +- if line[0] == '\n': ++ else: ++ #print "Lost field %s, %s" % (name,value) ++ pass ++ ++ if line and line[0] == '\n': + return # consumes one blank line at end of package descriptoin + else: + line = control.readline() +@@ -314,6 +302,16 @@ class Package: + return self.section + + def get_file_list(self): ++ if not self.fn: ++ return [] ++ f = open(self.fn, "rb") ++ ar = arfile.ArFile(f) ++ tarStream = ar.open("data.tar.gz") ++ tarf = tarfile.open("data.tar.gz", "r", tarStream) ++ self.file_list = tarf.getnames() ++ self.file_list = map(lambda a: ["./", ""][a.startswith("./")] + a, self.file_list) ++ ++ f.close() + return self.file_list + + def write_package(self, dirname): diff --git a/packages/ipkg-utils/ipkg-utils-native/ipkg-utils-fix.patch b/packages/ipkg-utils/ipkg-utils/ipkg-utils-fix.patch index a9e6fc4d05..b3e0d62cd9 100644 --- a/packages/ipkg-utils/ipkg-utils-native/ipkg-utils-fix.patch +++ b/packages/ipkg-utils/ipkg-utils/ipkg-utils-fix.patch @@ -1,11 +1,14 @@ ---- ../../../work/i686-linux/ipkg-utils-native-1.6+cvs20050404-r6/ipkg-utils/ipkg.py 2005-01-08 19:08:52.000000000 +0100 -+++ ipkg-utils/ipkg.py 2006-06-29 12:52:58.466446000 +0200 -@@ -150,11 +150,11 @@ - stat = os.stat(fn) - self.size = stat[ST_SIZE] +--- + ipkg.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: ipkg-utils/ipkg.py +=================================================================== +--- ipkg-utils.orig/ipkg.py 2007-05-26 23:49:05.000000000 +0100 ++++ ipkg-utils/ipkg.py 2007-05-26 23:49:23.000000000 +0100 +@@ -152,9 +152,9 @@ class Package: self.filename = os.path.basename(fn) -- ## sys.stderr.write(" extracting control.tar.gz from %s\n"% (fn,)) -+ sys.stderr.write(" extracting control.tar.gz from %s\n"% (fn,)) + ## sys.stderr.write(" extracting control.tar.gz from %s\n"% (fn,)) if self.isdeb: - control = os.popen("ar p "+fn+" control.tar.gz | tar xfzO - '*control'","r") + control = os.popen("ar p "+fn+" control.tar.gz | tar xfzO - './control'","r") diff --git a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb index 48c7445828..e8f52b65a4 100644 --- a/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb +++ b/packages/ipkg-utils/ipkg-utils_1.6+cvs20050404.bb @@ -5,10 +5,13 @@ LICENSE = "GPL" CONFLICTS = "ipkg-link" RDEPENDS = "python" SRCDATE = "20050404" -PR = "r12" +PR = "r15" SRC_URI = "${HANDHELDS_CVS};module=ipkg-utils \ - file://index_speedup.patch;patch=1" + file://ipkg-utils-fix.patch;patch=1 \ + file://ipkg-py-sane-vercompare.patch;patch=1 \ + file://ipkg-py-tarfile.patch;patch=1 \ + file://ipkg-make-index-track-stamps.patch;patch=1" S = "${WORKDIR}/ipkg-utils" @@ -26,9 +29,3 @@ do_install() { done } -#FIXME: ipkg-utils is not allowed to have packages or else a ipkg-native -> ipkg-utils -> ipkg-utils -# recursive dependency is triggered. This has been fixed by installing the ipkg-link script in -# a dedicated package. -#PACKAGES_prepend = "ipkg-link " -#FILES_ipkg-link = "${bindir}/ipkg-link" - diff --git a/packages/ipsec-tools/files/cross.patch b/packages/ipsec-tools/files/cross.patch deleted file mode 100644 index a0e7b1da27..0000000000 --- a/packages/ipsec-tools/files/cross.patch +++ /dev/null @@ -1,75 +0,0 @@ -Index: ipsec-tools-0.5-rc1/acracoon.m4 -=================================================================== ---- ipsec-tools-0.5-rc1.orig/acracoon.m4 2004-09-21 10:35:23.000000000 -0400 -+++ ipsec-tools-0.5-rc1/acracoon.m4 2005-02-03 13:56:02.144689256 -0500 -@@ -92,6 +92,8 @@ - - AC_DEFUN([RACOON_CHECK_BUGGY_GETADDRINFO], [ - AC_MSG_CHECKING(getaddrinfo bug) -+ AC_CACHE_CHECK([for a buggy getaddrinfo], -+ racoon_cv_bug_getaddrinfo,[ - saved_CFLAGS=$CFLAGS - CFLAGS="-Wall -O2" - AC_TRY_RUN([ -@@ -182,12 +184,10 @@ - exit(1); - } - ], -- AC_MSG_RESULT(good) -- buggygetaddrinfo=no, -- AC_MSG_RESULT(buggy) -- buggygetaddrinfo=yes, -- AC_MSG_RESULT(buggy) -- buggygetaddrinfo=yes) -+ racoon_cv_bug_getaddrinfo=no, -+ racoon_cv_bug_getaddrinfo=yes, -+ racoon_cv_bug_getaddrinfo=yes) - CFLAGS=$saved_CFLAGS - unset saved_CFLAGS -+ ]) - ]) -Index: ipsec-tools-0.5-rc1/configure.ac -=================================================================== ---- ipsec-tools-0.5-rc1.orig/configure.ac 2005-01-04 09:20:57.000000000 -0500 -+++ ipsec-tools-0.5-rc1/configure.ac 2005-02-03 14:02:34.935975904 -0500 -@@ -16,6 +16,9 @@ - AC_PROG_LIBTOOL - AC_PROG_YACC - AM_PROG_LEX -+ac_save_LIBS="$LIBS" -+AC_CHECK_LIB(fl, yywrap, LEXLIB="-lfl") -+LIBS="$ac_save_LIBS" - AC_SUBST(LEXLIB) - AC_PROG_EGREP - -@@ -57,10 +60,12 @@ - AC_SUBST(CONFIGURE_AMFLAGS) ], - [ KERNEL_INCLUDE="/lib/modules/`uname -r`/build/include" ]) - -+ if test "$cross_compiling" = no; then - AC_CHECK_FILE($KERNEL_INCLUDE/linux/pfkeyv2.h, , - [ AC_CHECK_FILE(/usr/src/linux/include/linux/pfkeyv2.h, - KERNEL_INCLUDE=/usr/src/linux/include , - [ AC_MSG_ERROR([Unable to find linux-2.6 kernel headers. Aborting.]) ] ) ] ) -+ fi - AC_SUBST(KERNEL_INCLUDE) - # We need the configure script to run with correct kernel headers. - # However we don't want to point to kernel source tree in compile time, -@@ -176,7 +181,7 @@ - AC_MSG_CHECKING(sha2 support) - AC_DEFINE([WITH_SHA2], [], [SHA2 support]) - AC_CHECK_HEADER(openssl/sha2.h, [], [ -- CPPFLAGS_ADD="$CPPFLAGS_ADD -I./\${top_srcdir}/src/racoon/missing" -+ CPPFLAGS_ADD="$CPPFLAGS_ADD -I\${top_srcdir}/src/racoon/missing" - AC_LIBOBJ([sha2]) - CRYPTOBJS="$CRYPTOBJS sha2.o"]) - AC_SUBST(CRYPTOBJS) -@@ -339,7 +344,7 @@ - fi - - RACOON_CHECK_BUGGY_GETADDRINFO --if test "$buggygetaddrinfo" = "yes"; then -+if test "$racoon_cv_bug_getaddrinfo" = "yes"; then - AC_MSG_ERROR([Broken getaddrinfo() is no longer supported. Aborting.]) - fi - diff --git a/packages/ipsec-tools/files/gcc-4.2.patch b/packages/ipsec-tools/files/gcc-4.2.patch new file mode 100644 index 0000000000..573f242e65 --- /dev/null +++ b/packages/ipsec-tools/files/gcc-4.2.patch @@ -0,0 +1,47 @@ +Index: ipsec-tools-0.6.7/src/racoon/var.h +=================================================================== +--- ipsec-tools-0.6.7.orig/src/racoon/var.h 2004-11-21 03:16:59.000000000 +1100 ++++ ipsec-tools-0.6.7/src/racoon/var.h 2007-06-06 12:21:41.000000000 +1000 +@@ -76,9 +76,9 @@ + do { \ + if (getnameinfo((x), sysdep_sa_len(x), (y), sizeof(y), (z), sizeof(z), \ + NIFLAGS) != 0) { \ +- if (y) \ ++ if (y != NULL) \ + strncpy((y), "(invalid)", sizeof(y)); \ +- if (z) \ ++ if (z != NULL) \ + strncpy((z), "(invalid)", sizeof(z)); \ + } \ + } while (0); +@@ -87,7 +87,7 @@ + do { \ + if (getnameinfo((x), sysdep_sa_len(x), (y), sizeof(y), NULL, 0, \ + NIFLAGS) != 0) { \ +- if (y) \ ++ if (y != NULL) \ + strncpy((y), "(invalid)", sizeof(y)); \ + } \ + } while (0); +Index: ipsec-tools-0.6.7/src/racoon/eaytest.c +=================================================================== +--- ipsec-tools-0.6.7.orig/src/racoon/eaytest.c 2005-06-29 08:38:02.000000000 +1000 ++++ ipsec-tools-0.6.7/src/racoon/eaytest.c 2007-06-06 12:22:59.000000000 +1000 +@@ -311,7 +311,7 @@ + + printf("exact match: succeed.\n"); + +- if (dnstr_w1) { ++ if (dnstr_w1 != NULL) { + asn1dn = eay_str2asn1dn(dnstr_w1, strlen(dnstr_w1)); + if (asn1dn == NULL || asn1dn->l == asn1dn0.l) + errx(1, "asn1dn length wrong for wildcard 1\n"); +@@ -321,7 +321,7 @@ + printf("wildcard 1 match: succeed.\n"); + } + +- if (dnstr_w1) { ++ if (dnstr_w1 != NULL) { + asn1dn = eay_str2asn1dn(dnstr_w2, strlen(dnstr_w2)); + if (asn1dn == NULL || asn1dn->l == asn1dn0.l) + errx(1, "asn1dn length wrong for wildcard 2\n"); diff --git a/packages/ipsec-tools/ipsec-tools-0.6.6/racoon-search-missing.patch b/packages/ipsec-tools/files/racoon-search-missing.patch index eebcb87017..eebcb87017 100644 --- a/packages/ipsec-tools/ipsec-tools-0.6.6/racoon-search-missing.patch +++ b/packages/ipsec-tools/files/racoon-search-missing.patch diff --git a/packages/ipsec-tools/ipsec-tools.inc b/packages/ipsec-tools/ipsec-tools.inc index a6fa2efb28..ed265f12ed 100644 --- a/packages/ipsec-tools/ipsec-tools.inc +++ b/packages/ipsec-tools/ipsec-tools.inc @@ -1,30 +1,49 @@ DESCRIPTION = "IPsec-Tools is a port of KAME's IPsec utilities to the \ Linux-2.6 IPsec implementation." -DEPENDS = "virtual/kernel openssl readline flex" -LICENSE = "BSD" +HOMEPAGE = "http://ipsec-tools.sourceforge.net/" SECTION = "console/network" -PR = "r1" +LICENSE = "BSD" +DEPENDS = "virtual/kernel openssl readline flex" + +SRC_URI = "${SOURCEFORGE_MIRROR}/ipsec-tools/ipsec-tools-${PV}.tar.bz2 \ + file://racoon-search-missing.patch;patch=1 \ + file://gcc-4.2.patch;patch=1" inherit autotools -# --enable-adminport enable admin port -# --enable-gssapi enable GSS-API authentication -# --enable-hybrid enable hybrid, both mode-cfg and xauth support -# --enable-frag enable IKE fragmentation payload support -# --enable-stats enable statistics logging function -# --enable-dpd enable dead peer detection -# --enable-samode-unspec enable to use unspecified a mode of SA -# --disable-ipv6 disable ipv6 support -# --enable-natt enable NAT-Traversal (yes/no/kernel) -# -# --with-kernel-headers=/lib/modules/<uname>/build/include -# where your Linux Kernel headers are installed -# --with-readline support readline input (yes by default) -# --with-openssl=DIR specify OpenSSL directory -# --with-libradius=DIR specify libradius path (like/usr/pkg) -EXTRA_OECONF = "--with-kernel-headers=${STAGING_KERNEL_DIR} \ - --with-readline \ - --with-openssl=${STAGING_LIBDIR}/.. \ - --without-libradius \ - --without-gssapi" +# Options: +# --enable-adminport enable admin port +# --enable-rc5 enable RC5 encryption (patented) +# --enable-idea enable IDEA encryption (patented) +# --enable-gssapi enable GSS-API authentication +# --enable-hybrid enable hybrid, both mode-cfg and xauth support +# --enable-frag enable IKE fragmentation payload support +# --enable-stats enable statistics logging function +# --enable-dpd enable dead peer detection +# --enable-samode-unspec enable to use unspecified a mode of SA +# --disable-ipv6 disable ipv6 support +# --enable-natt enable NAT-Traversal (yes/no/kernel) +# --enable-natt-versions=list list of supported NAT-T versions delimited by coma. +# --with-kernel-headers=/lib/modules/<uname>/build/include +# where your Linux Kernel headers are installed +# --with-readline support readline input (yes by default) +# --with-flex use directiory (default: no) +# --with-flexlib=<LIB> specify flex library. +# --with-openssl=DIR specify OpenSSL directory +# --with-libradius=DIR specify libradius path (like/usr/pkg) +# --with-libpam=DIR specify libpam path (like/usr/pkg) +# +# Note: if you give it the actual kernel headers it won't build, it actually +# needs to point at the linux-libc-headers version of the kernel headers. +# +EXTRA_OECONF = "--with-kernel-headers=${STAGING_INCDIR} \ + --with-readline \ + --with-openssl=${STAGING_LIBDIR}/.. \ + --without-libradius \ + --without-gssapi \ + --without-libpam" + +# Sometimes it attempts to use y.tab.c before it is actually +# generated. Note that the failure case is very rare, but it does +# happen. PARALLEL_MAKE = "" diff --git a/packages/ipsec-tools/ipsec-tools_0.4+0.5-rc1.bb b/packages/ipsec-tools/ipsec-tools_0.4+0.5-rc1.bb deleted file mode 100644 index d4b33335df..0000000000 --- a/packages/ipsec-tools/ipsec-tools_0.4+0.5-rc1.bb +++ /dev/null @@ -1,6 +0,0 @@ -require ipsec-tools.inc - -BV = "${@bb.data.getVar('PV', d, 1).split('+')[1]}" -SRC_URI = "${SOURCEFORGE_MIRROR}/ipsec-tools/ipsec-tools-${BV}.tar.bz2 \ - file://cross.patch;patch=1" -S = "${WORKDIR}/ipsec-tools-${BV}" diff --git a/packages/ipsec-tools/ipsec-tools_0.4+0.5-rc2.bb b/packages/ipsec-tools/ipsec-tools_0.4+0.5-rc2.bb deleted file mode 100644 index 5fed6c1764..0000000000 --- a/packages/ipsec-tools/ipsec-tools_0.4+0.5-rc2.bb +++ /dev/null @@ -1,6 +0,0 @@ -require ipsec-tools.inc - -BV = "${@bb.data.getVar('PV', d, 1).split('+')[1].replace('-','')}" -SRC_URI = "${SOURCEFORGE_MIRROR}/ipsec-tools/ipsec-tools-${BV}.tar.bz2 \ - file://cross.patch;patch=1" -S = "${WORKDIR}/ipsec-tools-${BV}" diff --git a/packages/ipsec-tools/ipsec-tools_0.6.6.bb b/packages/ipsec-tools/ipsec-tools_0.6.6.bb index 9b0676aece..1ccc60c18d 100644 --- a/packages/ipsec-tools/ipsec-tools_0.6.6.bb +++ b/packages/ipsec-tools/ipsec-tools_0.6.6.bb @@ -1,47 +1,3 @@ -DESCRIPTION = "IPsec-Tools is a port of KAME's IPsec utilities to the \ -Linux-2.6 IPsec implementation." -HOMEPAGE = "http://ipsec-tools.sourceforge.net/" -SECTION = "console/network" -LICENSE = "BSD" -DEPENDS = "virtual/kernel openssl readline flex" +PR = "r1" -SRC_URI = "${SOURCEFORGE_MIRROR}/ipsec-tools/ipsec-tools-${PV}.tar.bz2 \ - file://racoon-search-missing.patch;patch=1" - -inherit autotools - -# Options: -# --enable-adminport enable admin port -# --enable-rc5 enable RC5 encryption (patented) -# --enable-idea enable IDEA encryption (patented) -# --enable-gssapi enable GSS-API authentication -# --enable-hybrid enable hybrid, both mode-cfg and xauth support -# --enable-frag enable IKE fragmentation payload support -# --enable-stats enable statistics logging function -# --enable-dpd enable dead peer detection -# --enable-samode-unspec enable to use unspecified a mode of SA -# --disable-ipv6 disable ipv6 support -# --enable-natt enable NAT-Traversal (yes/no/kernel) -# --enable-natt-versions=list list of supported NAT-T versions delimited by coma. -# --with-kernel-headers=/lib/modules/<uname>/build/include -# where your Linux Kernel headers are installed -# --with-readline support readline input (yes by default) -# --with-flex use directiory (default: no) -# --with-flexlib=<LIB> specify flex library. -# --with-openssl=DIR specify OpenSSL directory -# --with-libradius=DIR specify libradius path (like/usr/pkg) -# --with-libpam=DIR specify libpam path (like/usr/pkg) -# -# Note: if you give it the actual kernel headers it won't build, it actually -# needs to point at the linux-libc-headers version of the kernel headers. -# -EXTRA_OECONF = "--with-kernel-headers=${STAGING_INCDIR} \ - --with-readline \ - --with-openssl=${STAGING_LIBDIR}/.. \ - --without-libradius \ - --without-gssapi \ - --without-libpam" - -# Sometimes it attempts to use y.tab.c before it is generated. Note -# that the failure case is very rare, but it does happen. -PARALLEL_MAKE = "" +require ipsec-tools.inc diff --git a/packages/ipsec-tools/ipsec-tools_0.6.7.bb b/packages/ipsec-tools/ipsec-tools_0.6.7.bb new file mode 100644 index 0000000000..3f23b198c1 --- /dev/null +++ b/packages/ipsec-tools/ipsec-tools_0.6.7.bb @@ -0,0 +1,3 @@ +PR = "r0" + +require ipsec-tools.inc diff --git a/packages/kazehakase/kazehakase_0.4.7.bb b/packages/kazehakase/kazehakase_0.4.7.bb new file mode 100644 index 0000000000..70e99a40fb --- /dev/null +++ b/packages/kazehakase/kazehakase_0.4.7.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "A gtk-webcore based browser" +HOMEPAGE = "http://kazehakase.sourceforge.jp/" +SECTION = "x11/network" +LICENSE = "GPLv2" +DEPENDS = "osb-nrcit glib-2.0" +SRC_URI = "http://iij.dl.sourceforge.jp/kazehakase/25610/kazehakase-${PV}.tar.gz" + +inherit autotools pkgconfig + +DEFAULT_PREFERENCE = "-1" + diff --git a/packages/keylaunch/files/akita/keylaunchrc b/packages/keylaunch/files/akita/keylaunchrc index 27cce24e93..9bb64db066 100644 --- a/packages/keylaunch/files/akita/keylaunchrc +++ b/packages/keylaunch/files/akita/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/files/makefile-fix.patch b/packages/keylaunch/files/makefile-fix.patch index 30275001df..d9c57e05ac 100644 --- a/packages/keylaunch/files/makefile-fix.patch +++ b/packages/keylaunch/files/makefile-fix.patch @@ -1,11 +1,15 @@ ---- /tmp/Makefile 2006-07-26 09:31:43.000000000 +0200 -+++ keylaunch-2.0.10/Makefile 2006-07-26 09:32:23.464411000 +0200 -@@ -31,7 +31,7 @@ +--- keylaunch-2.0.10/Makefile.orig 2007-05-25 18:13:39.000000000 +0200 ++++ keylaunch-2.0.10/Makefile 2007-05-25 18:15:47.000000000 +0200 +@@ -31,8 +31,10 @@ $(CC) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ install-program: all - install -sD $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG) -+ install -s -D $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG) - install -D -m 644 $(PROG)rc $(DESTDIR)/etc/$(PROG)rc +- install -D -m 644 $(PROG)rc $(DESTDIR)/etc/$(PROG)rc ++ install -d $(DESTDIR)$(PREFIX)/bin ++ install -s $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG) ++ install -d $(DESTDIR)/etc ++ install -m 644 $(PROG)rc $(DESTDIR)/etc/$(PROG)rc install -d $(DESTDIR)/etc/X11/Xsession.d install 90$(PROG) $(DESTDIR)/etc/X11/Xsession.d/90$(PROG) + install -d $(DESTDIR)/etc/X11/Xinit.d diff --git a/packages/keylaunch/files/spitz/keylaunchrc b/packages/keylaunch/files/spitz/keylaunchrc index 433221a586..9bb64db066 100644 --- a/packages/keylaunch/files/spitz/keylaunchrc +++ b/packages/keylaunch/files/spitz/keylaunchrc @@ -1,5 +1,5 @@ -key=....F9:-:gpe-contacts -key=....F10:-:gpe-calendar +key=....F9:-:gpe-calendar +key=....F10:-:gpe-contacts 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/keylaunch_2.0.10.bb b/packages/keylaunch/keylaunch_2.0.10.bb index 8b6d2b5aa2..f7d63968ac 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,13 +15,17 @@ 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 = "r12" SRC_URI += " file://keylaunchrc" SRC_URI += " file://makefile-fix.patch;patch=1" +SRC_URI += " file://80chvt-SUID" do_install_prepend () { install ${WORKDIR}/keylaunchrc ${S}/keylaunchrc + + install -d ${D}/etc/X11/Xinit.d + install ${WORKDIR}/80chvt-SUID ${D}/etc/X11/Xinit.d } do_install_append() { diff --git a/packages/kismet/kismet-2006-04-R1/no-chmod.patch b/packages/kismet/kismet-2006-04-R1/no-chmod.patch deleted file mode 100644 index b22c513b68..0000000000 --- a/packages/kismet/kismet-2006-04-R1/no-chmod.patch +++ /dev/null @@ -1,173 +0,0 @@ ---- kismet-2006-04-R1/Makefile.in.orig 2006-09-14 11:37:20.000000000 +0100 -+++ kismet-2006-04-R1/Makefile.in 2006-09-14 11:38:01.000000000 +0100 -@@ -130,52 +130,52 @@ - fi - - binuserinstall: -- install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(PS) $(BIN)/$(PS); -- install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(DRONE) $(BIN)/$(DRONE); -+ install -m 755 $(PS) $(BIN)/$(PS); -+ install -m 755 $(DRONE) $(BIN)/$(DRONE); - - binsuidinstall: -- install -o $(INSTUSR) -g $(INSTGRP) -s -m 4755 $(PS) $(BIN)/$(PS); -- install -o $(INSTUSR) -g $(INSTGRP) -s -m 4755 $(DRONE) $(BIN)/$(DRONE); -+ install -m 4755 $(PS) $(BIN)/$(PS); -+ install -m 4755 $(DRONE) $(BIN)/$(DRONE); - - commoninstall: - mkdir -p $(ETC) - mkdir -p $(BIN) - -- install -o $(INSTUSR) -g $(INSTGRP) -m 755 scripts/kismet $(BIN)/kismet -- install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(NC) $(BIN)/$(NC) -- # install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(HOPPER) $(BIN)/$(HOPPER) -+ install -m 755 scripts/kismet $(BIN)/kismet -+ install -m 755 $(NC) $(BIN)/$(NC) -+ # install -m 755 $(HOPPER) $(BIN)/$(HOPPER) - @if test "$(ZAURUS)" = "yes"; then \ -- install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(BUZZER) $(BIN)/buzzme; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(BUZZER) $(BIN)/buzzme; \ -+ install -m 755 $(BUZZER) $(BIN)/buzzme; \ -+ echo install -m 755 $(BUZZER) $(BIN)/buzzme; \ - fi --#install -o $(INSTUSR) -g $(INSTGRP) -m 755 scripts/kismet_monitor $(BIN)/kismet_monitor --#install -o $(INSTUSR) -g $(INSTGRP) -m 755 scripts/kismet_unmonitor $(BIN)/kismet_unmonitor -+#install -m 755 scripts/kismet_monitor $(BIN)/kismet_monitor -+#install -m 755 scripts/kismet_unmonitor $(BIN)/kismet_unmonitor - mkdir -p $(MAN)/man1 -- install -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet.1 $(MAN)/man1/kismet.1 -- # install -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet_monitor.1 $(MAN)/man1/kismet_monitor.1 -- # install -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet_hopper.1 $(MAN)/man1/kismet_hopper.1 -- install -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet_drone.1 $(MAN)/man1/kismet_drone.1 -+ install -m 644 man/kismet.1 $(MAN)/man1/kismet.1 -+ # install -m 644 man/kismet_monitor.1 $(MAN)/man1/kismet_monitor.1 -+ # install -m 644 man/kismet_hopper.1 $(MAN)/man1/kismet_hopper.1 -+ install -m 644 man/kismet_drone.1 $(MAN)/man1/kismet_drone.1 - mkdir -p $(MAN)/man5 -- install -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet.conf.5 $(MAN)/man5/kismet.conf.5 -- install -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet_ui.conf.5 $(MAN)/man5/kismet_ui.conf.5 -- install -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet_drone.conf.5 $(MAN)/man5/kismet_drone.conf.5 -+ install -m 644 man/kismet.conf.5 $(MAN)/man5/kismet.conf.5 -+ install -m 644 man/kismet_ui.conf.5 $(MAN)/man5/kismet_ui.conf.5 -+ install -m 644 man/kismet_drone.conf.5 $(MAN)/man5/kismet_drone.conf.5 - - @if test "$(GPSLBUILD)" = "$(GPSL)"; then \ -- install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(GPSL) $(BIN)/$(GPSL); \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -s -m 755 $(GPSL) $(BIN)/$(GPSL); \ -- install -o $(INSTUSR) -g $(INSTGRP) -m 755 scripts/gpsmap-helper-earthamaps $(BIN)/gpsmap-helper-earthamaps; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -m 755 scripts/gpsmap-helper-earthamaps $(BIN)/gpsmap-helper-earthamaps; \ -- install -o $(INSTUSR) -g $(MANGRP) -m 644 man/gpsmap.1 $(MAN)/man1/gpsmap.1; \ -- echo install -o $(INSTUSR) -g $(MANGRP) -m 644 man/gpsmap.1 $(MAN)/man1/gpsmap.1; \ -+ install -m 755 $(GPSL) $(BIN)/$(GPSL); \ -+ echo install -m 755 $(GPSL) $(BIN)/$(GPSL); \ -+ install -m 755 scripts/gpsmap-helper-earthamaps $(BIN)/gpsmap-helper-earthamaps; \ -+ echo install -m 755 scripts/gpsmap-helper-earthamaps $(BIN)/gpsmap-helper-earthamaps; \ -+ install -m 644 man/gpsmap.1 $(MAN)/man1/gpsmap.1; \ -+ echo install -m 644 man/gpsmap.1 $(MAN)/man1/gpsmap.1; \ - fi - - mkdir -p $(WAV) -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/new_network.wav $(WAV)/new_network.wav -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/traffic.wav $(WAV)/traffic.wav -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/junk_traffic.wav $(WAV)/junk_traffic.wav -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/alert.wav $(WAV)/alert.wav -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/ap_manuf $(ETC)/ap_manuf; -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/client_manuf $(ETC)/client_manuf; -+ install -m 644 wav/new_network.wav $(WAV)/new_network.wav -+ install -m 644 wav/traffic.wav $(WAV)/traffic.wav -+ install -m 644 wav/junk_traffic.wav $(WAV)/junk_traffic.wav -+ install -m 644 wav/alert.wav $(WAV)/alert.wav -+ install -m 644 conf/ap_manuf $(ETC)/ap_manuf; -+ install -m 644 conf/client_manuf $(ETC)/client_manuf; - - @if test -f $(BIN)/kismet_curses; then \ - echo "Removing old kismet_curses binary. The panels frontend is now kismet_client."; \ -@@ -188,22 +188,22 @@ - @if test -f $(ETC)/kismet.conf; then \ - $(MAKE) -e checkconfig; \ - else \ -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -+ install -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -+ echo install -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ - echo "Installed config into $(ETC)/kismet.conf."; \ - fi - @if test -f $(ETC)/kismet_drone.conf; then \ - $(MAKE) -e checkdroneconfig; \ - else \ -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -+ install -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -+ echo install -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ - echo "Installed drone config into $(ETC)/kismet_drone.conf."; \ - fi - @if test -f $(ETC)/kismet_ui.conf; then \ - $(MAKE) -e checkuiconfig; \ - else \ -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -+ install -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -+ echo install -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ - echo "Installed UI config into $(ETC)/kismet_ui.conf."; \ - fi - @echo "Installed kismet into $(BIN)/." -@@ -221,22 +221,22 @@ - @if test -f $(ETC)/kismet.conf; then \ - $(MAKE) -e checkconfig; \ - else \ -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -+ install -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -+ echo install -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ - echo "Installed config into $(ETC)/kismet.conf."; \ - fi - @if test -f $(ETC)/kismet_drone.conf; then \ - $(MAKE) -e checkdroneconfig; \ - else \ -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -+ install -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -+ echo install -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ - echo "Installed drone config into $(ETC)/kismet_drone.conf."; \ - fi - @if test -f $(ETC)/kismet_ui.conf; then \ - $(MAKE) -e checkuiconfig; \ - else \ -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -+ install -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -+ echo install -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ - echo "Installed UI config into $(ETC)/kismet_ui.conf."; \ - fi - @echo "Installed kismet into $(BIN)/." -@@ -252,11 +252,11 @@ - forceinstall: $(PS) - $(MAKE) -e commoninstall - $(MAKE) -e binuserinstall -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -+ install -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ - echo "Installed config into $(ETC)/kismet.conf."; -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -+ install -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ - echo "Installed drone config into $(ETC)/kismet_drone.conf."; -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -+ install -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ - echo "Installed UI config into $(ETC)/kismet_ui.conf."; - @echo "Installed kismet into $(BIN)/." - @echo "If you have not done so already, read the README file and the FAQ file. Additional" -@@ -271,11 +271,11 @@ - suidforceinstall: $(PS) - $(MAKE) -e commoninstall - $(MAKE) -e binsuidinstall -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ -+ install -m 644 conf/kismet.conf $(ETC)/kismet.conf; \ - echo "Installed config into $(ETC)/kismet.conf."; -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ -+ install -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \ - echo "Installed drone config into $(ETC)/kismet_drone.conf."; -- install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ -+ install -m 644 conf/kismet_ui.conf $(ETC)/kismet_ui.conf; \ - echo "Installed UI config into $(ETC)/kismet_ui.conf."; - @echo "Installed kismet into $(BIN)/." - @echo "If you have not done so already, read the README file and the FAQ file. Additional" diff --git a/packages/kismet/kismet_2005-04-R1.bb b/packages/kismet/kismet_2005-04-R1.bb deleted file mode 100644 index 2b29af51df..0000000000 --- a/packages/kismet/kismet_2005-04-R1.bb +++ /dev/null @@ -1,30 +0,0 @@ -SECTION = "console/network" -DESCRIPTION = "Kismet is an 802.11 layer2 wireless network detector, sniffer, and intrusion detection system" -HOMEPAGE = "http://www.kismetwireless.net/" -LICENSE = "GPLv2" -DEPENDS = "expat gmp" - -SRC_URI = "http://www.kismetwireless.net/code/kismet-2005-04-R1.tar.gz \ - file://no-strip.diff;patch=1;pnum=0 \ - file://no-chmod.diff;patch=1;pnum=0 \ - file://glibc3.3.2-getopt-throw.diff;patch=1;pnum=0" - - -EXTRA_OECONF = "--with-pcap=linux --disable-setuid --with-linuxheaders=${STAGING_KERNEL_DIR}/include" - -inherit autotools - -do_configure() { - oe_runconf -} - -do_install_append() { - if test -e ${WORKDIR}/kismet.conf; then - install -m 644 ${WORKDIR}/kismet.conf ${D}${sysconfdir}/ - fi -} - -PACKAGES =+ "kismet-sounds" -FILES_kismet-sounds = "/usr/share/kismet/wav" - -CONFFILES_${PN}_nylon = "${sysconfdir}/kismet.conf" diff --git a/packages/kismet/kismet_2005-08-R1.bb b/packages/kismet/kismet_2005-08-R1.bb deleted file mode 100644 index c5e58b6edb..0000000000 --- a/packages/kismet/kismet_2005-08-R1.bb +++ /dev/null @@ -1,30 +0,0 @@ -SECTION = "console/network" -DESCRIPTION = "Kismet is an 802.11 layer2 wireless network detector, sniffer, and intrusion detection system" -HOMEPAGE = "http://www.kismetwireless.net/" -LICENSE = "GPLv2" -DEPENDS = "expat gmp" - -SRC_URI = "http://www.kismetwireless.net/code/kismet-2005-08-R1.tar.gz \ - file://no-strip.diff;patch=1;pnum=0 \ - file://no-chmod.diff;patch=1;pnum=0 \ - file://glibc3.3.2-getopt-throw.diff;patch=1;pnum=0" - - -EXTRA_OECONF = "--with-pcap=linux --disable-setuid --with-linuxheaders=${STAGING_KERNEL_DIR}/include" - -inherit autotools - -do_configure() { - oe_runconf -} - -do_install_append() { - if test -e ${WORKDIR}/kismet.conf; then - install -m 644 ${WORKDIR}/kismet.conf ${D}${sysconfdir}/ - fi -} - -PACKAGES =+ "kismet-sounds" -FILES_kismet-sounds = "/usr/share/kismet/wav" - -CONFFILES_${PN}_nylon = "${sysconfdir}/kismet.conf" diff --git a/packages/kismet/kismet_2006-04-R1.bb b/packages/kismet/kismet_2006-04-R1.bb deleted file mode 100644 index aa51f2afa9..0000000000 --- a/packages/kismet/kismet_2006-04-R1.bb +++ /dev/null @@ -1,28 +0,0 @@ -SECTION = "console/network" -DESCRIPTION = "Kismet is an 802.11 layer2 wireless network detector, sniffer, and intrusion detection system" -HOMEPAGE = "http://www.kismetwireless.net/" -LICENSE = "GPLv2" -DEPENDS = "expat gmp" - -SRC_URI = "http://www.kismetwireless.net/code/kismet-2006-04-R1.tar.gz \ - file://no-chmod.patch;patch=1" - - -EXTRA_OECONF = "--with-pcap=linux --disable-setuid --with-linuxheaders=${STAGING_KERNEL_DIR}/include" - -inherit autotools - -do_configure() { - oe_runconf -} - -do_install_append() { - if test -e ${WORKDIR}/kismet.conf; then - install -m 644 ${WORKDIR}/kismet.conf ${D}${sysconfdir}/ - fi -} - -PACKAGES =+ "kismet-sounds" -FILES_kismet-sounds = "/usr/share/kismet/wav" - -CONFFILES_${PN}_nylon = "${sysconfdir}/kismet.conf" diff --git a/packages/kismet/kismet_2007-01-R1b.bb b/packages/kismet/kismet_2007-01-R1b.bb index 774e71e286..5c10300573 100644 --- a/packages/kismet/kismet_2007-01-R1b.bb +++ b/packages/kismet/kismet_2007-01-R1b.bb @@ -8,7 +8,7 @@ SRC_URI = "http://www.kismetwireless.net/code/kismet-2007-01-R1b.tar.gz \ file://no-chmod.patch;patch=1" -EXTRA_OECONF = "--with-pcap=linux --disable-setuid --with-linuxheaders=${STAGING_KERNEL_DIR}/include" +EXTRA_OECONF = "--with-pcap=linux --disable-setuid --with-linuxheaders=${STAGING_KERNEL_DIR}/include --disable-gpsmap" inherit autotools diff --git a/packages/pointercal/files/hx4700/.mtn2git_empty b/packages/konqueror/konqueror-embedded-20070212/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pointercal/files/hx4700/.mtn2git_empty +++ b/packages/konqueror/konqueror-embedded-20070212/.mtn2git_empty diff --git a/packages/konqueror/konqueror-embedded-20070212/konqe-kapplication.patch b/packages/konqueror/konqueror-embedded-20070212/konqe-kapplication.patch new file mode 100644 index 0000000000..6feb0060c5 --- /dev/null +++ b/packages/konqueror/konqueror-embedded-20070212/konqe-kapplication.patch @@ -0,0 +1,12 @@ +diff -Naur kdenox-orig/konq-embed/dropin/kapplication.h kdenox/konq-embed/dropin/kapplication.h +--- kdenox-orig/konq-embed/dropin/kapplication.h 2007-02-12 10:25:57.000000000 +0100 ++++ kdenox/konq-embed/dropin/kapplication.h 2007-03-15 06:07:32.000000000 +0100 +@@ -122,7 +122,7 @@ + // required since kdelibs 3.4 + void updateUserTimestamp(unsigned long = 0) {} + +- static int KApplication::startDragDistance(); ++ static int startDragDistance(); + + signals: + // required by KHTMLView diff --git a/packages/konqueror/konqueror-embedded-20070212/konqe_new_opie.patch b/packages/konqueror/konqueror-embedded-20070212/konqe_new_opie.patch new file mode 100644 index 0000000000..1079d23fbf --- /dev/null +++ b/packages/konqueror/konqueror-embedded-20070212/konqe_new_opie.patch @@ -0,0 +1,756 @@ +diff -urNd --exclude-from=excludelist kdenox/acinclude.m4 kdenox_new/acinclude.m4 +--- kdenox/acinclude.m4 2007-02-12 22:26:21.000000000 +1300 ++++ kdenox_new/acinclude.m4 2007-02-25 22:00:27.000000000 +1300 +@@ -880,7 +880,7 @@ + ) + + AC_ARG_ENABLE( +- embedded, ++ rtti-embedded, + AC_HELP_STRING([--enable-rtti-embedded],[enable rtti support for Qt-embedded]), + kde_use_qt_emb_rtti=$enableval, + kde_use_qt_emb_rtti=no +diff -urNd --exclude-from=excludelist kdenox/configure.in kdenox_new/configure.in +--- kdenox/configure.in 2007-02-12 22:26:21.000000000 +1300 ++++ kdenox_new/configure.in 2007-02-25 17:49:59.000000000 +1300 +@@ -60,10 +60,10 @@ + + + if test "x$want_qpe" = "xyes"; then +- AC_PATH_QTOPIA(2.1.1) ++ AC_PATH_QTOPIA(1.0.0) + dnl hack + CXXFLAGS="$CXXFLAGS -D_QT_QPE_" +- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" ++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" + fi + + dnl Checks for header files. +diff -urNd --exclude-from=excludelist kdenox/configure.in.in kdenox_new/configure.in.in +--- kdenox/configure.in.in 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/configure.in.in 2007-02-25 17:49:27.000000000 +1300 +@@ -56,10 +56,10 @@ + + + if test "x$want_qpe" = "xyes"; then +- AC_PATH_QTOPIA(2.1.1) ++ AC_PATH_QTOPIA(1.0.0) + dnl hack + CXXFLAGS="$CXXFLAGS -D_QT_QPE_" +- LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" ++ dnl LIB_QTOPIA="$LIB_QTOPIA -lqtopia -lqtopia2" + fi + + dnl Checks for header files. +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kfiledialog.cpp kdenox_new/konq-embed/dropin/kfiledialog.cpp +--- kdenox/konq-embed/dropin/kfiledialog.cpp 2007-02-12 22:25:57.000000000 +1300 ++++ kdenox_new/konq-embed/dropin/kfiledialog.cpp 2007-02-24 03:29:25.000000000 +1300 +@@ -23,6 +23,7 @@ + + + #include "kfiledialog.h" ++#include "kdebug.h" + + #include <qlayout.h> + #include <qconfig.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp kdenox_new/konq-embed/dropin/kio/kprotocolmanager.cpp +--- kdenox/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/dropin/kio/kprotocolmanager.cpp 2007-02-24 03:32:31.000000000 +1300 +@@ -23,7 +23,9 @@ + */ + + #include "kprotocolmanager.h" ++#include <kdebug.h> + #include <kglobal.h> ++#include <klocale.h> + #include <kconfig.h> + #include <ioslave_defaults.h> + #include <kdeversion.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/kio/progressbase.cpp kdenox_new/konq-embed/dropin/kio/progressbase.cpp +--- kdenox/konq-embed/dropin/kio/progressbase.cpp 2007-02-12 22:25:56.000000000 +1300 ++++ kdenox_new/konq-embed/dropin/kio/progressbase.cpp 2007-02-24 03:33:10.000000000 +1300 +@@ -18,6 +18,7 @@ + + #include "jobclasses.h" + #include "progressbase.h" ++#include <kdebug.h> + + //namespace KIO { + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/ipkg/preinst kdenox_new/konq-embed/ipkg/preinst +--- kdenox/konq-embed/ipkg/preinst 1970-01-01 12:00:00.000000000 +1200 ++++ kdenox_new/konq-embed/ipkg/preinst 2007-02-25 21:20:10.000000000 +1300 +@@ -0,0 +1,15 @@ ++#!/bin/sh ++ ++prefix=/usr/kde/3.5 ++prunefiles="lib/libkhtml.la lib/libkhtml.so lib/libkhtml.so.4.0.0" ++prunefiles="$prunefiles lib/libkhtml.so.4" ++prunefiles="$prunefiles lib/kjs_html.la lib/kjs_html.so" ++ ++for _file in $prunefiles; do ++ file=$PKG_ROOT/$prefix/$_file; ++ if [ -f $file ]; then ++ echo "found old file $_file from b0rked konqueror ipkg. removing." ++ rm -f $file ++ fi ++done ++ +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h kdenox_new/konq-embed/kdesrc/kdecore/kmultipledrag.h +--- kdenox/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-12 21:31:39.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/kdecore/kmultipledrag.h 2007-02-25 16:15:28.000000000 +1300 +@@ -26,6 +26,8 @@ + #include <qvaluelist.h> + #include "kdelibs_export.h" + ++#define QPtrList QList ++ + class KMultipleDragPrivate; + /** + * This class makes it easy for applications to provide a drag object +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/css/Makefile.am kdenox_new/konq-embed/kdesrc/khtml/css/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/css/Makefile.am 2007-02-25 16:36:23.000000000 +1300 +@@ -39,7 +39,7 @@ + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ + -I$(top_srcdir)/khtml -I$(top_srcdir)/libltdl -I$(top_srcdir) \ + -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \ +- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + cssdir = $(kde_datadir)/khtml/css + css_DATA = html4.css quirks.css +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am kdenox_new/konq-embed/kdesrc/khtml/dom/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/dom/Makefile.am 2007-02-25 16:35:07.000000000 +1300 +@@ -47,7 +47,7 @@ + # css_extensions.h + + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ +- -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am kdenox_new/konq-embed/kdesrc/khtml/ecma/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/ecma/Makefile.am 2007-02-25 17:24:35.000000000 +1300 +@@ -16,7 +16,7 @@ + # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + +-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/kio -I$(top_srcdir)/kio/bookmarks -I$(top_srcdir)/khtml -I$(top_srcdir)/khtml/java -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + KDE_CXXFLAGS = $(USE_EXCEPTIONS) + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp kdenox_new/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp +--- kdenox/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/ecma/xmlhttprequest.cpp 2007-02-25 17:27:39.000000000 +1300 +@@ -38,6 +38,10 @@ + #include <qobject.h> + #include <kdebug.h> + ++#if (QT_VERSION < 0x030000) ++#include "qt3regexp.h" ++#endif ++ + #ifdef APPLE_CHANGES + #include "KWQLoader.h" + #else +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/html/Makefile.am kdenox_new/konq-embed/kdesrc/khtml/html/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/html/Makefile.am 2007-02-25 16:39:50.000000000 +1300 +@@ -43,7 +43,7 @@ + -I$(top_srcdir)/kio/kssl \ + -I$(top_srcdir)/kjs -I$(top_srcdir)/khtml -I$(top_srcdir) \ + -I$(top_srcdir)/kwallet/client -I$(top_srcdir)/kutils \ +- -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + # Use "make doctypes" to regenerate doctypes.cpp from doctypes.gperf + doctypes: $(srcdir)/doctypes.gperf $(srcdir)/Makefile.am +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp kdenox_new/konq-embed/kdesrc/khtml/khtml_part.cpp +--- kdenox/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/khtml_part.cpp 2007-02-25 17:22:46.000000000 +1300 +@@ -3221,14 +3221,14 @@ + { + khtml::RenderTextArea *parent= static_cast<khtml::RenderTextArea *>(obj->parent()); + s = parent->text(); +- s = s.replace(0xa0, ' '); ++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' '); + tmpTextArea = parent; + } + else if ( renderLineText ) + { + khtml::RenderLineEdit *parentLine= static_cast<khtml::RenderLineEdit *>(obj); + s = parentLine->widget()->text(); +- s = s.replace(0xa0, ' '); ++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' '); + } + else if ( obj->isText() ) + { +@@ -3256,7 +3256,7 @@ + if ( isLink && obj->parent()!=tmpTextArea ) + { + s = static_cast<khtml::RenderText *>(obj)->data().string(); +- s = s.replace(0xa0, ' '); ++ s = s.replace(QRegExp(QString(QChar(0xa0))), ' '); + } + } + else if ( obj->isBR() ) +@@ -6785,9 +6785,9 @@ + // get selected text and paste to the clipboard + #ifndef QT_NO_CLIPBOARD + QString text = selectedText(); +- text.replace(QChar(0xa0), ' '); ++ text.replace(QRegExp(QString(QChar(0xa0))), " "); + disconnect( kapp->clipboard(), SIGNAL( selectionChanged()), this, SLOT( slotClearSelection())); +- kapp->clipboard()->setText(text,QClipboard::Selection); ++ kapp->clipboard()->setText(text); + connect( kapp->clipboard(), SIGNAL( selectionChanged()), SLOT( slotClearSelection())); + #endif + //kdDebug( 6000 ) << "selectedText = " << text << endl; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am kdenox_new/konq-embed/kdesrc/khtml/misc/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/misc/Makefile.am 2007-02-25 16:33:47.000000000 +1300 +@@ -32,7 +32,7 @@ + stringit.h htmlhashes.h helper.h shared.h arena.h + + INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/dcop -I$(top_srcdir)/kio -I$(top_srcdir)/libltdl \ +- -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am kdenox_new/konq-embed/kdesrc/khtml/rendering/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/rendering/Makefile.am 2007-02-25 16:40:50.000000000 +1300 +@@ -42,7 +42,7 @@ + render_generated.h enumerate.h + + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ +- -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/kfile -I$(top_srcdir)/khtml -I$(top_srcdir)/kutils -I$(top_srcdir) -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h kdenox_new/konq-embed/kdesrc/khtml/rendering/render_layer.h +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-12 21:31:42.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/rendering/render_layer.h 2007-02-25 16:56:00.000000000 +1300 +@@ -46,12 +46,14 @@ + + #include <qcolor.h> + #include <qrect.h> ++#include <qtextstream.h> + #include <assert.h> + + #include "render_object.h" + + class QScrollBar; +-template <class T> class QPtrVector; ++template <class T> class QVector; ++#define QPtrVector QVector + + namespace khtml { + class RenderStyle; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp kdenox_new/konq-embed/kdesrc/khtml/rendering/render_object.cpp +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/rendering/render_object.cpp 2007-02-25 16:44:58.000000000 +1300 +@@ -46,6 +46,7 @@ + #include <kdebug.h> + #include <kglobal.h> + #include <qpainter.h> ++#include <qtextstream.h> + #include "khtmlview.h" + #include <khtml_part.h> + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h kdenox_new/konq-embed/kdesrc/khtml/rendering/render_table.h +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/rendering/render_table.h 2007-02-25 16:56:49.000000000 +1300 +@@ -30,6 +30,7 @@ + #include <qcolor.h> + #include <qptrvector.h> + #include <qmemarray.h> ++#include <qtextstream.h> + + #include "rendering/render_box.h" + #include "rendering/render_block.h" +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h kdenox_new/konq-embed/kdesrc/khtml/rendering/render_text.h +--- kdenox/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/rendering/render_text.h 2007-02-25 16:46:39.000000000 +1300 +@@ -31,6 +31,7 @@ + #include "rendering/render_line.h" + + #include <qptrvector.h> ++#include <qtextstream.h> + #include <assert.h> + + class QPainter; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am kdenox_new/konq-embed/kdesrc/khtml/xml/Makefile.am +--- kdenox/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/khtml/xml/Makefile.am 2007-02-25 16:38:27.000000000 +1300 +@@ -37,7 +37,7 @@ + + INCLUDES = -I$(top_srcdir)/kimgio -I$(top_srcdir)/kio -I$(top_srcdir)/dcop \ + -I$(top_srcdir)/khtml -I$(top_srcdir) -I$(top_srcdir)/kwallet/client \ +- -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(X_INCLUDES) $(all_includes) ++ -I$(top_srcdir)/kutils -I$(top_builddir)/kjs -I$(top_builddir)/konq-embed/kdesrc -I$(top_builddir)/konq-embed/kdesrc/kssl -I$(top_srcdir)/konq-embed/dropin -I$(top_srcdir)/konq-embed/kdesrc/kio -I$(top_srcdir)/konq-embed/kdesrc/kdecore -I$(top_srcdir)/konq-embed/kdesrc/kutils -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/../misc -I$(srcdir)/../misc -I$(srcdir)/../css -I$(srcdir)/../dom -I$(srcdir)/../xml -I$(srcdir)/../html -I$(top_srcdir)/konq-embed/dropin/kio -I$(srcdir)/../.. -I$(srcdir)/../../kjs -I$(top_srcdir)/konq-embed/dropin/kssl -I$(srcdir)/../../../dropin/khtml -I$(top_srcdir)/konq-embed/dropin/khtml/java $(QT_INCLUDES) $(QTOPIA_INCLUDES) $(X_INCLUDES) $(all_includes) + + SRCDOC_DEST=$(kde_htmldir)/en/kdelibs/khtml + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.cpp kdenox_new/konq-embed/kdesrc/kjs/dtoa.cpp +--- kdenox/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/kjs/dtoa.cpp 2007-02-25 18:22:33.000000000 +1300 +@@ -1,4 +1,9 @@ +-#ifndef KONQ_EMBEDDED ++#include <config.h> ++ ++#ifdef KONQ_EMBEDDED ++#include "stdlib.h" ++extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); } ++#else + /**************************************************************** + * + * The author of this software is David M. Gay. +@@ -175,8 +180,6 @@ + #undef CONST + #endif + +-#include <config.h> +- + #include "stdlib.h" + + #ifdef WORDS_BIGENDIAN +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/dtoa.h kdenox_new/konq-embed/kdesrc/kjs/dtoa.h +--- kdenox/konq-embed/kdesrc/kjs/dtoa.h 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/kjs/dtoa.h 2007-02-25 18:20:51.000000000 +1300 +@@ -23,14 +23,11 @@ + #ifndef _KJS_DTOA_H_ + #define _KJS_DTOA_H_ + +-#ifndef KONQ_EMBEDDED + extern "C" double kjs_strtod(const char *s00, char **se); ++#ifndef KONQ_EMBEDDED + extern "C" char *kjs_dtoa(double d, int mode, int ndigits, + int *decpt, int *sign, char **rve); + extern "C" void kjs_freedtoa(char *s); +-#else +-#include "stdlib.h" +-extern "C" double kjs_strtod(const char *s00, char **se) { return strtod(s00,se); } + #endif +- ++ + #endif /* _KJS_DTOA_H */ +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/number_object.cpp kdenox_new/konq-embed/kdesrc/kjs/number_object.cpp +--- kdenox/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/kjs/number_object.cpp 2007-02-25 18:05:36.000000000 +1300 +@@ -20,6 +20,8 @@ + * + */ + ++#include <config.h> ++ + #include "value.h" + #include "object.h" + #include "types.h" +diff -urNd --exclude-from=excludelist kdenox/konq-embed/kdesrc/kjs/ustring.cpp kdenox_new/konq-embed/kdesrc/kjs/ustring.cpp +--- kdenox/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-12 22:26:20.000000000 +1300 ++++ kdenox_new/konq-embed/kdesrc/kjs/ustring.cpp 2007-02-25 18:10:22.000000000 +1300 +@@ -21,9 +21,7 @@ + * + */ + +-#ifdef HAVE_CONFIG_H + #include <config.h> +-#endif + + #include <stdlib.h> + #include <stdio.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/actions/konqe.rc kdenox_new/konq-embed/src/actions/konqe.rc +--- kdenox/konq-embed/src/actions/konqe.rc 1970-01-01 12:00:00.000000000 +1200 ++++ kdenox_new/konq-embed/src/actions/konqe.rc 2007-02-25 21:20:10.000000000 +1300 +@@ -0,0 +1,107 @@ ++<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> ++<kpartgui name="konqe" version="1"> ++<Create> ++ <Action name="file_new" stdAction="true" icon="filenew.png"/> ++ <Action name="file_open" stdAction="true" icon="fileopen.png"/> ++ <Action name="file_save" stdAction="true" icon="filesave.png"/> ++ <Action name="file_save_as" stdAction="true" icon="filesaveas.png"/> ++ <Action name="file_print" stdAction="true" icon="fileprint.png"/> ++ <Action name="go_home" stdAction="true" icon="gohome.png"/> ++ <Action name="go_back" stdAction="true" icon="back.png"/> ++ <Action name="go_forward" stdAction="true" icon="forward.png"/> ++ <Action name="edit_undo" stdAction="true" icon="undo.png"/> ++ <Action name="edit_redo" stdAction="true" icon="redo.png"/> ++ <Action name="edit_cut" stdAction="true" icon="editcut.png"/> ++ <Action name="edit_copy" stdAction="true" icon="editcopy.png"/> ++ <Action name="edit_paste" stdAction="true" icon="editpaste.png"/> ++ <Action name="edit_find" stdAction="true" icon="find.png"/> ++ <Action name="view_redisplay" stdAction="true" icon="reload.png"/> ++ <Action name="view_zoom" stdAction="true" popupMenu="true" icon="viewmag.png"/> ++ <Action name="bookmark_add" stdAction="true" icon="bookmark_add.png"/> ++ <Action name="bookmark_edit" stdAction="true" accel="" icon="bookmark.png"/> ++ <Action name="options_configure" stdAction="true" icon="configure.png"/> ++</Create> ++<Create> ++ <Action name="windows" popupMenu="true" icon="window_list.png"> ++ <text>Windows List</text> ++ </Action> ++ <Action name="view_close" accel="Ctrl+W" icon="fileclose.png"> ++ <text>Close View</text> ++ </Action> ++ <Action name="view_next" accel="Ctrl+Tab" icon="2rightarrow.png"> ++ <text>Next View</text> ++ </Action> ++ <Action name="view_autoload_images" toggle="true"> ++ <text>Autoload Images</text> ++ </Action> ++ <Action name="go_stop" icon="stop.png"> ++ <text>Stop Loading</text> ++ </Action> ++ <Action name="info_security" icon="lock.png"> ++ <text>Show Security Information</text> ++ </Action> ++ <Action name="options_show_location" accel="F11" toggle="true"> ++ <text>Show Location Bar</text> ++ </Action> ++ <Action name="options_show_sidebar" accel="F12" toggle="true"> ++ <text>Show Side Bar</text> ++ </Action> ++ <Action name="options_show_statusbar" stdAction="true" accel="F10"/> ++ <Action name="main_menu" popupMenu="true" icon="gear.png"> ++ <text>Main Menu</text> ++ </Action> ++ <Action name="view_load_images" icon="images_display.png"> ++ <text>Load Images</text> ++ </Action> ++</Create> ++<Menu name="main_menu"> ++ <Action name="file_new"/> ++ <Separator/> ++ <Action name="view_autoload_images"/> ++ <Action name="options_show_statusbar"/> ++ <Action name="options_show_location"/> ++ <Action name="options_show_sidebar"/> ++ <Separator/> ++ <Action name="edit_find"/> ++ <Separator/> ++ <Action name="options_configure"/> ++ <Separator/> ++ <Action name="bookmark_add"/> ++ <Action name="bookmark_edit"/> ++ <Action name="bookmarks"/> ++ <Separator/> ++ <Action name="view_next"/> ++ <Action name="view_close"/> ++</Menu> ++<ToolBar name="main_bar"> ++ <Action name="main_menu"/> ++ <ToolBar name="browser_bar"/> ++ <ToolBar name="edit_bar"/> ++ <Spacer/> ++ <Action name="windows"/> ++</ToolBar> ++<ToolBar name="browser_bar" newline="true"> ++ <Action name="file_print"/> ++ <Action name="go_back"/> ++ <Action name="go_forward"/> ++ <Action name="go_home"/> ++ <Action name="view_redisplay"/> ++ <Action name="go_stop"/> ++ <Separator/> ++ <Action name="info_security"/> ++ <Action name="view_zoom"/> ++ <Action name="view_load_images"/> ++</ToolBar> ++<ToolBar name="edit_bar" newline="true"> ++ <Action name="file_open"/> ++ <Action name="file_save"/> ++ <Action name="file_save_as"/> ++ <Action name="file_print"/> ++ <Separator/> ++ <Action name="edit_undo"/> ++ <Action name="edit_redo"/> ++ <Action name="edit_cut"/> ++ <Action name="edit_copy"/> ++ <Action name="edit_paste"/> ++</ToolBar> ++</kpartgui> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditimpl.cc kdenox_new/konq-embed/src/bookmarkeditimpl.cc +--- kdenox/konq-embed/src/bookmarkeditimpl.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/bookmarkeditimpl.cc 2007-02-25 19:17:29.000000000 +1300 +@@ -24,6 +24,8 @@ + + #include "bookmarkeditimpl.h" + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + + #include "mainwindowbase.h" +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditor.cc kdenox_new/konq-embed/src/bookmarkeditor.cc +--- kdenox/konq-embed/src/bookmarkeditor.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/bookmarkeditor.cc 2007-02-25 17:40:34.000000000 +1300 +@@ -16,6 +16,8 @@ + #include <qimage.h> + #include <qpixmap.h> + ++#include <kstandarddirs.h> ++ + namespace + { + QPixmap getPngPixmap( const QString &name ) +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.cc kdenox_new/konq-embed/src/bookmarkeditorhierarchical.cc +--- kdenox/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/bookmarkeditorhierarchical.cc 2007-02-25 20:46:27.000000000 +1300 +@@ -22,11 +22,20 @@ + + */ + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + ++#include <xmltree.h> ++#include <qtoolbutton.h> ++#include <qlineedit.h> ++#include <qlabel.h> ++ + #include "bookmarkeditorhierarchical.h" + #include <assert.h> + #include "bookmarks.h" ++#include "bookmarkeditimpl.h" ++ + + //////// HELPER FUNCTIONS ///////////////////////////////// + namespace { +@@ -204,7 +213,7 @@ + void BookmarkEditorHierarchical::newFolder() + { + BookmarkEdit *edit = new BookmarkEdit( this ); +- edit->setCaption( i18n( "New Folder" ) ); ++ edit->setCaption( tr( "New Folder" ) ); + edit->location->setEnabled(false); + edit->location->hide(); + edit->TextLabel2->hide(); +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorhierarchical.h kdenox_new/konq-embed/src/bookmarkeditorhierarchical.h +--- kdenox/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/bookmarkeditorhierarchical.h 2007-02-25 18:27:17.000000000 +1300 +@@ -22,9 +22,10 @@ + #ifndef __bookmarkeditorhierarchical_h__ + #define __bookmarkeditorhierarchical_h__ + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + +-#include <config.h> + #include "bookmarkeditorimpl.h" + + class XMLElement; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarkeditorimpl.cc kdenox_new/konq-embed/src/bookmarkeditorimpl.cc +--- kdenox/konq-embed/src/bookmarkeditorimpl.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/bookmarkeditorimpl.cc 2007-02-25 19:16:40.000000000 +1300 +@@ -23,12 +23,12 @@ + + #include "bookmarkeditorimpl.h" + ++#include <config.h> ++ + #if defined(ENABLE_BOOKMARKS) + + #include "bookmarkeditimpl.h" + +-#include <config.h> +- + #include "bookmarks.h" + #include "xmltree.h" + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.cc kdenox_new/konq-embed/src/bookmarks.cc +--- kdenox/konq-embed/src/bookmarks.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/bookmarks.cc 2007-02-25 18:28:08.000000000 +1300 +@@ -24,6 +24,8 @@ + + #if defined(ENABLE_BOOKMARKS) + ++#warning BOOKMARKS ARE ENABLED ++ + #include "bookmarks.h" + #include "xmltree.h" + #include "mainwindowbase.h" +@@ -39,6 +41,7 @@ + #include <qstring.h> + #include <qwidget.h> + #include <qfile.h> ++#include <qtimer.h> + + #include <klocale.h> + #include <kstandarddirs.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/bookmarks.h kdenox_new/konq-embed/src/bookmarks.h +--- kdenox/konq-embed/src/bookmarks.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/bookmarks.h 2007-02-25 18:26:32.000000000 +1300 +@@ -34,6 +34,8 @@ + + #include <kurl.h> + ++#define QPtrList QList ++ + class QPopupMenu; + class XMLElement; + class ActionMenu; +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.cc kdenox_new/konq-embed/src/mainwindow_qpe.cc +--- kdenox/konq-embed/src/mainwindow_qpe.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/mainwindow_qpe.cc 2007-02-25 17:46:32.000000000 +1300 +@@ -90,7 +90,7 @@ + return iconSet; + } + +-void MainWindowBase::statusJustText( const QString &_msg, bool ) ++void MainWindowQPE::statusJustText( const QString &_msg, bool ) + { + QString msg = _msg; + msg.replace( QRegExp( "</?qt>" ), QString::null ); +@@ -99,7 +99,7 @@ + Global::statusMessage( msg ); + } + +-void MainWindowBase::statusMessage( const QString &_msg, bool visible ) ++void MainWindowQPE::statusMessage( const QString &_msg, bool visible ) + { + statusJustText( _msg, visible ); + } +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_qpe.h kdenox_new/konq-embed/src/mainwindow_qpe.h +--- kdenox/konq-embed/src/mainwindow_qpe.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/mainwindow_qpe.h 2007-02-25 17:47:23.000000000 +1300 +@@ -39,6 +39,10 @@ + + protected: + virtual QIconSet loadPixmap( const char * const xpm[] ); ++ ++protected slots: ++ virtual void statusJustText( const QString &msg, bool visible ); ++ virtual void statusMessage( const QString &msg, bool visible ); + }; + + #endif +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_road.cc kdenox_new/konq-embed/src/mainwindow_road.cc +--- kdenox/konq-embed/src/mainwindow_road.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/mainwindow_road.cc 2007-02-25 20:32:12.000000000 +1300 +@@ -20,10 +20,11 @@ + + #ifdef KONQ_GUI_ROAD + ++#include <config.h> ++ + #include "mainwindow_road.h" + #include "popupaction.h" + +- + #include <qpopupmenu.h> + #include <qtoolbar.h> + #include <qaction.h> +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/mainwindow_x11.cc kdenox_new/konq-embed/src/mainwindow_x11.cc +--- kdenox/konq-embed/src/mainwindow_x11.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/mainwindow_x11.cc 2007-02-25 20:33:10.000000000 +1300 +@@ -21,6 +21,8 @@ + + // Implementation of the X11 GUI + ++#include <config.h> ++ + #include "mainwindow_x11.h" + #include "popupaction.h" + +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.cc kdenox_new/konq-embed/src/roadtabbar.cc +--- kdenox/konq-embed/src/roadtabbar.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/roadtabbar.cc 2007-02-25 17:44:19.000000000 +1300 +@@ -18,6 +18,9 @@ + Boston, MA 02110-1301, USA. + */ + ++#include <qaction.h> ++#include <kconfig.h> ++ + #include "roadtabbar.h" + + RoadTabParams::RoadTabParams( const QIconSet &defaultIS, const QIconSet &loadingIS, +@@ -114,12 +117,12 @@ + + void RoadTabBar::initContextMenu() + { +- QAction *qa = new QAction( QString::null, i18n( "&Close Tab" ), 0, this, "contextTabClose" ); ++ QAction *qa = new QAction( QString::null, tr( "&Close Tab" ), 0, this, "contextTabClose" ); + connect( qa, SIGNAL( activated() ), this, SLOT( contextClose() ) ); + qa->addTo( &m_contextMenu ); + m_contextMenuCloseId = m_contextMenu.idAt( 0 ); + +- qa = new QAction( QString::null, i18n( "&New tab" ), 0, this, "contextTabNew" ); ++ qa = new QAction( QString::null, tr( "&New tab" ), 0, this, "contextTabNew" ); + connect( qa, SIGNAL( activated() ), this, SIGNAL( requestNewView() ) ); + qa->addTo( &m_contextMenu ); + } +@@ -184,7 +187,7 @@ + { + QString caption( text ); + if ( caption.isEmpty() ) +- caption = i18n( "Blank" ); ++ caption = tr( "Blank" ); + // the caption may not exceed a given width, so shorten it if necessary + // the following is inefficient, but clear, correct, and unlikely to be a bottleneck + if ( m_params.fontMetrics.width( caption ) > m_params.maxWidth ) +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/roadtabbar.h kdenox_new/konq-embed/src/roadtabbar.h +--- kdenox/konq-embed/src/roadtabbar.h 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/roadtabbar.h 2007-02-25 17:42:40.000000000 +1300 +@@ -22,6 +22,9 @@ + #define __roadtabbar_h__ + + #include <qtabbar.h> ++#include <qpopupmenu.h> ++ ++#include "view.h" + + struct RoadTabParams + { +diff -urNd --exclude-from=excludelist kdenox/konq-embed/src/run.cc kdenox_new/konq-embed/src/run.cc +--- kdenox/konq-embed/src/run.cc 2007-02-12 22:25:55.000000000 +1300 ++++ kdenox_new/konq-embed/src/run.cc 2007-02-25 17:34:35.000000000 +1300 +@@ -24,6 +24,7 @@ + #include "view.h" + + #include <khtml_part.h> ++#include <khtml_ext.h> + + Run::Run( View *view, const KURL &url, const KParts::URLArgs &args ) + : KHTMLRun( static_cast<KHTMLPart *>(view->part()), 0, +@@ -48,7 +49,7 @@ + // if ( isTextExecutable(mimeType) ) + // mimeType = QString::fromLatin1("text/plain"); // view, don't execute + QString suggestedFilename = m_strURL.filename(); +- KHTMLPopupGUIClient::saveURL( part()->widget(), i18n( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type ); ++ KHTMLPopupGUIClient::saveURL( part()->widget(), QObject::tr( "Save As" ), m_strURL, urlArgs().metaData(), QString::null, 0, suggestedFilename, type ); + + m_bFinished = true; + emit error(); +diff -urNd --exclude-from=excludelist kdenox/konq-embed/dropin/khtml/khtml_ext.cpp kdenox_new/konq-embed/dropin/khtml/khtml_ext.cpp +--- kdenox/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-12 22:25:56.000000000 +1300 ++++ kdenox_new/konq-embed/dropin/khtml/khtml_ext.cpp 2007-02-24 03:38:24.000000000 +1300 +@@ -115,7 +115,8 @@ + const QString &filter, long cacheId, + const QString & suggestedFilename, const QString& mimeType ) + { +- QString name = QString::fromLatin1( "index.html" ); ++/* ++QString name = QString::fromLatin1( "index.html" ); + if ( !suggestedFilename.isEmpty() ) + name = suggestedFilename; + else if ( !url.fileName().isEmpty() ) +@@ -166,6 +167,7 @@ + + if ( destURL.isValid() ) + saveURL(url, destURL, metadata, cacheId, f); ++*/ + } + + void KHTMLPopupGUIClient::saveURL( const KURL &url, const KURL &destURL, diff --git a/packages/konqueror/konqueror-embedded-20070212/konqueror.desktop b/packages/konqueror/konqueror-embedded-20070212/konqueror.desktop new file mode 100644 index 0000000000..1f473117e9 --- /dev/null +++ b/packages/konqueror/konqueror-embedded-20070212/konqueror.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Exec=konqueror +Icon=konqueror/konqueror +Type=Application +Name=konqueror +Comment=Konqueror browser diff --git a/packages/konqueror/konqueror-embedded-20070212/konqueror.png b/packages/konqueror/konqueror-embedded-20070212/konqueror.png Binary files differnew file mode 100644 index 0000000000..879d470bbf --- /dev/null +++ b/packages/konqueror/konqueror-embedded-20070212/konqueror.png diff --git a/packages/konqueror/konqueror-embedded_20070212.bb b/packages/konqueror/konqueror-embedded_20070212.bb new file mode 100644 index 0000000000..31eebaa860 --- /dev/null +++ b/packages/konqueror/konqueror-embedded_20070212.bb @@ -0,0 +1,94 @@ +DESCRIPTION = "KDE Web Browser Konqueror, QtE based Palmtop Environments Edition" +SECTION = "opie/applications" +PRIORITY = "optional" +HOMEPAGE = "http://www.konqueror.org/" +DEPENDS = "openssl libpcre virtual/libqte2 dcopidl-native dcopidl2cpp-native" +LICENSE = "LGPL/GPL" +PR = "r4" + +# this Konqueror needs the KDEDIR set and the font helvetica installed on the target + +inherit autotools + +SRC_URI = "http://www.basyskom.de/uploads/175/35/kdenox_snapshot_Qt2_2007.02.12.tar.bz2 \ + file://konqe_new_opie.patch;patch=1 \ + file://konqe-kapplication.patch;patch=1" +S = "${WORKDIR}/kdenox" + +export QMAKE = "${STAGING_BINDIR_NATIVE}/qmake" +export MOC = "${STAGING_BINDIR_NATIVE}/moc" +export UIC = "${STAGING_BINDIR_NATIVE}/uic" +export exec_prefix = "${palmtopdir}" +#export CXXFLAGS = "-fexceptions -frtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DQT_NO_DOM -DENABLE_BOOKMARKS" +export CXXFLAGS = "-fexceptions -fno-rtti -DKJS_VERBOSE=1 -DQT_THREAD_SUPPORT -DQ_OS_UNIX -DENABLE_BOOKMARKS" +export PCRE_CONFIG = "invalid" +# uncomment this for a static build +# EXTRAFLAGS = "-lts" +# EXTRAFLAGS_c7x0 = "-lts -laticore" +export EXTRA_OEMAKE = "EXTRA_LDFLAGS='${EXTRAFLAGS}'" + +EXTRA_OECONF = '--prefix=${palmtopdir} \ + --exec-prefix=${palmtopdir} \ +# --includedir=${STAGING_INCDIR} \ + --includedir=/usr/include \ + --with-extra-includes=${STAGING_INCDIR} \ + --with-extra-libs=${STAGING_LIBDIR} \ + --with-qtopia-dir=${OPIEDIR} \ + --with-ssl-version=0.9.7e \ + --with-ssl-dir=${STAGING_LIBDIR}/.. \ + --with-qt-includes=${STAGING_DIR}/${HOST_SYS}/qt2/include \ + --with-qt-libraries=${STAGING_DIR}/${HOST_SYS}/qt2/lib \ + --with-qt-dir=${QTDIR} \ + --enable-fontsubs \ + --with-konq-tmp-prefix=/tmp/kde-cache \ +# --enable-static \ + --disable-static \ + --enable-shared \ + --disable-debug \ + --with-gui=qpe \ + --with-ipv6-lookup=no \ + --without-xinerama \ +# --disable-scrollbars \ + --disable-selection \ + --disable-bookmarks \ + --with-javascript=static \ + --enable-debug=yes \ + --disable-printing \ +# --enable-pcre \ + --disable-pcre \ + --without-arts \ + --enable-jshostext \ + --disable-selection \ + --enable-final \ + --enable-qt-embedded \ +# --enable-rtti-embedded \ + --enable-mt \ + --enable-qpe \ + --enable-qt-mt \ + --enable-fwnewepg=yes \ + --enable-embedded ' + +do_configure_prepend() { + cd ${S} + if ! test -L admin + then + ln -s ../kdelibs/admin admin + fi +} + +do_compile_prepend() { + perl admin/am_edit +} + +do_install_append() { + install -d ${D}${palmtopdir}/apps/Applications + install -m 0644 ${FILESDIR}/konqueror.desktop ${D}${palmtopdir}/apps/Applications/ + install -d ${D}${palmtopdir}/pics/konqueror + install -m 0644 ${FILESDIR}/konqueror.png ${D}${palmtopdir}/pics/konqueror/ + mv ${D}${palmtopdir}/bin/konqueror ${D}${palmtopdir}/bin/konqueror.bin + { echo '#!/bin/sh' ; echo "KDEDIR=/usr exec ${palmtopdir}/bin/konqueror.bin" ; } > ${D}${palmtopdir}/bin/konqueror + chmod 0755 ${D}${palmtopdir}/bin/konqueror +} + +FILES_${PN} = "${palmtopdir} ${datadir}" + 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/liba52/liba52_0.7.4.bb b/packages/liba52/liba52_0.7.4.bb index 3093f57a6a..e29e6c9b2f 100644 --- a/packages/liba52/liba52_0.7.4.bb +++ b/packages/liba52/liba52_0.7.4.bb @@ -1,22 +1,23 @@ -LICENSE = "GPL" - DESCRIPTION = "Library for reading some sort of media format." +LICENSE = "GPL" SECTION = "libs" PRIORITY = "optional" -DEPENDS = "" +PR = "r1" inherit autotools SRC_URI = "http://liba52.sourceforge.net/files/a52dec-${PV}.tar.gz" -S="${WORKDIR}/a52dec-${PV}" +S = "${WORKDIR}/a52dec-${PV}" EXTRA_OECONF = " --enable-shared " -PACKAGES = "${PN} ${PN}-dev a52dec a52dec-doc" +PACKAGES =+ "a52dec a52dec-dbg a52dec-doc" -FILES_${PN} = " ${libdir}/liba52.so.0 ${libdir}/liba52.so.0.0.0 " +FILES_${PN} = " ${libdir}/liba52.so.0 ${libdir}/liba52.so.0.0.0 " FILES_${PN}-dev = " ${includedir}/a52dec/*.h ${libdir}/liba52.so ${libdir}/liba52.la ${libdir}/liba52.a " +FILES_${PN}-dbg = " ${libdir}/.debug/*" FILES_a52dec = " ${bindir}/* " +FILES_a52dec-dbg = " ${bindir}/.debug/* " FILES_a52dec-doc = " ${mandir}/man1/* " do_stage() { diff --git a/packages/libcap/libcap-1.10/syscall.patch b/packages/libcap/libcap-1.10/syscall.patch new file mode 100644 index 0000000000..86163f2b1a --- /dev/null +++ b/packages/libcap/libcap-1.10/syscall.patch @@ -0,0 +1,20 @@ +Index: libcap-1.10/libcap/cap_sys.c +=================================================================== +--- libcap-1.10.orig/libcap/cap_sys.c 2007-05-24 10:59:24.000000000 +0200 ++++ libcap-1.10/libcap/cap_sys.c 2007-05-24 11:01:42.000000000 +0200 +@@ -11,6 +11,7 @@ + #define __LIBRARY__ + #include <linux/unistd.h> + ++#if 0 + _syscall2(int, capget, + cap_user_header_t, header, + cap_user_data_t, data) +@@ -18,6 +19,7 @@ + _syscall2(int, capset, + cap_user_header_t, header, + const cap_user_data_t, data) ++#endif + + /* + * $Log: cap_sys.c,v $ diff --git a/packages/libcap/libcap_1.10.bb b/packages/libcap/libcap_1.10.bb index a7e1068f49..172acaca6e 100644 --- a/packages/libcap/libcap_1.10.bb +++ b/packages/libcap/libcap_1.10.bb @@ -3,12 +3,14 @@ PRIORITY = "optional" SECTION = "libs" LICENSE = "GPL" DEPENDS = "bison-native flex-native" +PR = "r1" CFLAGS_append = " -I${S}/libcap/include" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/security/linux-privs/kernel-2.4/${PN}-${PV}.tar.bz2 \ file://makenames.patch;patch=1 \ - file://make.patch;patch=1 " + file://make.patch;patch=1 \ + file://syscall.patch;patch=1" FILES_${PN} = "${libdir}" FILES_${PN}-dev = "${includedir}" diff --git a/packages/libeventdb/libeventdb_0.90.bb b/packages/libeventdb/libeventdb_0.90.bb new file mode 100644 index 0000000000..2372db528b --- /dev/null +++ b/packages/libeventdb/libeventdb_0.90.bb @@ -0,0 +1,14 @@ +LICENSE = "LGPL" +DESCRIPTION = "Database access library for GPE calendar" +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "libgpewidget libgpepimc sqlite" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit pkgconfig gpe autotools + + +do_stage () { + autotools_stage_all +} diff --git a/packages/libeventdb/libeventdb_svn.bb b/packages/libeventdb/libeventdb_svn.bb index c18d28d273..4361df2ea4 100644 --- a/packages/libeventdb/libeventdb_svn.bb +++ b/packages/libeventdb/libeventdb_svn.bb @@ -5,7 +5,7 @@ PRIORITY = "optional" DEPENDS = "libgpewidget libgpepimc sqlite" -PV = "0.30+svn${SRCDATE}" +PV = "0.90+svn${SRCDATE}" PR = "r0" DEFAULT_PREFERENCE = "-1" diff --git a/packages/libfakekey/libfakekey_svn.bb b/packages/libfakekey/libfakekey_svn.bb index 74947ab0ff..f4c7afb856 100644 --- a/packages/libfakekey/libfakekey_svn.bb +++ b/packages/libfakekey/libfakekey_svn.bb @@ -1,9 +1,9 @@ -DESCRIPTION = "Matchbox keyboard" +DESCRIPTION = "Library to generate fake keys for Matchbox keyboard" LICENSE = "GPL" DEPENDS = "libxtst" SECTION = "x11/wm" PR="r2" -PV = "0.0+svn${SRCDATE}" +PV = "0.2+svn${SRCDATE}" SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http" diff --git a/packages/libgpepimc/libgpepimc_0.9.bb b/packages/libgpepimc/libgpepimc_0.9.bb new file mode 100644 index 0000000000..57b7b22191 --- /dev/null +++ b/packages/libgpepimc/libgpepimc_0.9.bb @@ -0,0 +1 @@ +require libgpepimc.inc diff --git a/packages/libgpevtype/libgpevtype_0.50.bb b/packages/libgpevtype/libgpevtype_0.50.bb new file mode 100644 index 0000000000..b9d0c19378 --- /dev/null +++ b/packages/libgpevtype/libgpevtype_0.50.bb @@ -0,0 +1,17 @@ +LICENSE = "LGPL" +DESCRIPTION = "Data interchange library for GPE" +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "libmimedir libeventdb" +PR = "r0" + +inherit pkgconfig gpe autotools + +SRC_URI = "${GPE_MIRROR}/${PN}-${PV}.tar.bz2" + + +do_stage () { + autotools_stage_all +} + + diff --git a/packages/libgpevtype/libgpevtype_svn.bb b/packages/libgpevtype/libgpevtype_svn.bb index 88e03c9b64..44388ba37c 100644 --- a/packages/libgpevtype/libgpevtype_svn.bb +++ b/packages/libgpevtype/libgpevtype_svn.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Data interchange library for GPE" SECTION = "gpe/libs" PRIORITY = "optional" LICENSE = "LGPL" -DEPENDS = "libmimedir libeventdb" +DEPENDS = "libmimedir libeventdb libtododb" PV = "0.50+svn${SRCDATE}" PR = "r1" diff --git a/packages/libhandoff/libhandoff_0.1.bb b/packages/libhandoff/libhandoff_0.1.bb new file mode 100644 index 0000000000..bafbb9ec10 --- /dev/null +++ b/packages/libhandoff/libhandoff_0.1.bb @@ -0,0 +1,13 @@ +LICENSE = "GPL" +DESCRIPTION = "handoff library for GPE calendar" +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "glib-2.0" + +inherit pkgconfig gpe autotools + +GPE_TARBALL_SUFFIX = "bz2" + +do_stage () { + autotools_stage_all +} diff --git a/packages/pointercal/files/magician/.mtn2git_empty b/packages/libhangul/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pointercal/files/magician/.mtn2git_empty +++ 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/libiconv/libiconv_1.9.2.bb b/packages/libiconv/libiconv_1.11.bb index 059d5fd4c5..de87486a87 100644 --- a/packages/libiconv/libiconv_1.9.2.bb +++ b/packages/libiconv/libiconv_1.11.bb @@ -13,11 +13,18 @@ S = "${WORKDIR}/libiconv-${PV}" inherit autotools pkgconfig -EXTRA_OECONF += "--enable-shared --enable-static" +EXTRA_OECONF += "--enable-shared --enable-static --enable-relocatable" do_configure () { rm -f m4/libtool.m4 libcharset/m4/libtool.m4 autotools_do_configure + + # As we do not really regenerate the Makefiles... and they have stale deps to this file + touch m4/libtool.m4 + + # Fix stupid libtool... handling. rpath handling can't be disabled and the Makefile's can't be regenerated.. + # (GNU sed required) + sed -i s/^hardcode_libdir_flag_spec/#hardcode_libdir_flag_spec/ ${S}/*-libtool } do_stage () { diff --git a/packages/libmpeg2/libmpeg2-0.4.0b/Makefile.patch b/packages/libmpeg2/libmpeg2-0.4.0b/Makefile.patch deleted file mode 100644 index 78cf8b7275..0000000000 --- a/packages/libmpeg2/libmpeg2-0.4.0b/Makefile.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- ./src/Makefile.am.old -+++ ./src/Makefile.am -@@ -8,7 +8,9 @@ - mpeg2dec_SOURCES = mpeg2dec.c dump_state.c getopt.c gettimeofday.c - mpeg2dec_LDADD = $(libvo) $(libmpeg2) $(libmpeg2convert) - extract_mpeg2_SOURCES = extract_mpeg2.c getopt.c -+extract_mpeg2_LDADD = $(libvo) $(libmpeg2) $(libmpeg2convert) - corrupt_mpeg2_SOURCES = corrupt_mpeg2.c getopt.c -+corrupt_mpeg2_LDADD = $(libvo) $(libmpeg2) $(libmpeg2convert) - - man_MANS = mpeg2dec.1 extract_mpeg2.1 - diff --git a/packages/libmpeg2/libmpeg2_0.4.0b.bb b/packages/libmpeg2/libmpeg2_0.4.0b.bb deleted file mode 100644 index bd57ed86d4..0000000000 --- a/packages/libmpeg2/libmpeg2_0.4.0b.bb +++ /dev/null @@ -1,35 +0,0 @@ -DESCRIPTION = "MPEG Video Decoder Library" -SECTION = "libs" -PRIORITY = "optional" -DEPENDS = "virtual/libsdl" -LICENSE = "GPL" - -PR = "r2" - -SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz \ - file://Makefile.patch;patch=1 " -S = "${WORKDIR}/mpeg2dec-0.4.0" - -inherit autotools lib_package - -EXTRA_OECONF="--enable-shared" - -LEAD_SONAME = "libmpeg2.so.0" - -PACKAGES =+ "libmpeg2convert libmpeg2convert-dev" - -FILES_libmpeg2convert = "${libdir}/libmpeg2convert.so.*" -FILES_libmpeg2convert-dev = "${libdir}/libmpeg2convert.so \ - ${libdir}/libmpeg2convert.*a \ - ${libdir}/pkgconfig/libmpeg2convert.pc \ - ${includedir}/mpeg2dec/mpeg2convert.h" - - -do_stage() { - oe_libinstall -a -so -C libmpeg2 libmpeg2 ${STAGING_LIBDIR} - oe_libinstall -a -so -C libmpeg2/convert libmpeg2convert ${STAGING_LIBDIR} - - install -d ${STAGING_INCDIR}/mpeg2dec/ - install -m 0644 include/mpeg2.h ${STAGING_INCDIR}/mpeg2dec/ - install -m 0644 include/mpeg2convert.h ${STAGING_INCDIR}/mpeg2dec/ -} diff --git a/packages/librcf/librcf_0.4.bb b/packages/librcf/librcf_0.4.bb index 13012fa803..aad6f7c338 100644 --- a/packages/librcf/librcf_0.4.bb +++ b/packages/librcf/librcf_0.4.bb @@ -1,7 +1,6 @@ DESCRIPTION = "A library for object-oriented inter process communication" SECTION = "base" PRIORITY = "optional" -MAINTAINER = "Martin Dietze <dietze@4g-systems.com>" LICENSE = "unknown" DEPENDS="zlib openssl boost-asio" RDEPENDS = "libstdc++5 libgcc1" diff --git a/packages/libschedule/libschedule_0.17.bb b/packages/libschedule/libschedule_0.17.bb new file mode 100644 index 0000000000..ad8cb72712 --- /dev/null +++ b/packages/libschedule/libschedule_0.17.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "RTC alarm handling library for GPE" +SECTION = "gpe/libs" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "glib-2.0 sqlite libgpewidget" +PR = "r0" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit autotools pkgconfig gpe + +do_stage () { + autotools_stage_all +} diff --git a/packages/libsdl/libsdl-qpe-1.2.9/explicit-extern-C.patch b/packages/libsdl/libsdl-qpe-1.2.9/explicit-extern-C.patch new file mode 100644 index 0000000000..3dd44bea27 --- /dev/null +++ b/packages/libsdl/libsdl-qpe-1.2.9/explicit-extern-C.patch @@ -0,0 +1,22 @@ +--- SDL-1.2.9-orig/src/video/SDL_sysvideo.h.org 2005-04-17 10:40:41.000000000 +0000 ++++ SDL-1.2.9-orig/src/video/SDL_sysvideo.h 2007-05-25 07:34:38.000000000 +0000 +@@ -332,6 +332,9 @@ + SDL_VideoDevice *(*create)(int devindex); + } VideoBootStrap; + ++#ifdef __cplusplus ++extern "C" { ++#endif + #ifdef ENABLE_X11 + extern VideoBootStrap X11_bootstrap; + #endif +@@ -417,6 +420,9 @@ + #ifdef ENABLE_RISCOS + extern VideoBootStrap RISCOS_bootstrap; + #endif ++#ifdef __cplusplus ++}; ++#endif + /* This is the current video device */ + extern SDL_VideoDevice *current_video; + diff --git a/packages/libsdl/libsdl-qpe-1.2.9/no-PAGE_SIZE.patch b/packages/libsdl/libsdl-qpe-1.2.9/no-PAGE_SIZE.patch new file mode 100644 index 0000000000..856aaf2472 --- /dev/null +++ b/packages/libsdl/libsdl-qpe-1.2.9/no-PAGE_SIZE.patch @@ -0,0 +1,11 @@ +--- SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc.org 2007-05-25 07:07:32.000000000 +0000 ++++ SDL-1.2.9-orig/src/video/qtopia/SDL_sysvideo.cc 2007-05-25 07:24:48.000000000 +0000 +@@ -809,7 +809,7 @@ + current->pitch = finfo.line_length; + current->flags = (SDL_FULLSCREEN|SDL_HWSURFACE); + mapped_offset = (((long)finfo.smem_start) - +- (((long)finfo.smem_start)&~(PAGE_SIZE-1))); ++ (((long)finfo.smem_start)&~(getpagesize()-1))); + mapped_memlen = finfo.smem_len+mapped_offset; + if(console_fd >0 ) { + mapped_mem = mmap(NULL, mapped_memlen,PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0); diff --git a/packages/libsdl/libsdl-qpe_1.2.9.bb b/packages/libsdl/libsdl-qpe_1.2.9.bb index eaca6b88aa..2fbf66b5d8 100644 --- a/packages/libsdl/libsdl-qpe_1.2.9.bb +++ b/packages/libsdl/libsdl-qpe_1.2.9.bb @@ -6,7 +6,7 @@ PROVIDES = "virtual/libsdl" LICENSE = "LGPL" # NOTE: make sure to keep PR in sync with libsdl-x11 -PR = "r0" +PR = "r1" SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \ file://agawa-piro-mickey-1.2.9.patch;patch=1 \ @@ -16,6 +16,8 @@ SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \ file://ipaq-1.2.9.patch;patch=1 \ file://SDL-Akita-1.2.9.patch;patch=1 \ file://fixlibs-1.2.9.patch;patch=1 \ + file://no-PAGE_SIZE.patch;patch=1 \ + file://explicit-extern-C.patch;patch=1 \ file://acinclude.m4" S = "${WORKDIR}/SDL-${PV}" diff --git a/packages/libsdl/libsdl-x11_1.2.9.bb b/packages/libsdl/libsdl-x11_1.2.9.bb index 1fba3c4174..42c0ad3579 100644 --- a/packages/libsdl/libsdl-x11_1.2.9.bb +++ b/packages/libsdl/libsdl-x11_1.2.9.bb @@ -1,11 +1,11 @@ DESCRIPTION = "Simple DirectMedia Layer - X11 Edition" SECTION = "libs" PRIORITY = "optional" -DEPENDS = "alsa-lib virtual/libx11 libxext" +DEPENDS = "alsa-lib mesa virtual/libx11 libxext" PROVIDES = "virtual/libsdl" LICENSE = "LGPL" -PR = "r1" +PR = "r2" SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \ file://extra-keys.patch;patch=1 \ @@ -20,7 +20,7 @@ EXTRA_OECONF = "--disable-static --disable-debug --enable-cdrom --enable-threads --disable-mintaudio --disable-nasm --enable-video-x11 --disable-video-dga \ --disable-video-fbcon --disable-video-directfb --disable-video-ps2gs \ --disable-video-xbios --disable-video-gem --disable-video-dummy \ - --disable-video-opengl --enable-input-events --enable-pthreads \ + --enable-video-opengl --enable-input-events --enable-pthreads \ --disable-video-picogui --disable-video-qtopia --enable-dlopen" FILES_${PN} = "${libdir}/lib*.so.*" diff --git a/packages/libsoundgen/libsoundgen_0.5.bb b/packages/libsoundgen/libsoundgen_0.5.bb new file mode 100644 index 0000000000..5c65141ab5 --- /dev/null +++ b/packages/libsoundgen/libsoundgen_0.5.bb @@ -0,0 +1,13 @@ +SECTION = "x11/libs" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit gpe autotools pkgconfig +LICENSE = "LGPL" +DEPENDS = "esound" + + +do_stage() { + autotools_stage_all +} + diff --git a/packages/libtododb/libtododb_0.11.bb b/packages/libtododb/libtododb_0.11.bb new file mode 100644 index 0000000000..7d0bb146e9 --- /dev/null +++ b/packages/libtododb/libtododb_0.11.bb @@ -0,0 +1,18 @@ +LICENSE = "LGPL" +DESCRIPTION = "Database access for GPE to-do list" +SECTION = "gpe/libs" +PRIORITY = "optional" +DEPENDS = "libgpewidget libgpepimc sqlite" + +GPE_TARBALL_SUFFIX = "bz2" +inherit pkgconfig gpe autotools + + +do_stage () { + autotools_stage_all +} + +do_install () { + gpe_do_install +# oe_runmake PREFIX=${prefix} DESTDIR=${D} install-devel +} diff --git a/packages/libtool/libtool-1.5.10/never-ever-do-rpath.patch b/packages/libtool/libtool-1.5.10/never-ever-do-rpath.patch new file mode 100644 index 0000000000..7c92524b3b --- /dev/null +++ b/packages/libtool/libtool-1.5.10/never-ever-do-rpath.patch @@ -0,0 +1,32 @@ +Well, brute force to disable rpath. + +Only +-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) ++#hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +should be necessary.... + +Index: libtool-1.5.10/libtool.m4 +=================================================================== +--- libtool-1.5.10.orig/libtool.m4 2007-05-27 23:31:51.000000000 +0200 ++++ libtool-1.5.10/libtool.m4 2007-05-27 23:50:26.000000000 +0200 +@@ -4244,16 +4244,16 @@ + hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + + # Whether we should hardcode library paths into libraries. +-hardcode_into_libs=$hardcode_into_libs ++hardcode_into_libs=no + + # Flag to hardcode \$libdir into a binary during linking. + # This must work even if \$libdir does not exist. +-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) ++hardcode_libdir_flag_spec= + + # If ld is used when linking, flag to hardcode \$libdir into + # a binary during linking. This must work even if \$libdir does + # not exist. +-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) ++hardcode_libdir_flag_spec_ld= + + # Whether we need a single -rpath flag with a separated argument. + hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) diff --git a/packages/libtool/libtool-cross_1.5.10.bb b/packages/libtool/libtool-cross_1.5.10.bb index 575448e447..f4ca30ca6d 100644 --- a/packages/libtool/libtool-cross_1.5.10.bb +++ b/packages/libtool/libtool-cross_1.5.10.bb @@ -8,7 +8,8 @@ SRC_URI_append = " file://libdir-la.patch;patch=1 \ file://prefix.patch;patch=1 \ file://tag.patch;patch=1 \ file://tag1.patch;patch=1 \ - file://install-path-check.patch;patch=1" + file://install-path-check.patch;patch=1 \ + file://never-ever-do-rpath.patch;patch=1 " S = "${WORKDIR}/libtool-${PV}" prefix = "${STAGING_DIR}" diff --git a/packages/lighttpd/lighttpd/configure.in.patch b/packages/lighttpd/lighttpd/configure.in.patch index 3387fe5635..772103cf76 100644 --- a/packages/lighttpd/lighttpd/configure.in.patch +++ b/packages/lighttpd/lighttpd/configure.in.patch @@ -7,7 +7,7 @@ Index: lighttpd-1.4.13/configure.in AC_MSG_RESULT([$WITH_PCRE]) -if test "x$cross_compiling" = xno -a "$WITH_PCRE" != "no"; then -+#if test "x$cross_compiling" = xno -a "$WITH_PCRE" != "no"; then ++if test "$WITH_PCRE" != "no"; then AC_PATH_PROG(PCRECONFIG, pcre-config) - if test x"$PCRECONFIG" != x; then @@ -28,7 +28,7 @@ Index: lighttpd-1.4.13/configure.in - fi -fi +# fi -+#fi ++fi AC_SUBST(PCRE_LIB) diff --git a/packages/lighttpd/lighttpd_1.4.13.bb b/packages/lighttpd/lighttpd_1.4.13.bb index 504a129db8..ac063e7fe5 100644 --- a/packages/lighttpd/lighttpd_1.4.13.bb +++ b/packages/lighttpd/lighttpd_1.4.13.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Web server" SECTION = "net" DEPENDS = "sqlite3 libpcre libxml2" LICENSE = "BSD" -PR = "r5" +PR = "r6" SRC_URI = "http://www.lighttpd.net/download/lighttpd-1.4.13.tar.gz \ file://configure.in.patch;patch=1 \ diff --git a/packages/lighttpd/lighttpd_1.4.15.bb b/packages/lighttpd/lighttpd_1.4.15.bb new file mode 100644 index 0000000000..ad90d934df --- /dev/null +++ b/packages/lighttpd/lighttpd_1.4.15.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "Web server" +SECTION = "net" +LICENSE = "BSD" +PR = "r1" + +SRC_URI = "http://www.lighttpd.net/download/lighttpd-1.4.15.tar.gz \ + file://configure.in.patch;patch=1 \ + file://src-server.c.patch;patch=1 \ + file://index.html \ + file://lighttpd.conf \ + file://lighttpd" + +EXTRA_OECONF="--without-bzip2 \ + --without-ldap \ + --without-lua \ + --without-memcache \ + --without-pcre \ + --without-webdav-props \ + --without-webdav-locks \ + --without-openssl \ + --disable-nls \ + --disable-static" + +inherit autotools pkgconfig update-rc.d + +INITSCRIPT_NAME = "lighttpd" +INITSCRIPT_PARAMS = "defaults 70" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d ${D}/www/logs ${D}/www/pages/dav ${D}/www/var + install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/index.html ${D}/www/pages/ +} + +do_stage() { + autotools_stage_all +} + +FILES_${PN} += "${libdir}/mod_*.so ${sysconfdir} /www" diff --git a/packages/linux-libc-headers/linux-libc-headers_2.6.20.bb b/packages/linux-libc-headers/linux-libc-headers_2.6.20.bb index 457f16c1f7..8145a80f8d 100644 --- a/packages/linux-libc-headers/linux-libc-headers_2.6.20.bb +++ b/packages/linux-libc-headers/linux-libc-headers_2.6.20.bb @@ -2,7 +2,7 @@ require linux-libc-headers.inc INHIBIT_DEFAULT_DEPS = "1" DEPENDS = "unifdef-native" -PR = "r6" +PR = "r7" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://procinfo.h" @@ -25,6 +25,8 @@ set_arch() { sparc64*) ARCH=sparc64 ;; sparc*) ARCH=sparc ;; x86_64*) ARCH=x86_64 ;; + avr32*) ARCH=avr32 ;; + bfin*) ARCH=blackfin ;; esac } diff --git a/packages/linux/ixp4xx-kernel_2.6.21.1.bb b/packages/linux/ixp4xx-kernel_2.6.21.1.bb index 8025465058..c0cd8295e5 100644 --- a/packages/linux/ixp4xx-kernel_2.6.21.1.bb +++ b/packages/linux/ixp4xx-kernel_2.6.21.1.bb @@ -6,7 +6,7 @@ # http://trac.nslu2-linux.org/kernel/ # # The revision that is pulled from SVN is specified below -IXP4XX_KERNEL_SVN_REV = "847" +IXP4XX_KERNEL_SVN_REV = "861" # # The directory containing the patches to be applied is # specified below diff --git a/packages/linux/linux-dht-walnut-2.6.12.6/dht-walnut_defconfig b/packages/linux/linux-dht-walnut-2.6.12.6/dht-walnut_defconfig deleted file mode 100644 index be30ceb938..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12.6/dht-walnut_defconfig +++ /dev/null @@ -1,2024 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.12.6 -# Thu Jun 8 14:36:36 2006 -# -CONFIG_MMU=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_HAVE_DEC_LOCK=y -CONFIG_PPC=y -CONFIG_PPC32=y -CONFIG_GENERIC_NVRAM=y -CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="" -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_HOTPLUG=y -CONFIG_KOBJECT_UEVENT=y -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_EMBEDDED=y -CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_EXTRA_PASS=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -# CONFIG_EPOLL is not set -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y - -# -# Processor -# -# CONFIG_6xx is not set -CONFIG_40x=y -# CONFIG_44x is not set -# CONFIG_POWER3 is not set -# CONFIG_POWER4 is not set -# CONFIG_8xx is not set -# CONFIG_E500 is not set -CONFIG_MATH_EMULATION=y -# CONFIG_CPU_FREQ is not set -CONFIG_4xx=y - -# -# IBM 4xx options -# -# CONFIG_ASH is not set -# CONFIG_BUBINGA is not set -# CONFIG_CPCI405 is not set -# CONFIG_EP405 is not set -# CONFIG_OAK is not set -# CONFIG_REDWOOD_5 is not set -# CONFIG_REDWOOD_6 is not set -# CONFIG_SYCAMORE is not set -CONFIG_WALNUT=y -# CONFIG_XILINX_ML300 is not set -CONFIG_IBM405_ERR77=y -CONFIG_IBM405_ERR51=y -CONFIG_IBM_OCP=y -CONFIG_BIOS_FIXUP=y -CONFIG_405GP=y -# CONFIG_PPC4xx_DMA is not set -CONFIG_PPC_GEN550=y -# CONFIG_PM is not set -CONFIG_UART0_TTYS0=y -# CONFIG_UART0_TTYS1 is not set -CONFIG_NOT_COHERENT_CACHE=y - -# -# Platform options -# -# CONFIG_PC_KEYBOARD is not set -# CONFIG_SMP is not set -# CONFIG_PREEMPT is not set -# CONFIG_HIGHMEM is not set -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_MISC is not set -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="ip=on" -CONFIG_ISA_DMA_API=y - -# -# Bus options -# -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_LEGACY_PROC=y -# CONFIG_PCI_NAMES is not set - -# -# PCCARD (PCMCIA/CardBus) support -# -CONFIG_PCCARD=y -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_TCIC=m -CONFIG_PCCARD_NONSTATIC=m - -# -# Advanced setup -# -# CONFIG_ADVANCED_OPTIONS is not set - -# -# Default settings for advanced configuration options are used -# -CONFIG_HIGHMEM_START=0xfe000000 -CONFIG_LOWMEM_SIZE=0x30000000 -CONFIG_KERNEL_START=0xc0000000 -CONFIG_TASK_SIZE=0x80000000 -CONFIG_CONSISTENT_START=0xff100000 -CONFIG_CONSISTENT_SIZE=0x00200000 -CONFIG_BOOT_LOAD=0x00400000 - -# -# Device Drivers -# - -# -# Generic Driver Options -# -# CONFIG_STANDALONE is not set -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y -CONFIG_MTD_REDBOOT_PARTS=m -CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 -# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set -# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set -# CONFIG_MTD_CMDLINE_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLOCK=m -CONFIG_MTD_BLOCK_RO=m -CONFIG_FTL=m -CONFIG_NFTL=m -# CONFIG_NFTL_RW is not set -CONFIG_INFTL=m - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=m -CONFIG_MTD_JEDECPROBE=m -CONFIG_MTD_GEN_PROBE=m -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_CFI_INTELEXT=m -CONFIG_MTD_CFI_AMDSTD=m -CONFIG_MTD_CFI_AMDSTD_RETRY=0 -CONFIG_MTD_CFI_STAA=m -CONFIG_MTD_CFI_UTIL=m -CONFIG_MTD_RAM=m -CONFIG_MTD_ROM=m -CONFIG_MTD_ABSENT=m -# CONFIG_MTD_XIP is not set - -# -# Mapping drivers for chip access -# -CONFIG_MTD_COMPLEX_MAPPINGS=y -CONFIG_MTD_PHYSMAP=m -CONFIG_MTD_PHYSMAP_START=0x8000000 -CONFIG_MTD_PHYSMAP_LEN=0x4000000 -CONFIG_MTD_PHYSMAP_BANKWIDTH=2 -CONFIG_MTD_WALNUT=m -CONFIG_MTD_PCI=m - -# -# Self-contained MTD device drivers -# -CONFIG_MTD_PMC551=m -CONFIG_MTD_PMC551_BUGFIX=y -# CONFIG_MTD_PMC551_DEBUG is not set -CONFIG_MTD_SLRAM=m -CONFIG_MTD_PHRAM=m -# CONFIG_MTD_MTDRAM is not set -CONFIG_MTD_BLKMTD=m -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -CONFIG_MTD_DOC2000=m -CONFIG_MTD_DOC2001=m -CONFIG_MTD_DOC2001PLUS=m -CONFIG_MTD_DOCPROBE=m -CONFIG_MTD_DOCECC=m -# CONFIG_MTD_DOCPROBE_ADVANCED is not set -CONFIG_MTD_DOCPROBE_ADDRESS=0 - -# -# NAND Flash Device Drivers -# -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -CONFIG_MTD_NAND_IDS=m -CONFIG_MTD_NAND_DISKONCHIP=m -# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 -# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set -# CONFIG_MTD_NAND_NANDSIM is not set - -# -# Parallel port support -# -CONFIG_PARPORT=m -CONFIG_PARPORT_PC=m -# CONFIG_PARPORT_SERIAL is not set -# CONFIG_PARPORT_PC_FIFO is not set -# CONFIG_PARPORT_PC_SUPERIO is not set -# CONFIG_PARPORT_PC_PCMCIA is not set -CONFIG_PARPORT_NOT_PC=y -# CONFIG_PARPORT_GSC is not set -# CONFIG_PARPORT_1284 is not set - -# -# Plug and Play support -# - -# -# Block devices -# -CONFIG_BLK_DEV_FD=m -CONFIG_PARIDE=m -CONFIG_PARIDE_PARPORT=m - -# -# Parallel IDE high-level drivers -# -CONFIG_PARIDE_PD=m -CONFIG_PARIDE_PCD=m -CONFIG_PARIDE_PF=m -CONFIG_PARIDE_PT=m -CONFIG_PARIDE_PG=m - -# -# Parallel IDE protocol modules -# -CONFIG_PARIDE_ATEN=m -CONFIG_PARIDE_BPCK=m -CONFIG_PARIDE_BPCK6=m -CONFIG_PARIDE_COMM=m -CONFIG_PARIDE_DSTR=m -CONFIG_PARIDE_FIT2=m -CONFIG_PARIDE_FIT3=m -CONFIG_PARIDE_EPAT=m -# CONFIG_PARIDE_EPATC8 is not set -CONFIG_PARIDE_EPIA=m -CONFIG_PARIDE_FRIQ=m -CONFIG_PARIDE_FRPW=m -CONFIG_PARIDE_KBIC=m -CONFIG_PARIDE_KTTI=m -CONFIG_PARIDE_ON20=m -CONFIG_PARIDE_ON26=m -CONFIG_BLK_CPQ_DA=m -CONFIG_BLK_CPQ_CISS_DA=m -# CONFIG_CISS_SCSI_TAPE is not set -CONFIG_BLK_DEV_DAC960=m -CONFIG_BLK_DEV_UMEM=m -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_SX8=m -CONFIG_BLK_DEV_UB=m -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -# CONFIG_LBD is not set -CONFIG_CDROM_PKTCDVD=m -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -# CONFIG_CDROM_PKTCDVD_WCACHE is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -CONFIG_ATA_OVER_ETH=m - -# -# ATA/ATAPI/MFM/RLL support -# -CONFIG_IDE=y -CONFIG_BLK_DEV_IDE=y - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=y -# CONFIG_IDEDISK_MULTI_MODE is not set -CONFIG_BLK_DEV_IDECS=m -CONFIG_BLK_DEV_IDECD=y -CONFIG_BLK_DEV_IDETAPE=m -CONFIG_BLK_DEV_IDEFLOPPY=m -CONFIG_BLK_DEV_IDESCSI=m -# CONFIG_IDE_TASK_IOCTL is not set - -# -# IDE chipset support/bugfixes -# -CONFIG_IDE_GENERIC=y -CONFIG_BLK_DEV_IDEPCI=y -# CONFIG_IDEPCI_SHARE_IRQ is not set -CONFIG_BLK_DEV_OFFBOARD=y -CONFIG_BLK_DEV_GENERIC=y -CONFIG_BLK_DEV_OPTI621=m -CONFIG_BLK_DEV_SL82C105=m -CONFIG_BLK_DEV_IDEDMA_PCI=y -# CONFIG_BLK_DEV_IDEDMA_FORCED is not set -CONFIG_IDEDMA_PCI_AUTO=y -# CONFIG_IDEDMA_ONLYDISK is not set -CONFIG_BLK_DEV_AEC62XX=m -CONFIG_BLK_DEV_ALI15X3=m -# CONFIG_WDC_ALI15X3 is not set -CONFIG_BLK_DEV_AMD74XX=m -CONFIG_BLK_DEV_CMD64X=m -CONFIG_BLK_DEV_TRIFLEX=m -CONFIG_BLK_DEV_CY82C693=m -CONFIG_BLK_DEV_CS5520=m -CONFIG_BLK_DEV_CS5530=m -CONFIG_BLK_DEV_HPT34X=m -# CONFIG_HPT34X_AUTODMA is not set -CONFIG_BLK_DEV_HPT366=m -CONFIG_BLK_DEV_SC1200=m -CONFIG_BLK_DEV_PIIX=m -CONFIG_BLK_DEV_NS87415=m -CONFIG_BLK_DEV_PDC202XX_OLD=y -# CONFIG_PDC202XX_BURST is not set -CONFIG_BLK_DEV_PDC202XX_NEW=m -# CONFIG_PDC202XX_FORCE is not set -CONFIG_BLK_DEV_SVWKS=m -CONFIG_BLK_DEV_SIIMAGE=m -CONFIG_BLK_DEV_SLC90E66=m -CONFIG_BLK_DEV_TRM290=m -CONFIG_BLK_DEV_VIA82CXXX=m -# CONFIG_IDE_ARM is not set -CONFIG_BLK_DEV_IDEDMA=y -# CONFIG_IDEDMA_IVB is not set -CONFIG_IDEDMA_AUTO=y -# CONFIG_BLK_DEV_HD is not set - -# -# SCSI device support -# -CONFIG_SCSI=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=y -# CONFIG_BLK_DEV_SR_VENDOR is not set -CONFIG_CHR_DEV_SG=y - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set - -# -# SCSI Transport Attributes -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -# CONFIG_SCSI_ISCSI_ATTRS is not set - -# -# SCSI low-level drivers -# -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_ACARD=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -CONFIG_AIC7XXX_DEBUG_ENABLE=y -CONFIG_AIC7XXX_DEBUG_MASK=0 -CONFIG_AIC7XXX_REG_PRETTY_PRINT=y -CONFIG_SCSI_AIC7XXX_OLD=m -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_ENABLE_RD_STRM is not set -CONFIG_AIC79XX_DEBUG_ENABLE=y -CONFIG_AIC79XX_DEBUG_MASK=0 -CONFIG_AIC79XX_REG_PRETTY_PRINT=y -CONFIG_SCSI_DPT_I2O=m -# CONFIG_MEGARAID_NEWGEN is not set -CONFIG_MEGARAID_LEGACY=m -# CONFIG_SCSI_SATA is not set -CONFIG_SCSI_BUSLOGIC=m -# CONFIG_SCSI_OMIT_FLASHPOINT is not set -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_EATA=m -# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set -# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set -CONFIG_SCSI_EATA_MAX_TAGS=16 -# CONFIG_SCSI_FUTURE_DOMAIN is not set -CONFIG_SCSI_GDTH=m -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_PPA=m -CONFIG_SCSI_IMM=m -# CONFIG_SCSI_IZIP_EPP16 is not set -# CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set -CONFIG_SCSI_IPR=m -# CONFIG_SCSI_IPR_TRACE is not set -# CONFIG_SCSI_IPR_DUMP is not set -CONFIG_SCSI_QLOGIC_FC=m -# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set -CONFIG_SCSI_QLOGIC_1280=m -# CONFIG_SCSI_QLOGIC_1280_1040 is not set -CONFIG_SCSI_QLA2XXX=y -CONFIG_SCSI_QLA21XX=m -CONFIG_SCSI_QLA22XX=m -CONFIG_SCSI_QLA2300=m -CONFIG_SCSI_QLA2322=m -CONFIG_SCSI_QLA6312=m -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m -CONFIG_SCSI_NSP32=m -CONFIG_SCSI_DEBUG=m - -# -# PCMCIA SCSI adapter support -# -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m - -# -# Multi-device support (RAID and LVM) -# -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID5=m -CONFIG_MD_RAID6=m -CONFIG_MD_MULTIPATH=m -CONFIG_MD_FAULTY=m -CONFIG_BLK_DEV_DM=m -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_MIRROR=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_EMC=m - -# -# Fusion MPT device support -# -CONFIG_FUSION=m -CONFIG_FUSION_MAX_SGE=40 -CONFIG_FUSION_CTL=m - -# -# IEEE 1394 (FireWire) support -# -CONFIG_IEEE1394=m - -# -# Subsystem Options -# -# CONFIG_IEEE1394_VERBOSEDEBUG is not set -# CONFIG_IEEE1394_OUI_DB is not set -CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y -CONFIG_IEEE1394_CONFIG_ROM_IP1394=y - -# -# Device Drivers -# -CONFIG_IEEE1394_PCILYNX=m -CONFIG_IEEE1394_OHCI1394=m - -# -# Protocol Drivers -# -CONFIG_IEEE1394_VIDEO1394=m -CONFIG_IEEE1394_SBP2=m -CONFIG_IEEE1394_SBP2_PHYS_DMA=y -CONFIG_IEEE1394_ETH1394=m -CONFIG_IEEE1394_DV1394=m -CONFIG_IEEE1394_RAWIO=m -CONFIG_IEEE1394_CMP=m -CONFIG_IEEE1394_AMDTP=m - -# -# I2O device support -# -# CONFIG_I2O is not set - -# -# Macintosh device drivers -# - -# -# Networking support -# -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_MULTIPLE_TABLES=y -# CONFIG_IP_ROUTE_FWMARK is not set -CONFIG_IP_ROUTE_MULTIPATH=y -# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -# CONFIG_IP_PIMSM_V1 is not set -# CONFIG_IP_PIMSM_V2 is not set -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_TUNNEL=m -CONFIG_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set - -# -# IP: Virtual Server Configuration -# -# CONFIG_IP_VS is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_TUNNEL=m -CONFIG_IPV6_TUNNEL=m -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_BRIDGE_NETFILTER=y - -# -# IP: Netfilter Configuration -# -CONFIG_IP_NF_CONNTRACK=m -CONFIG_IP_NF_CT_ACCT=y -CONFIG_IP_NF_CONNTRACK_MARK=y -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_LIMIT=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_MAC=m -CONFIG_IP_NF_MATCH_PKTTYPE=m -CONFIG_IP_NF_MATCH_MARK=m -CONFIG_IP_NF_MATCH_MULTIPORT=m -CONFIG_IP_NF_MATCH_TOS=m -CONFIG_IP_NF_MATCH_RECENT=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_DSCP=m -CONFIG_IP_NF_MATCH_AH_ESP=m -CONFIG_IP_NF_MATCH_LENGTH=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_TCPMSS=m -CONFIG_IP_NF_MATCH_HELPER=m -CONFIG_IP_NF_MATCH_STATE=m -CONFIG_IP_NF_MATCH_CONNTRACK=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_PHYSDEV=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_REALM=m -CONFIG_IP_NF_MATCH_SCTP=m -CONFIG_IP_NF_MATCH_COMMENT=m -CONFIG_IP_NF_MATCH_CONNMARK=m -CONFIG_IP_NF_MATCH_HASHLIMIT=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_SAME=m -CONFIG_IP_NF_NAT_SNMP_BASIC=m -CONFIG_IP_NF_NAT_IRC=m -CONFIG_IP_NF_NAT_FTP=m -CONFIG_IP_NF_NAT_TFTP=m -CONFIG_IP_NF_NAT_AMANDA=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_DSCP=m -CONFIG_IP_NF_TARGET_MARK=m -CONFIG_IP_NF_TARGET_CLASSIFY=m -CONFIG_IP_NF_TARGET_CONNMARK=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_TARGET_NOTRACK=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m - -# -# IPv6: Netfilter Configuration (EXPERIMENTAL) -# -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_LIMIT=m -CONFIG_IP6_NF_MATCH_MAC=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_MULTIPORT=m -CONFIG_IP6_NF_MATCH_OWNER=m -CONFIG_IP6_NF_MATCH_MARK=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_AHESP=m -CONFIG_IP6_NF_MATCH_LENGTH=m -CONFIG_IP6_NF_MATCH_EUI64=m -# CONFIG_IP6_NF_MATCH_PHYSDEV is not set -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_TARGET_MARK=m -CONFIG_IP6_NF_RAW=m - -# -# DECnet: Netfilter Configuration -# -# CONFIG_DECNET_NF_GRABULATOR is not set - -# -# Bridge: Netfilter Configuration -# -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m -CONFIG_XFRM=y -CONFIG_XFRM_USER=m - -# -# SCTP Configuration (EXPERIMENTAL) -# -CONFIG_IP_SCTP=m -# CONFIG_SCTP_DBG_MSG is not set -# CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_HMAC_NONE is not set -# CONFIG_SCTP_HMAC_SHA1 is not set -CONFIG_SCTP_HMAC_MD5=y -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -# CONFIG_ATM_CLIP_NO_ICMP is not set -CONFIG_ATM_LANE=m -CONFIG_ATM_MPOA=m -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_DECNET=m -# CONFIG_DECNET_ROUTER is not set -CONFIG_LLC=m -CONFIG_LLC2=m -CONFIG_IPX=m -# CONFIG_IPX_INTERN is not set -CONFIG_ATALK=m -# CONFIG_DEV_APPLETALK is not set -CONFIG_X25=m -CONFIG_LAPB=m -# CONFIG_NET_DIVERT is not set -CONFIG_ECONET=m -# CONFIG_ECONET_AUNUDP is not set -# CONFIG_ECONET_NATIVE is not set -CONFIG_WAN_ROUTER=m - -# -# QoS and/or fair queueing -# -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CLK_JIFFIES=y -# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set -# CONFIG_NET_SCH_CLK_CPU is not set -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_QOS=y -CONFIG_NET_ESTIMATOR=y -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -# CONFIG_CLS_U32_PERF is not set -# CONFIG_NET_CLS_IND is not set -# CONFIG_CLS_U32_MARK is not set -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_CLS_ACT is not set -CONFIG_NET_CLS_POLICE=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -CONFIG_NETPOLL=y -# CONFIG_NETPOLL_RX is not set -# CONFIG_NETPOLL_TRAP is not set -CONFIG_NET_POLL_CONTROLLER=y -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -CONFIG_BONDING=m -CONFIG_EQUALIZER=m -CONFIG_TUN=m - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set - -# -# Ethernet (10 or 100Mbit) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -CONFIG_NET_VENDOR_3COM=y -CONFIG_VORTEX=m -CONFIG_TYPHOON=m - -# -# Tulip family network device support -# -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_TULIP=m -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_PCMCIA_XIRTULIP=m -CONFIG_HP100=m -CONFIG_IBM_EMAC=y -# CONFIG_IBM_EMAC_ERRMSG is not set -CONFIG_IBM_EMAC_RXB=128 -CONFIG_IBM_EMAC_TXB=64 -CONFIG_IBM_EMAC_FGAP=8 -CONFIG_IBM_EMAC_SKBRES=0 -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -# CONFIG_AMD8111E_NAPI is not set -CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADAPTEC_STARFIRE_NAPI is not set -CONFIG_B44=m -CONFIG_FORCEDETH=m -CONFIG_DGRS=m -CONFIG_EEPRO100=m -CONFIG_E100=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m -CONFIG_NE2K_PCI=m -CONFIG_8139CP=m -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8139TOO_8129 is not set -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_SIS900=m -CONFIG_EPIC100=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_TLAN=m -CONFIG_VIA_RHINE=m -# CONFIG_VIA_RHINE_MMIO is not set - -# -# Ethernet (1000 Mbit) -# -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -# CONFIG_E1000_NAPI is not set -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -# CONFIG_R8169_NAPI is not set -# CONFIG_R8169_VLAN is not set -CONFIG_SK98LIN=m -CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m - -# -# Ethernet (10000 Mbit) -# -# CONFIG_IXGB is not set -# CONFIG_S2IO is not set - -# -# Token Ring devices -# -# CONFIG_TR is not set - -# -# Wireless LAN (non-hamradio) -# -CONFIG_NET_RADIO=y - -# -# Obsolete Wireless cards support (pre-802.11) -# -CONFIG_STRIP=m -CONFIG_PCMCIA_WAVELAN=m -CONFIG_PCMCIA_NETWAVE=m - -# -# Wireless 802.11 Frequency Hopping cards support -# -CONFIG_PCMCIA_RAYCS=m - -# -# Wireless 802.11b ISA/PCI cards support -# -CONFIG_HERMES=m -CONFIG_PLX_HERMES=m -CONFIG_TMD_HERMES=m -CONFIG_PCI_HERMES=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m - -# -# Wireless 802.11b Pcmcia/Cardbus cards support -# -CONFIG_PCMCIA_HERMES=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_PCMCIA_WL3501=m - -# -# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support -# -CONFIG_PRISM54=m -CONFIG_NET_WIRELESS=y - -# -# PCMCIA network device support -# -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m - -# -# Wan interfaces -# -CONFIG_WAN=y -CONFIG_DSCC4=m -# CONFIG_DSCC4_PCISYNC is not set -# CONFIG_DSCC4_PCI_RST is not set -CONFIG_LANMEDIA=m -CONFIG_SYNCLINK_SYNCPPP=m -CONFIG_HDLC=m -# CONFIG_HDLC_RAW is not set -# CONFIG_HDLC_RAW_ETH is not set -# CONFIG_HDLC_CISCO is not set -# CONFIG_HDLC_FR is not set -# CONFIG_HDLC_PPP is not set -# CONFIG_HDLC_X25 is not set -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -CONFIG_PC300=m - -# -# Cyclades-PC300 MLPPP support is disabled. -# - -# -# Refer to the file README.mlppp, provided by PC300 package. -# -CONFIG_FARSYNC=m -CONFIG_DLCI=m -CONFIG_DLCI_COUNT=24 -CONFIG_DLCI_MAX=8 -# CONFIG_WAN_ROUTER_DRIVERS is not set -CONFIG_LAPBETHER=m -CONFIG_X25_ASY=m - -# -# ATM drivers -# -# CONFIG_ATM_TCP is not set -# CONFIG_ATM_LANAI is not set -# CONFIG_ATM_ENI is not set -# CONFIG_ATM_FIRESTREAM is not set -# CONFIG_ATM_ZATM is not set -# CONFIG_ATM_NICSTAR is not set -# CONFIG_ATM_IDT77252 is not set -# CONFIG_ATM_AMBASSADOR is not set -# CONFIG_ATM_HORIZON is not set -# CONFIG_ATM_IA is not set -# CONFIG_ATM_FORE200E_MAYBE is not set -# CONFIG_ATM_HE is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE_MPPC=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -# CONFIG_SLIP_MODE_SLIP6 is not set -# CONFIG_NET_FC is not set -CONFIG_SHAPER=m -CONFIG_NETCONSOLE=m - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Telephony Support -# -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INPUT_JOYDEV=y -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_NEWTON is not set -CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -# CONFIG_SERIO_I8042 is not set -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_PARKBD is not set -# CONFIG_SERIO_PCIPS2 is not set -# CONFIG_SERIO_LIBPS2 is not set -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -# CONFIG_SERIAL_8250_CS is not set -CONFIG_SERIAL_8250_NR_UARTS=4 -# CONFIG_SERIAL_8250_EXTENDED is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 -CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set -CONFIG_PPDEV=m -CONFIG_TIPAR=m - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m -# CONFIG_WDT_501_PCI is not set - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_NVRAM=m -CONFIG_GEN_RTC=m -# CONFIG_GEN_RTC_X is not set -CONFIG_DTLK=m -CONFIG_R3964=m -CONFIG_APPLICOM=m - -# -# Ftape, the floppy tape device driver -# -CONFIG_AGP=m -CONFIG_DRM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m -CONFIG_DRM_RADEON=m -CONFIG_DRM_MGA=m -CONFIG_DRM_SIS=m - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -CONFIG_RAW_DRIVER=m -CONFIG_MAX_RAW_DEVS=256 - -# -# TPM devices -# -CONFIG_TCG_TPM=m -CONFIG_TCG_NSC=m -CONFIG_TCG_ATMEL=m - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -CONFIG_I2C_ALGOBIT=y -CONFIG_I2C_ALGOPCF=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_I810 is not set -# CONFIG_I2C_PIIX4 is not set -CONFIG_I2C_IBM_IIC=y -CONFIG_I2C_ISA=m -# CONFIG_I2C_MPC is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_PARPORT is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PROSAVAGE is not set -# CONFIG_I2C_SAVAGE4 is not set -# CONFIG_SCx200_ACB is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_VOODOO3 is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Hardware Sensors Chip support -# -CONFIG_I2C_SENSOR=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ASB100=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_FSCHER=m -CONFIG_SENSORS_FSCPOS=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83627HF=m - -# -# Other I2C Chip support -# -CONFIG_SENSORS_DS1337=m -CONFIG_SENSORS_EEPROM=m -CONFIG_SENSORS_PCF8574=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_RTC8564=m -CONFIG_SENSORS_M41T00=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set - -# -# Dallas's 1-wire bus -# -# CONFIG_W1 is not set - -# -# Misc devices -# - -# -# Multimedia devices -# -CONFIG_VIDEO_DEV=m - -# -# Video For Linux -# - -# -# Video Adapters -# -CONFIG_VIDEO_BT848=m -CONFIG_VIDEO_BWQCAM=m -CONFIG_VIDEO_CQCAM=m -CONFIG_VIDEO_CPIA=m -CONFIG_VIDEO_CPIA_USB=m -CONFIG_VIDEO_SAA5246A=m -CONFIG_VIDEO_SAA5249=m -CONFIG_TUNER_3036=m -CONFIG_VIDEO_STRADIS=m -CONFIG_VIDEO_ZORAN=m -CONFIG_VIDEO_ZORAN_BUZ=m -CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_DC30=m -CONFIG_VIDEO_ZORAN_LML33=m -CONFIG_VIDEO_ZORAN_LML33R10=m -CONFIG_VIDEO_SAA7134=m -# CONFIG_VIDEO_SAA7134_DVB is not set -CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_DPC=m -CONFIG_VIDEO_HEXIUM_ORION=m -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_CX88=m -# CONFIG_VIDEO_CX88_DVB is not set -CONFIG_VIDEO_OVCAMCHIP=m - -# -# Radio Adapters -# -CONFIG_RADIO_GEMTEK_PCI=m -CONFIG_RADIO_MAXIRADIO=m -CONFIG_RADIO_MAESTRO=m - -# -# Digital Video Broadcasting Devices -# -CONFIG_DVB=y -CONFIG_DVB_CORE=m - -# -# Supported SAA7146 based PCI Adapters -# -CONFIG_DVB_AV7110=m -# CONFIG_DVB_AV7110_FIRMWARE is not set -CONFIG_DVB_AV7110_OSD=y -CONFIG_DVB_BUDGET=m -CONFIG_DVB_BUDGET_CI=m -CONFIG_DVB_BUDGET_AV=m -CONFIG_DVB_BUDGET_PATCH=m - -# -# Supported USB Adapters -# -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m -CONFIG_DVB_DIBUSB=m -# CONFIG_DVB_DIBUSB_MISDESIGNED_DEVICES is not set -# CONFIG_DVB_DIBCOM_DEBUG is not set -CONFIG_DVB_CINERGYT2=m -# CONFIG_DVB_CINERGYT2_TUNING is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -CONFIG_DVB_B2C2_FLEXCOP=m -CONFIG_DVB_B2C2_FLEXCOP_PCI=m -CONFIG_DVB_B2C2_FLEXCOP_USB=m -# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set -CONFIG_DVB_B2C2_SKYSTAR=m - -# -# Supported BT878 Adapters -# -CONFIG_DVB_BT8XX=m - -# -# Supported DVB Frontends -# - -# -# Customise DVB Frontends -# - -# -# DVB-S (satellite) frontends -# -CONFIG_DVB_STV0299=m -CONFIG_DVB_CX24110=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA80XX=m -CONFIG_DVB_MT312=m -CONFIG_DVB_VES1X93=m - -# -# DVB-T (terrestrial) frontends -# -CONFIG_DVB_SP8870=m -CONFIG_DVB_SP887X=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_L64781=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_MT352=m -CONFIG_DVB_DIB3000MB=m -CONFIG_DVB_DIB3000MC=m - -# -# DVB-C (cable) frontends -# -CONFIG_DVB_ATMEL_AT76C651=m -CONFIG_DVB_VES1820=m -CONFIG_DVB_TDA10021=m -CONFIG_DVB_STV0297=m - -# -# ATSC (North American/Korean Terresterial DTV) frontends -# -CONFIG_DVB_NXT2002=m -CONFIG_DVB_OR51211=m -CONFIG_DVB_OR51132=m -CONFIG_VIDEO_SAA7146=m -CONFIG_VIDEO_SAA7146_VV=m -CONFIG_VIDEO_VIDEOBUF=m -CONFIG_VIDEO_TUNER=m -CONFIG_VIDEO_BUF=m -CONFIG_VIDEO_BTCX=m -CONFIG_VIDEO_IR=m -CONFIG_VIDEO_TVEEPROM=m - -# -# Graphics support -# -CONFIG_FB=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SOFT_CURSOR=y -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_MODE_HELPERS is not set -CONFIG_FB_TILEBLITTING=y -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_CT65550 is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -CONFIG_FB_MATROX=y -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -# CONFIG_FB_MATROX_I2C is not set -# CONFIG_FB_MATROX_MULTIHEAD is not set -# CONFIG_FB_RADEON_OLD is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y - -# -# Logo configuration -# -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_SPLIT_ISO is not set -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=y -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_CS is not set - -# -# USB Device Class drivers -# -CONFIG_USB_BLUETOOTH_TTY=m -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=y - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_DATAFAB=y -CONFIG_USB_STORAGE_FREECOM=y -CONFIG_USB_STORAGE_ISD200=y -CONFIG_USB_STORAGE_DPCM=y -CONFIG_USB_STORAGE_USBAT=y -CONFIG_USB_STORAGE_SDDR09=y -CONFIG_USB_STORAGE_SDDR55=y -CONFIG_USB_STORAGE_JUMPSHOT=y - -# -# USB Input Devices -# -CONFIG_USB_HID=y -CONFIG_USB_HIDINPUT=y -# CONFIG_HID_FF is not set -CONFIG_USB_HIDDEV=y -CONFIG_USB_AIPTEK=m -CONFIG_USB_WACOM=m -CONFIG_USB_KBTAB=m -CONFIG_USB_POWERMATE=m -# CONFIG_USB_MTOUCH is not set -CONFIG_USB_EGALAX=m -CONFIG_USB_XPAD=m -CONFIG_USB_ATI_REMOTE=m - -# -# USB Imaging devices -# -CONFIG_USB_MDC800=m -CONFIG_USB_MICROTEK=m - -# -# USB Multimedia devices -# -CONFIG_USB_DABUSB=m -CONFIG_USB_VICAM=m -CONFIG_USB_DSBR=m -CONFIG_USB_IBMCAM=m -CONFIG_USB_KONICAWC=m -CONFIG_USB_OV511=m -CONFIG_USB_SE401=m -CONFIG_USB_SN9C102=m -CONFIG_USB_STV680=m -CONFIG_USB_W9968CF=m -CONFIG_USB_PWC=m - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -CONFIG_USB_PEGASUS=y -# CONFIG_USB_RTL8150 is not set -CONFIG_USB_USBNET=y - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y -CONFIG_USB_KC2190=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y -# CONFIG_USB_ZD1201 is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# -CONFIG_USB_USS720=m - -# -# USB Serial Converter support -# -CONFIG_USB_SERIAL=m -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRPRIME=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP2101=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_KEYSPAN_PDA=m -CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -CONFIG_USB_SERIAL_KLSI=m -CONFIG_USB_SERIAL_KOBIL_SCT=m -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_TI=m -CONFIG_USB_SERIAL_CYBERJACK=m -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_OPTION=m -CONFIG_USB_SERIAL_OMNINET=m -CONFIG_USB_EZUSB=y - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -CONFIG_USB_AUERSWALD=m -CONFIG_USB_RIO500=m -CONFIG_USB_LEGOTOWER=m -CONFIG_USB_LCD=m -CONFIG_USB_LED=m -CONFIG_USB_CYTHERM=m -CONFIG_USB_PHIDGETKIT=m -CONFIG_USB_PHIDGETSERVO=m -CONFIG_USB_IDMOUSE=m -CONFIG_USB_SISUSBVGA=m -# CONFIG_USB_TEST is not set - -# -# USB ATM/DSL drivers -# -CONFIG_USB_ATM=m -# CONFIG_USB_SPEEDTOUCH is not set - -# -# USB Gadget Support -# -CONFIG_USB_GADGET=m -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_NET2280=y -CONFIG_USB_NET2280=m -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -CONFIG_USB_GADGET_DUALSPEED=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_ETH_RNDIS=y -CONFIG_USB_GADGETFS=m -CONFIG_USB_FILE_STORAGE=m -# CONFIG_USB_FILE_STORAGE_TEST is not set -CONFIG_USB_G_SERIAL=m - -# -# MMC/SD Card support -# -# CONFIG_MMC is not set - -# -# InfiniBand support -# -# CONFIG_INFINIBAND is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -# CONFIG_REISERFS_PROC_INFO is not set -# CONFIG_REISERFS_FS_XATTR is not set -CONFIG_JFS_FS=m -# CONFIG_JFS_POSIX_ACL is not set -# CONFIG_JFS_SECURITY is not set -# CONFIG_JFS_DEBUG is not set -# CONFIG_JFS_STATISTICS is not set - -# -# XFS support -# -# CONFIG_XFS_FS is not set -CONFIG_MINIX_FS=m -CONFIG_ROMFS_FS=m -CONFIG_QUOTA=y -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_DNOTIFY=y -CONFIG_AUTOFS_FS=m -CONFIG_AUTOFS4_FS=m - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=y -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_ZISOFS_FS=y -CONFIG_UDF_FS=y -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -CONFIG_NTFS_FS=m -# CONFIG_NTFS_DEBUG is not set -CONFIG_NTFS_RW=y - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_SYSFS=y -CONFIG_DEVFS_FS=y -# CONFIG_DEVFS_MOUNT is not set -# CONFIG_DEVFS_DEBUG is not set -# CONFIG_DEVPTS_FS_XATTR is not set -CONFIG_TMPFS=y -# CONFIG_TMPFS_XATTR is not set -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y - -# -# Miscellaneous filesystems -# -CONFIG_ADFS_FS=m -# CONFIG_ADFS_FS_RW is not set -CONFIG_AFFS_FS=m -CONFIG_HFS_FS=m -CONFIG_HFSPLUS_FS=m -CONFIG_BEFS_FS=m -# CONFIG_BEFS_DEBUG is not set -CONFIG_BFS_FS=m -CONFIG_EFS_FS=m -CONFIG_JFFS_FS=m -CONFIG_JFFS_FS_VERBOSE=0 -# CONFIG_JFFS_PROC_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_JFFS2_FS_NAND is not set -# CONFIG_JFFS2_FS_NOR_ECC is not set -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -CONFIG_CRAMFS=y -CONFIG_VXFS_FS=m -CONFIG_HPFS_FS=m -CONFIG_QNX4FS_FS=m -CONFIG_SYSV_FS=m -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set - -# -# Network File Systems -# -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -# CONFIG_NFSD_V3 is not set -CONFIG_NFSD_TCP=y -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -CONFIG_RPCSEC_GSS_SPKM3=m -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set -CONFIG_CIFS=m -# CONFIG_CIFS_STATS is not set -# CONFIG_CIFS_XATTR is not set -# CONFIG_CIFS_EXPERIMENTAL is not set -CONFIG_NCP_FS=m -# CONFIG_NCPFS_PACKET_SIGNING is not set -# CONFIG_NCPFS_IOCTL_LOCKING is not set -# CONFIG_NCPFS_STRONG is not set -# CONFIG_NCPFS_NFS_NS is not set -# CONFIG_NCPFS_OS2_NS is not set -# CONFIG_NCPFS_SMALLDOS is not set -# CONFIG_NCPFS_NLS is not set -# CONFIG_NCPFS_EXTRAS is not set -CONFIG_CODA_FS=m -# CONFIG_CODA_FS_OLD_API is not set -CONFIG_AFS_FS=m -CONFIG_RXRPC=m - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -CONFIG_MAC_PARTITION=y -CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -# CONFIG_LDM_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_EFI_PARTITION is not set - -# -# Native Language Support -# -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_737=m -CONFIG_NLS_CODEPAGE_775=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_CODEPAGE_852=m -CONFIG_NLS_CODEPAGE_855=m -CONFIG_NLS_CODEPAGE_857=m -CONFIG_NLS_CODEPAGE_860=m -CONFIG_NLS_CODEPAGE_861=m -CONFIG_NLS_CODEPAGE_862=m -CONFIG_NLS_CODEPAGE_863=m -CONFIG_NLS_CODEPAGE_864=m -CONFIG_NLS_CODEPAGE_865=m -CONFIG_NLS_CODEPAGE_866=m -CONFIG_NLS_CODEPAGE_869=m -CONFIG_NLS_CODEPAGE_936=m -CONFIG_NLS_CODEPAGE_950=m -CONFIG_NLS_CODEPAGE_932=m -CONFIG_NLS_CODEPAGE_949=m -CONFIG_NLS_CODEPAGE_874=m -CONFIG_NLS_ISO8859_8=m -CONFIG_NLS_CODEPAGE_1250=m -CONFIG_NLS_CODEPAGE_1251=m -CONFIG_NLS_ASCII=m -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_ISO8859_2=m -CONFIG_NLS_ISO8859_3=m -CONFIG_NLS_ISO8859_4=m -CONFIG_NLS_ISO8859_5=m -CONFIG_NLS_ISO8859_6=m -CONFIG_NLS_ISO8859_7=m -CONFIG_NLS_ISO8859_9=m -CONFIG_NLS_ISO8859_13=m -CONFIG_NLS_ISO8859_14=m -CONFIG_NLS_ISO8859_15=m -CONFIG_NLS_KOI8_R=m -CONFIG_NLS_KOI8_U=m -CONFIG_NLS_UTF8=m - -# -# IBM 40x options -# - -# -# Library routines -# -CONFIG_CRC_CCITT=m -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=m -CONFIG_REED_SOLOMON=m -CONFIG_REED_SOLOMON_DEC16=y - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -# CONFIG_DEBUG_KERNEL is not set -CONFIG_LOG_BUF_SHIFT=14 -# CONFIG_SERIAL_TEXT_DEBUG is not set -CONFIG_PPC_OCP=y - -# -# Security options -# -# CONFIG_KEYS is not set -CONFIG_SECURITY=y -CONFIG_SECURITY_NETWORK=y -CONFIG_SECURITY_CAPABILITIES=m -CONFIG_SECURITY_ROOTPLUG=m -CONFIG_SECURITY_SECLVL=m -# CONFIG_SECURITY_SELINUX is not set - -# -# Cryptographic options -# -CONFIG_CRYPTO=y -CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_SHA1=m -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_TGR192 is not set -CONFIG_CRYPTO_DES=m -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_AES is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set -CONFIG_CRYPTO_ARC4=m -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set -CONFIG_CRYPTO_DEFLATE=m -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_TEST is not set - -# -# Hardware crypto devices -# diff --git a/packages/linux/linux-dht-walnut-2.6.12.6/iw_we18-5.diff b/packages/linux/linux-dht-walnut-2.6.12.6/iw_we18-5.diff deleted file mode 100644 index 85fcdd1224..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12.6/iw_we18-5.diff +++ /dev/null @@ -1,462 +0,0 @@ -diff -upr linux-2.6.11/include/linux/wireless.h linux-2.6.11-WE18/include/linux/wireless.h ---- linux-2.6.11/include/linux/wireless.h 2004-12-24 13:35:01.000000000 -0800 -+++ linux-2.6.11-WE18/include/linux/wireless.h 2005-03-12 09:53:02.000000000 -0800 -@@ -1,10 +1,10 @@ - /* - * This file define a set of standard wireless extensions - * -- * Version : 17 21.6.04 -+ * Version : 18 12.3.05 - * - * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> -- * Copyright (c) 1997-2004 Jean Tourrilhes, All Rights Reserved. -+ * Copyright (c) 1997-2005 Jean Tourrilhes, All Rights Reserved. - */ - - #ifndef _LINUX_WIRELESS_H -@@ -82,7 +82,7 @@ - * (there is some stuff that will be added in the future...) - * I just plan to increment with each new version. - */ --#define WIRELESS_EXT 17 -+#define WIRELESS_EXT 18 - - /* - * Changes : -@@ -182,6 +182,21 @@ - * - Document (struct iw_quality *)->updated, add new flags (INVALID) - * - Wireless Event capability in struct iw_range - * - Add support for relative TxPower (yick !) -+ * -+ * V17 to V18 (From Jouni Malinen <jkmaline@cc.hut.fi>) -+ * ---------- -+ * - Add support for WPA/WPA2 -+ * - Add extended encoding configuration (SIOCSIWENCODEEXT and -+ * SIOCGIWENCODEEXT) -+ * - Add SIOCSIWGENIE/SIOCGIWGENIE -+ * - Add SIOCSIWMLME -+ * - Add SIOCSIWPMKSA -+ * - Add struct iw_range bit field for supported encoding capabilities -+ * - Add optional scan request parameters for SIOCSIWSCAN -+ * - Add SIOCSIWAUTH/SIOCGIWAUTH for setting authentication and WPA -+ * related parameters (extensible up to 4096 parameter values) -+ * - Add wireless events: IWEVGENIE, IWEVMICHAELMICFAILURE, -+ * IWEVASSOCREQIE, IWEVASSOCRESPIE, IWEVPMKIDCAND - */ - - /**************************** CONSTANTS ****************************/ -@@ -256,6 +271,30 @@ - #define SIOCSIWPOWER 0x8B2C /* set Power Management settings */ - #define SIOCGIWPOWER 0x8B2D /* get Power Management settings */ - -+/* WPA : Generic IEEE 802.11 informatiom element (e.g., for WPA/RSN/WMM). -+ * This ioctl uses struct iw_point and data buffer that includes IE id and len -+ * fields. More than one IE may be included in the request. Setting the generic -+ * IE to empty buffer (len=0) removes the generic IE from the driver. Drivers -+ * are allowed to generate their own WPA/RSN IEs, but in these cases, drivers -+ * are required to report the used IE as a wireless event, e.g., when -+ * associating with an AP. */ -+#define SIOCSIWGENIE 0x8B30 /* set generic IE */ -+#define SIOCGIWGENIE 0x8B31 /* get generic IE */ -+ -+/* WPA : IEEE 802.11 MLME requests */ -+#define SIOCSIWMLME 0x8B16 /* request MLME operation; uses -+ * struct iw_mlme */ -+/* WPA : Authentication mode parameters */ -+#define SIOCSIWAUTH 0x8B32 /* set authentication mode params */ -+#define SIOCGIWAUTH 0x8B33 /* get authentication mode params */ -+ -+/* WPA : Extended version of encoding configuration */ -+#define SIOCSIWENCODEEXT 0x8B34 /* set encoding token & mode */ -+#define SIOCGIWENCODEEXT 0x8B35 /* get encoding token & mode */ -+ -+/* WPA2 : PMKSA cache management */ -+#define SIOCSIWPMKSA 0x8B36 /* PMKSA cache operation */ -+ - /* -------------------- DEV PRIVATE IOCTL LIST -------------------- */ - - /* These 32 ioctl are wireless device private, for 16 commands. -@@ -297,6 +336,34 @@ - #define IWEVCUSTOM 0x8C02 /* Driver specific ascii string */ - #define IWEVREGISTERED 0x8C03 /* Discovered a new node (AP mode) */ - #define IWEVEXPIRED 0x8C04 /* Expired a node (AP mode) */ -+#define IWEVGENIE 0x8C05 /* Generic IE (WPA, RSN, WMM, ..) -+ * (scan results); This includes id and -+ * length fields. One IWEVGENIE may -+ * contain more than one IE. Scan -+ * results may contain one or more -+ * IWEVGENIE events. */ -+#define IWEVMICHAELMICFAILURE 0x8C06 /* Michael MIC failure -+ * (struct iw_michaelmicfailure) -+ */ -+#define IWEVASSOCREQIE 0x8C07 /* IEs used in (Re)Association Request. -+ * The data includes id and length -+ * fields and may contain more than one -+ * IE. This event is required in -+ * Managed mode if the driver -+ * generates its own WPA/RSN IE. This -+ * should be sent just before -+ * IWEVREGISTERED event for the -+ * association. */ -+#define IWEVASSOCRESPIE 0x8C08 /* IEs used in (Re)Association -+ * Response. The data includes id and -+ * length fields and may contain more -+ * than one IE. This may be sent -+ * between IWEVASSOCREQIE and -+ * IWEVREGISTERED events for the -+ * association. */ -+#define IWEVPMKIDCAND 0x8C09 /* PMKID candidate for RSN -+ * pre-authentication -+ * (struct iw_pmkid_cand) */ - - #define IWEVFIRST 0x8C00 - -@@ -432,12 +499,94 @@ - #define IW_SCAN_THIS_MODE 0x0020 /* Scan only this Mode */ - #define IW_SCAN_ALL_RATE 0x0040 /* Scan all Bit-Rates */ - #define IW_SCAN_THIS_RATE 0x0080 /* Scan only this Bit-Rate */ -+/* struct iw_scan_req scan_type */ -+#define IW_SCAN_TYPE_ACTIVE 0 -+#define IW_SCAN_TYPE_PASSIVE 1 - /* Maximum size of returned data */ - #define IW_SCAN_MAX_DATA 4096 /* In bytes */ - - /* Max number of char in custom event - use multiple of them if needed */ - #define IW_CUSTOM_MAX 256 /* In bytes */ - -+/* Generic information element */ -+#define IW_GENERIC_IE_MAX 1024 -+ -+/* MLME requests (SIOCSIWMLME / struct iw_mlme) */ -+#define IW_MLME_DEAUTH 0 -+#define IW_MLME_DISASSOC 1 -+ -+/* SIOCSIWAUTH/SIOCGIWAUTH struct iw_param flags */ -+#define IW_AUTH_INDEX 0x0FFF -+#define IW_AUTH_FLAGS 0xF000 -+/* SIOCSIWAUTH/SIOCGIWAUTH parameters (0 .. 4095) -+ * (IW_AUTH_INDEX mask in struct iw_param flags; this is the index of the -+ * parameter that is being set/get to; value will be read/written to -+ * struct iw_param value field) */ -+#define IW_AUTH_WPA_VERSION 0 -+#define IW_AUTH_CIPHER_PAIRWISE 1 -+#define IW_AUTH_CIPHER_GROUP 2 -+#define IW_AUTH_KEY_MGMT 3 -+#define IW_AUTH_TKIP_COUNTERMEASURES 4 -+#define IW_AUTH_DROP_UNENCRYPTED 5 -+#define IW_AUTH_80211_AUTH_ALG 6 -+#define IW_AUTH_WPA_ENABLED 7 -+#define IW_AUTH_RX_UNENCRYPTED_EAPOL 8 -+#define IW_AUTH_ROAMING_CONTROL 9 -+#define IW_AUTH_PRIVACY_INVOKED 10 -+ -+/* IW_AUTH_WPA_VERSION values (bit field) */ -+#define IW_AUTH_WPA_VERSION_DISABLED 0x00000001 -+#define IW_AUTH_WPA_VERSION_WPA 0x00000002 -+#define IW_AUTH_WPA_VERSION_WPA2 0x00000004 -+ -+/* IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values (bit field) */ -+#define IW_AUTH_CIPHER_NONE 0x00000001 -+#define IW_AUTH_CIPHER_WEP40 0x00000002 -+#define IW_AUTH_CIPHER_TKIP 0x00000004 -+#define IW_AUTH_CIPHER_CCMP 0x00000008 -+#define IW_AUTH_CIPHER_WEP104 0x00000010 -+ -+/* IW_AUTH_KEY_MGMT values (bit field) */ -+#define IW_AUTH_KEY_MGMT_802_1X 1 -+#define IW_AUTH_KEY_MGMT_PSK 2 -+ -+/* IW_AUTH_80211_AUTH_ALG values (bit field) */ -+#define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001 -+#define IW_AUTH_ALG_SHARED_KEY 0x00000002 -+#define IW_AUTH_ALG_LEAP 0x00000004 -+ -+/* IW_AUTH_ROAMING_CONTROL values */ -+#define IW_AUTH_ROAMING_ENABLE 0 /* driver/firmware based roaming */ -+#define IW_AUTH_ROAMING_DISABLE 1 /* user space program used for roaming -+ * control */ -+ -+/* SIOCSIWENCODEEXT definitions */ -+#define IW_ENCODE_SEQ_MAX_SIZE 8 -+/* struct iw_encode_ext ->alg */ -+#define IW_ENCODE_ALG_NONE 0 -+#define IW_ENCODE_ALG_WEP 1 -+#define IW_ENCODE_ALG_TKIP 2 -+#define IW_ENCODE_ALG_CCMP 3 -+/* struct iw_encode_ext ->ext_flags */ -+#define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001 -+#define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002 -+#define IW_ENCODE_EXT_GROUP_KEY 0x00000004 -+#define IW_ENCODE_EXT_SET_TX_KEY 0x00000008 -+ -+/* IWEVMICHAELMICFAILURE : struct iw_michaelmicfailure ->flags */ -+#define IW_MICFAILURE_KEY_ID 0x00000003 /* Key ID 0..3 */ -+#define IW_MICFAILURE_GROUP 0x00000004 -+#define IW_MICFAILURE_PAIRWISE 0x00000008 -+#define IW_MICFAILURE_STAKEY 0x00000010 -+#define IW_MICFAILURE_COUNT 0x00000060 /* 1 or 2 (0 = count not supported) -+ */ -+ -+/* Bit field values for enc_capa in struct iw_range */ -+#define IW_ENC_CAPA_WPA 0x00000001 -+#define IW_ENC_CAPA_WPA2 0x00000002 -+#define IW_ENC_CAPA_CIPHER_TKIP 0x00000004 -+#define IW_ENC_CAPA_CIPHER_CCMP 0x00000008 -+ - /* Event capability macros - in (struct iw_range *)->event_capa - * Because we have more than 32 possible events, we use an array of - * 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */ -@@ -546,6 +695,132 @@ struct iw_thrspy - struct iw_quality high; /* High threshold */ - }; - -+/* -+ * Optional data for scan request -+ * -+ * Note: these optional parameters are controlling parameters for the -+ * scanning behavior, these do not apply to getting scan results -+ * (SIOCGIWSCAN). Drivers are expected to keep a local BSS table and -+ * provide a merged results with all BSSes even if the previous scan -+ * request limited scanning to a subset, e.g., by specifying an SSID. -+ * Especially, scan results are required to include an entry for the -+ * current BSS if the driver is in Managed mode and associated with an AP. -+ */ -+struct iw_scan_req -+{ -+ __u8 scan_type; /* IW_SCAN_TYPE_{ACTIVE,PASSIVE} */ -+ __u8 essid_len; -+ __u8 num_channels; /* num entries in channel_list; -+ * 0 = scan all allowed channels */ -+ __u8 flags; /* reserved as padding; use zero, this may -+ * be used in the future for adding flags -+ * to request different scan behavior */ -+ struct sockaddr bssid; /* ff:ff:ff:ff:ff:ff for broadcast BSSID or -+ * individual address of a specific BSS */ -+ -+ /* -+ * Use this ESSID if IW_SCAN_THIS_ESSID flag is used instead of using -+ * the current ESSID. This allows scan requests for specific ESSID -+ * without having to change the current ESSID and potentially breaking -+ * the current association. -+ */ -+ __u8 essid[IW_ESSID_MAX_SIZE]; -+ -+ /* -+ * Optional parameters for changing the default scanning behavior. -+ * These are based on the MLME-SCAN.request from IEEE Std 802.11. -+ * TU is 1.024 ms. If these are set to 0, driver is expected to use -+ * reasonable default values. min_channel_time defines the time that -+ * will be used to wait for the first reply on each channel. If no -+ * replies are received, next channel will be scanned after this. If -+ * replies are received, total time waited on the channel is defined by -+ * max_channel_time. -+ */ -+ __u32 min_channel_time; /* in TU */ -+ __u32 max_channel_time; /* in TU */ -+ -+ struct iw_freq channel_list[IW_MAX_FREQUENCIES]; -+}; -+ -+/* ------------------------- WPA SUPPORT ------------------------- */ -+ -+/* -+ * Extended data structure for get/set encoding (this is used with -+ * SIOCSIWENCODEEXT/SIOCGIWENCODEEXT. struct iw_point and IW_ENCODE_* -+ * flags are used in the same way as with SIOCSIWENCODE/SIOCGIWENCODE and -+ * only the data contents changes (key data -> this structure, including -+ * key data). -+ * -+ * If the new key is the first group key, it will be set as the default -+ * TX key. Otherwise, default TX key index is only changed if -+ * IW_ENCODE_EXT_SET_TX_KEY flag is set. -+ * -+ * Key will be changed with SIOCSIWENCODEEXT in all cases except for -+ * special "change TX key index" operation which is indicated by setting -+ * key_len = 0 and ext_flags |= IW_ENCODE_EXT_SET_TX_KEY. -+ * -+ * tx_seq/rx_seq are only used when respective -+ * IW_ENCODE_EXT_{TX,RX}_SEQ_VALID flag is set in ext_flags. Normal -+ * TKIP/CCMP operation is to set RX seq with SIOCSIWENCODEEXT and start -+ * TX seq from zero whenever key is changed. SIOCGIWENCODEEXT is normally -+ * used only by an Authenticator (AP or an IBSS station) to get the -+ * current TX sequence number. Using TX_SEQ_VALID for SIOCSIWENCODEEXT and -+ * RX_SEQ_VALID for SIOCGIWENCODEEXT are optional, but can be useful for -+ * debugging/testing. -+ */ -+struct iw_encode_ext -+{ -+ __u32 ext_flags; /* IW_ENCODE_EXT_* */ -+ __u8 tx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -+ __u8 rx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -+ struct sockaddr addr; /* ff:ff:ff:ff:ff:ff for broadcast/multicast -+ * (group) keys or unicast address for -+ * individual keys */ -+ __u16 alg; /* IW_ENCODE_ALG_* */ -+ __u16 key_len; -+ __u8 key[0]; -+}; -+ -+/* SIOCSIWMLME data */ -+struct iw_mlme -+{ -+ __u16 cmd; /* IW_MLME_* */ -+ __u16 reason_code; -+ struct sockaddr addr; -+}; -+ -+/* SIOCSIWPMKSA data */ -+#define IW_PMKSA_ADD 1 -+#define IW_PMKSA_REMOVE 2 -+#define IW_PMKSA_FLUSH 3 -+ -+#define IW_PMKID_LEN 16 -+ -+struct iw_pmksa -+{ -+ __u32 cmd; /* IW_PMKSA_* */ -+ struct sockaddr bssid; -+ __u8 pmkid[IW_PMKID_LEN]; -+}; -+ -+/* IWEVMICHAELMICFAILURE data */ -+struct iw_michaelmicfailure -+{ -+ __u32 flags; -+ struct sockaddr src_addr; -+ __u8 tsc[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -+}; -+ -+/* IWEVPMKIDCAND data */ -+#define IW_PMKID_CAND_PREAUTH 0x00000001 /* RNS pre-authentication enabled */ -+struct iw_pmkid_cand -+{ -+ __u32 flags; /* IW_PMKID_CAND_* */ -+ __u32 index; /* the smaller the index, the higher the -+ * priority */ -+ struct sockaddr bssid; -+}; -+ - /* ------------------------ WIRELESS STATS ------------------------ */ - /* - * Wireless statistics (used for /proc/net/wireless) -@@ -725,6 +1000,8 @@ struct iw_range - struct iw_freq freq[IW_MAX_FREQUENCIES]; /* list */ - /* Note : this frequency list doesn't need to fit channel numbers, - * because each entry contain its channel index */ -+ -+ __u32 enc_capa; /* IW_ENC_CAPA_* bit field */ - }; - - /* -diff -upr linux-2.6.11/net/core/wireless.c linux-2.6.11-WE18/net/core/wireless.c ---- linux-2.6.11/net/core/wireless.c 2005-03-04 15:55:29.000000000 -0800 -+++ linux-2.6.11-WE18/net/core/wireless.c 2005-03-12 09:11:24.000000000 -0800 -@@ -2,7 +2,7 @@ - * This file implement the Wireless Extensions APIs. - * - * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> -- * Copyright (c) 1997-2004 Jean Tourrilhes, All Rights Reserved. -+ * Copyright (c) 1997-2005 Jean Tourrilhes, All Rights Reserved. - * - * (As all part of the Linux kernel, this file is GPL) - */ -@@ -187,6 +187,12 @@ static const struct iw_ioctl_description - .header_type = IW_HEADER_TYPE_ADDR, - .flags = IW_DESCR_FLAG_DUMP, - }, -+ [SIOCSIWMLME - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_mlme), -+ .max_tokens = sizeof(struct iw_mlme), -+ }, - [SIOCGIWAPLIST - SIOCIWFIRST] = { - .header_type = IW_HEADER_TYPE_POINT, - .token_size = sizeof(struct sockaddr) + -@@ -195,7 +201,10 @@ static const struct iw_ioctl_description - .flags = IW_DESCR_FLAG_NOMAX, - }, - [SIOCSIWSCAN - SIOCIWFIRST] = { -- .header_type = IW_HEADER_TYPE_PARAM, -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = 0, -+ .max_tokens = sizeof(struct iw_scan_req), - }, - [SIOCGIWSCAN - SIOCIWFIRST] = { - .header_type = IW_HEADER_TYPE_POINT, -@@ -273,6 +282,42 @@ static const struct iw_ioctl_description - [SIOCGIWPOWER - SIOCIWFIRST] = { - .header_type = IW_HEADER_TYPE_PARAM, - }, -+ [SIOCSIWGENIE - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [SIOCGIWGENIE - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [SIOCSIWAUTH - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_PARAM, -+ }, -+ [SIOCGIWAUTH - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_PARAM, -+ }, -+ [SIOCSIWENCODEEXT - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_encode_ext), -+ .max_tokens = sizeof(struct iw_encode_ext) + -+ IW_ENCODING_TOKEN_MAX, -+ }, -+ [SIOCGIWENCODEEXT - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_encode_ext), -+ .max_tokens = sizeof(struct iw_encode_ext) + -+ IW_ENCODING_TOKEN_MAX, -+ }, -+ [SIOCSIWPMKSA - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_pmksa), -+ .max_tokens = sizeof(struct iw_pmksa), -+ }, - }; - static const int standard_ioctl_num = (sizeof(standard_ioctl) / - sizeof(struct iw_ioctl_description)); -@@ -299,6 +344,31 @@ static const struct iw_ioctl_description - [IWEVEXPIRED - IWEVFIRST] = { - .header_type = IW_HEADER_TYPE_ADDR, - }, -+ [IWEVGENIE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [IWEVMICHAELMICFAILURE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = sizeof(struct iw_michaelmicfailure), -+ }, -+ [IWEVASSOCREQIE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [IWEVASSOCRESPIE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [IWEVPMKIDCAND - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = sizeof(struct iw_pmkid_cand), -+ }, - }; - static const int standard_event_num = (sizeof(standard_event) / - sizeof(struct iw_ioctl_description)); diff --git a/packages/linux/linux-dht-walnut-2.6.12.6/linux-2.6.12-mppe-mppc-1.3.patch b/packages/linux/linux-dht-walnut-2.6.12.6/linux-2.6.12-mppe-mppc-1.3.patch deleted file mode 100644 index aa430252c7..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12.6/linux-2.6.12-mppe-mppc-1.3.patch +++ /dev/null @@ -1,1559 +0,0 @@ -diff -ruN linux-2.6.12.orig/drivers/net/Kconfig linux-2.6.12/drivers/net/Kconfig ---- linux-2.6.12.orig/drivers/net/Kconfig 2005-06-28 19:57:16.000000000 +0200 -+++ linux-2.6.12/drivers/net/Kconfig 2005-06-28 20:07:01.000000000 +0200 -@@ -2417,6 +2417,32 @@ - module; it is called bsd_comp and will show up in the directory - modules once you have said "make modules". If unsure, say N. - -+config PPP_MPPE_MPPC -+ tristate "Microsoft PPP compression/encryption (MPPC/MPPE)" -+ depends on PPP -+ select CRYPTO_SHA1 -+ select CRYPTO_ARC4 -+ ---help--- -+ Support for the Microsoft Point-To-Point Compression (RFC2118) and -+ Microsoft Point-To-Point Encryption (RFC3078). These protocols are -+ supported by Microsoft Windows and wide range of "hardware" access -+ servers. MPPE is common protocol in Virtual Private Networks. According -+ to RFC3078, MPPE supports 40, 56 and 128-bit key lengths. Depending on -+ PPP daemon configuration on both ends of the link, following scenarios -+ are possible: -+ - only compression (MPPC) is used, -+ - only encryption (MPPE) is used, -+ - compression and encryption (MPPC+MPPE) are used. -+ -+ Please note that Hi/Fn (http://www.hifn.com) holds patent on MPPC so -+ you should check if this patent is valid in your country in order to -+ avoid legal problems. -+ -+ For more information please visit http://free.polbox.pl/h/hs001 -+ -+ To compile this driver as a module, choose M here. The module will -+ be called ppp_mppe_mppc.ko. -+ - config PPPOE - tristate "PPP over Ethernet (EXPERIMENTAL)" - depends on EXPERIMENTAL && PPP -diff -ruN linux-2.6.12.orig/drivers/net/Makefile linux-2.6.12/drivers/net/Makefile ---- linux-2.6.12.orig/drivers/net/Makefile 2005-06-28 19:57:16.000000000 +0200 -+++ linux-2.6.12/drivers/net/Makefile 2005-06-28 20:07:01.000000000 +0200 -@@ -105,6 +105,7 @@ - obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o - obj-$(CONFIG_PPP_DEFLATE) += ppp_deflate.o - obj-$(CONFIG_PPP_BSDCOMP) += bsd_comp.o -+obj-$(CONFIG_PPP_MPPE_MPPC) += ppp_mppe_mppc.o - obj-$(CONFIG_PPPOE) += pppox.o pppoe.o - - obj-$(CONFIG_SLIP) += slip.o -diff -ruN linux-2.6.12.orig/drivers/net/ppp_generic.c linux-2.6.12/drivers/net/ppp_generic.c ---- linux-2.6.12.orig/drivers/net/ppp_generic.c 2005-06-28 19:57:20.000000000 +0200 -+++ linux-2.6.12/drivers/net/ppp_generic.c 2005-06-28 20:07:01.000000000 +0200 -@@ -19,7 +19,7 @@ - * PPP driver, written by Michael Callahan and Al Longyear, and - * subsequently hacked by Paul Mackerras. - * -- * ==FILEVERSION 20041108== -+ * ==FILEVERSION 20050110== - */ - - #include <linux/config.h> -@@ -105,6 +105,7 @@ - spinlock_t rlock; /* lock for receive side 58 */ - spinlock_t wlock; /* lock for transmit side 5c */ - int mru; /* max receive unit 60 */ -+ int mru_alloc; /* MAX(1500,MRU) for dev_alloc_skb() */ - unsigned int flags; /* control bits 64 */ - unsigned int xstate; /* transmit state bits 68 */ - unsigned int rstate; /* receive state bits 6c */ -@@ -632,7 +633,9 @@ - case PPPIOCSMRU: - if (get_user(val, p)) - break; -- ppp->mru = val; -+ ppp->mru_alloc = ppp->mru = val; -+ if (ppp->mru_alloc < PPP_MRU) -+ ppp->mru_alloc = PPP_MRU; /* increase for broken peers */ - err = 0; - break; - -@@ -1107,14 +1110,37 @@ - case PPP_CCP: - /* peek at outbound CCP frames */ - ppp_ccp_peek(ppp, skb, 0); -+ /* -+ * When LZS or MPPE/MPPC has been negotiated we don't send -+ * CCP_RESETACK after receiving CCP_RESETREQ; in fact pppd -+ * sends such a packet but we silently discard it here -+ */ -+ if (CCP_CODE(skb->data+2) == CCP_RESETACK -+ && (ppp->xcomp->compress_proto == CI_MPPE -+ || ppp->xcomp->compress_proto == CI_LZS)) { -+ --ppp->stats.tx_packets; -+ ppp->stats.tx_bytes -= skb->len - 2; -+ kfree_skb(skb); -+ return; -+ } - break; - } - - /* try to do packet compression */ - if ((ppp->xstate & SC_COMP_RUN) && ppp->xc_state != 0 - && proto != PPP_LCP && proto != PPP_CCP) { -- new_skb = alloc_skb(ppp->dev->mtu + ppp->dev->hard_header_len, -- GFP_ATOMIC); -+ int comp_ovhd = 0; -+ /* -+ * because of possible data expansion when MPPC or LZS -+ * is used, allocate compressor's buffer 12.5% bigger -+ * than MTU -+ */ -+ if (ppp->xcomp->compress_proto == CI_MPPE) -+ comp_ovhd = ((ppp->dev->mtu * 9) / 8) + 1 + MPPE_OVHD; -+ else if (ppp->xcomp->compress_proto == CI_LZS) -+ comp_ovhd = ((ppp->dev->mtu * 9) / 8) + 1 + LZS_OVHD; -+ new_skb = alloc_skb(ppp->dev->mtu + ppp->dev->hard_header_len -+ + comp_ovhd, GFP_ATOMIC); - if (new_skb == 0) { - printk(KERN_ERR "PPP: no memory (comp pkt)\n"); - goto drop; -@@ -1132,9 +1158,21 @@ - skb = new_skb; - skb_put(skb, len); - skb_pull(skb, 2); /* pull off A/C bytes */ -- } else { -+ } else if (len == 0) { - /* didn't compress, or CCP not up yet */ - kfree_skb(new_skb); -+ } else { -+ /* -+ * (len < 0) -+ * MPPE requires that we do not send unencrypted -+ * frames. The compressor will return -1 if we -+ * should drop the frame. We cannot simply test -+ * the compress_proto because MPPE and MPPC share -+ * the same number. -+ */ -+ printk(KERN_ERR "ppp: compressor dropped pkt\n"); -+ kfree_skb(new_skb); -+ goto drop; - } - } - -@@ -1640,14 +1678,15 @@ - goto err; - - if (proto == PPP_COMP) { -- ns = dev_alloc_skb(ppp->mru + PPP_HDRLEN); -+ ns = dev_alloc_skb(ppp->mru_alloc + PPP_HDRLEN); - if (ns == 0) { - printk(KERN_ERR "ppp_decompress_frame: no memory\n"); - goto err; - } - /* the decompressor still expects the A/C bytes in the hdr */ - len = ppp->rcomp->decompress(ppp->rc_state, skb->data - 2, -- skb->len + 2, ns->data, ppp->mru + PPP_HDRLEN); -+ skb->len + 2, ns->data, -+ ppp->mru_alloc + PPP_HDRLEN); - if (len < 0) { - /* Pass the compressed frame to pppd as an - error indication. */ -@@ -1673,7 +1712,14 @@ - return skb; - - err: -- ppp->rstate |= SC_DC_ERROR; -+ if (ppp->rcomp->compress_proto != CI_MPPE -+ && ppp->rcomp->compress_proto != CI_LZS) { -+ /* -+ * If decompression protocol isn't MPPE/MPPC or LZS, we set -+ * SC_DC_ERROR flag and wait for CCP_RESETACK -+ */ -+ ppp->rstate |= SC_DC_ERROR; -+ } - ppp_receive_error(ppp); - return skb; - } -@@ -2349,6 +2395,7 @@ - memset(ppp, 0, sizeof(struct ppp)); - - ppp->mru = PPP_MRU; -+ ppp->mru_alloc = PPP_MRU; - init_ppp_file(&ppp->file, INTERFACE); - ppp->file.hdrlen = PPP_HDRLEN - 2; /* don't count proto bytes */ - for (i = 0; i < NUM_NP; ++i) -diff -ruN linux-2.6.12.orig/drivers/net/ppp_mppe_mppc.c linux-2.6.12/drivers/net/ppp_mppe_mppc.c ---- linux-2.6.12.orig/drivers/net/ppp_mppe_mppc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.12/drivers/net/ppp_mppe_mppc.c 2005-06-28 20:07:01.000000000 +0200 -@@ -0,0 +1,1299 @@ -+/* -+ * ppp_mppe_mppc.c - MPPC/MPPE "compressor/decompressor" module. -+ * -+ * Copyright (c) 1994 rpd Magosnyi <mag@bunuel.tii.matav.hu> -+ * Copyright (c) 1999 Tim Hockin, Cobalt Networks Inc. <thockin@cobaltnet.com> -+ * Copyright (c) 2002-2004 Jan Dubiec <jdx@slackware.pl> -+ * -+ * Permission to use, copy, modify, and distribute this software and its -+ * documentation is hereby granted, provided that the above copyright -+ * notice appears in all copies. This software is provided without any -+ * warranty, express or implied. -+ * -+ * The code is based on MPPE kernel module written by rpd Magosnyi and -+ * Tim Hockin which can be found on http://planetmirror.com/pub/mppe/. -+ * I have added MPPC and 56 bit session keys support in MPPE. -+ * -+ * WARNING! Although this is open source code, its usage in some countries -+ * (in particular in the USA) may violate Stac Inc. patent for MPPC. -+ * -+ * ==FILEVERSION 20041123== -+ * -+ */ -+ -+#include <linux/init.h> -+#include <linux/module.h> -+#include <linux/mm.h> -+#include <linux/slab.h> -+#include <asm/scatterlist.h> -+#include <linux/vmalloc.h> -+#include <linux/crypto.h> -+ -+#include <linux/ppp_defs.h> -+#include <linux/ppp-comp.h> -+ -+/* -+ * State for a mppc/mppe "(de)compressor". -+ */ -+struct ppp_mppe_state { -+ struct crypto_tfm *arc4_tfm; -+ struct crypto_tfm *sha1_tfm; -+ u8 *sha1_digest; -+ u8 master_key[MPPE_MAX_KEY_LEN]; -+ u8 session_key[MPPE_MAX_KEY_LEN]; -+ u8 mppc; /* do we use compression (MPPC)? */ -+ u8 mppe; /* do we use encryption (MPPE)? */ -+ u8 keylen; /* key length in bytes */ -+ u8 bitkeylen; /* key length in bits */ -+ u16 ccount; /* coherency counter */ -+ u16 bits; /* MPPC/MPPE control bits */ -+ u8 stateless; /* do we use stateless mode? */ -+ u8 nextflushed; /* set A bit in the next outgoing packet; -+ used only by compressor*/ -+ u8 flushexpected; /* drop packets until A bit is received; -+ used only by decompressor*/ -+ u8 *hist; /* MPPC history */ -+ u16 *hash; /* Hash table; used only by compressor */ -+ u16 histptr; /* history "cursor" */ -+ int unit; -+ int debug; -+ int mru; -+ struct compstat stats; -+}; -+ -+#define MPPE_HIST_LEN 8192 /* MPPC history size */ -+#define MPPE_MAX_CCOUNT 0x0FFF /* max. coherency counter value */ -+ -+#define MPPE_BIT_FLUSHED 0x80 /* bit A */ -+#define MPPE_BIT_RESET 0x40 /* bit B */ -+#define MPPE_BIT_COMP 0x20 /* bit C */ -+#define MPPE_BIT_ENCRYPTED 0x10 /* bit D */ -+ -+#define MPPE_SALT0 0xD1 /* values used in MPPE key derivation */ -+#define MPPE_SALT1 0x26 /* according to RFC3079 */ -+#define MPPE_SALT2 0x9E -+ -+#define MPPE_CCOUNT(x) ((((x)[4] & 0x0f) << 8) + (x)[5]) -+#define MPPE_BITS(x) ((x)[4] & 0xf0) -+#define MPPE_CTRLHI(x) ((((x)->ccount & 0xf00)>>8)|((x)->bits)) -+#define MPPE_CTRLLO(x) ((x)->ccount & 0xff) -+ -+/* -+ * Kernel Crypto API needs its arguments to be in kmalloc'd memory, not in the -+ * module static data area. That means sha_pad needs to be kmalloc'd. It is done -+ * in mppe_module_init(). This has been pointed out on 30th July 2004 by Oleg -+ * Makarenko on pptpclient-devel mailing list. -+ */ -+#define SHA1_PAD_SIZE 40 -+struct sha_pad { -+ unsigned char sha_pad1[SHA1_PAD_SIZE]; -+ unsigned char sha_pad2[SHA1_PAD_SIZE]; -+}; -+static struct sha_pad *sha_pad; -+ -+static inline void -+setup_sg(struct scatterlist *sg, const void *address, unsigned int length) -+{ -+ sg[0].page = virt_to_page(address); -+ sg[0].offset = offset_in_page(address); -+ sg[0].length = length; -+} -+ -+static inline void -+arc4_setkey(struct ppp_mppe_state *state, const unsigned char *key, -+ const unsigned int keylen) -+{ -+ crypto_cipher_setkey(state->arc4_tfm, key, keylen); -+} -+ -+static inline void -+arc4_encrypt(struct ppp_mppe_state *state, const unsigned char *in, -+ const unsigned int len, unsigned char *out) -+{ -+ struct scatterlist sgin[4], sgout[4]; -+ -+ setup_sg(sgin, in, len); -+ setup_sg(sgout, out, len); -+ crypto_cipher_encrypt(state->arc4_tfm, sgout, sgin, len); -+} -+ -+#define arc4_decrypt arc4_encrypt -+ -+/* -+ * Key Derivation, from RFC 3078, RFC 3079. -+ * Equivalent to Get_Key() for MS-CHAP as described in RFC 3079. -+ */ -+static void -+get_new_key_from_sha(struct ppp_mppe_state *state, unsigned char *interim_key) -+{ -+ struct scatterlist sg[4]; -+ -+ setup_sg(&sg[0], state->master_key, state->keylen); -+ setup_sg(&sg[1], sha_pad->sha_pad1, sizeof(sha_pad->sha_pad1)); -+ setup_sg(&sg[2], state->session_key, state->keylen); -+ setup_sg(&sg[3], sha_pad->sha_pad2, sizeof(sha_pad->sha_pad2)); -+ -+ crypto_digest_digest (state->sha1_tfm, sg, 4, state->sha1_digest); -+ -+ memcpy(interim_key, state->sha1_digest, state->keylen); -+} -+ -+static void -+mppe_change_key(struct ppp_mppe_state *state, int initialize) -+{ -+ unsigned char interim_key[MPPE_MAX_KEY_LEN]; -+ -+ get_new_key_from_sha(state, interim_key); -+ if (initialize) { -+ memcpy(state->session_key, interim_key, state->keylen); -+ } else { -+ arc4_setkey(state, interim_key, state->keylen); -+ arc4_encrypt(state, interim_key, state->keylen, state->session_key); -+ } -+ if (state->keylen == 8) { -+ if (state->bitkeylen == 40) { -+ state->session_key[0] = MPPE_SALT0; -+ state->session_key[1] = MPPE_SALT1; -+ state->session_key[2] = MPPE_SALT2; -+ } else { -+ state->session_key[0] = MPPE_SALT0; -+ } -+ } -+ arc4_setkey(state, state->session_key, state->keylen); -+} -+ -+/* increase 12-bit coherency counter */ -+static inline void -+mppe_increase_ccount(struct ppp_mppe_state *state) -+{ -+ state->ccount = (state->ccount + 1) & MPPE_MAX_CCOUNT; -+ if (state->mppe) { -+ if (state->stateless) { -+ mppe_change_key(state, 0); -+ state->nextflushed = 1; -+ } else { -+ if ((state->ccount & 0xff) == 0xff) { -+ mppe_change_key(state, 0); -+ } -+ } -+ } -+} -+ -+/* allocate space for a MPPE/MPPC (de)compressor. */ -+/* comp != 0 -> init compressor */ -+/* comp = 0 -> init decompressor */ -+static void * -+mppe_alloc(unsigned char *options, int opt_len, int comp) -+{ -+ struct ppp_mppe_state *state; -+ unsigned int digestsize; -+ u8* fname; -+ -+ fname = comp ? "mppe_comp_alloc" : "mppe_decomp_alloc"; -+ -+ /* -+ * Hack warning - additionally to the standard MPPC/MPPE configuration -+ * options, pppd passes to the (de)copressor 8 or 16 byte session key. -+ * Therefore options[1] contains MPPC/MPPE configuration option length -+ * (CILEN_MPPE = 6), but the real options length, depending on the key -+ * length, is 6+8 or 6+16. -+ */ -+ if (opt_len < CILEN_MPPE) { -+ printk(KERN_WARNING "%s: wrong options length: %u\n", fname, opt_len); -+ return NULL; -+ } -+ -+ if (options[0] != CI_MPPE || options[1] != CILEN_MPPE || -+ (options[2] & ~MPPE_STATELESS) != 0 || -+ options[3] != 0 || options[4] != 0 || -+ (options[5] & ~(MPPE_128BIT|MPPE_56BIT|MPPE_40BIT|MPPE_MPPC)) != 0 || -+ (options[5] & (MPPE_128BIT|MPPE_56BIT|MPPE_40BIT|MPPE_MPPC)) == 0) { -+ printk(KERN_WARNING "%s: options rejected: o[0]=%02x, o[1]=%02x, " -+ "o[2]=%02x, o[3]=%02x, o[4]=%02x, o[5]=%02x\n", fname, options[0], -+ options[1], options[2], options[3], options[4], options[5]); -+ return NULL; -+ } -+ -+ state = (struct ppp_mppe_state *)kmalloc(sizeof(*state), GFP_KERNEL); -+ if (state == NULL) { -+ printk(KERN_ERR "%s: cannot allocate space for %scompressor\n", fname, -+ comp ? "" : "de"); -+ return NULL; -+ } -+ memset(state, 0, sizeof(struct ppp_mppe_state)); -+ -+ state->mppc = options[5] & MPPE_MPPC; /* Do we use MPPC? */ -+ state->mppe = options[5] & (MPPE_128BIT | MPPE_56BIT | -+ MPPE_40BIT); /* Do we use MPPE? */ -+ -+ if (state->mppc) { -+ /* allocate MPPC history */ -+ state->hist = (u8*)vmalloc(2*MPPE_HIST_LEN*sizeof(u8)); -+ if (state->hist == NULL) { -+ kfree(state); -+ printk(KERN_ERR "%s: cannot allocate space for MPPC history\n", -+ fname); -+ return NULL; -+ } -+ -+ /* allocate hashtable for MPPC compressor */ -+ if (comp) { -+ state->hash = (u16*)vmalloc(MPPE_HIST_LEN*sizeof(u16)); -+ if (state->hash == NULL) { -+ vfree(state->hist); -+ kfree(state); -+ printk(KERN_ERR "%s: cannot allocate space for MPPC history\n", -+ fname); -+ return NULL; -+ } -+ } -+ } -+ -+ if (state->mppe) { /* specific for MPPE */ -+ /* Load ARC4 algorithm */ -+ state->arc4_tfm = crypto_alloc_tfm("arc4", 0); -+ if (state->arc4_tfm == NULL) { -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: cannot load ARC4 module\n", fname); -+ return NULL; -+ } -+ -+ /* Load SHA1 algorithm */ -+ state->sha1_tfm = crypto_alloc_tfm("sha1", 0); -+ if (state->sha1_tfm == NULL) { -+ crypto_free_tfm(state->arc4_tfm); -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: cannot load SHA1 module\n", fname); -+ return NULL; -+ } -+ -+ digestsize = crypto_tfm_alg_digestsize(state->sha1_tfm); -+ if (digestsize < MPPE_MAX_KEY_LEN) { -+ crypto_free_tfm(state->sha1_tfm); -+ crypto_free_tfm(state->arc4_tfm); -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: CryptoAPI SHA1 digest size too small\n", fname); -+ } -+ -+ state->sha1_digest = kmalloc(digestsize, GFP_KERNEL); -+ if (!state->sha1_digest) { -+ crypto_free_tfm(state->sha1_tfm); -+ crypto_free_tfm(state->arc4_tfm); -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: cannot allocate space for SHA1 digest\n", fname); -+ } -+ -+ memcpy(state->master_key, options+CILEN_MPPE, MPPE_MAX_KEY_LEN); -+ memcpy(state->session_key, state->master_key, MPPE_MAX_KEY_LEN); -+ /* initial key generation is done in mppe_init() */ -+ } -+ -+ return (void *) state; -+} -+ -+static void * -+mppe_comp_alloc(unsigned char *options, int opt_len) -+{ -+ return mppe_alloc(options, opt_len, 1); -+} -+ -+static void * -+mppe_decomp_alloc(unsigned char *options, int opt_len) -+{ -+ return mppe_alloc(options, opt_len, 0); -+} -+ -+/* cleanup the (de)compressor */ -+static void -+mppe_comp_free(void *arg) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg; -+ -+ if (state != NULL) { -+ if (state->mppe) { -+ if (state->sha1_digest != NULL) -+ kfree(state->sha1_digest); -+ if (state->sha1_tfm != NULL) -+ crypto_free_tfm(state->sha1_tfm); -+ if (state->arc4_tfm != NULL) -+ crypto_free_tfm(state->arc4_tfm); -+ } -+ if (state->hist != NULL) -+ vfree(state->hist); -+ if (state->hash != NULL) -+ vfree(state->hash); -+ kfree(state); -+ } -+} -+ -+/* init MPPC/MPPE (de)compresor */ -+/* comp != 0 -> init compressor */ -+/* comp = 0 -> init decompressor */ -+static int -+mppe_init(void *arg, unsigned char *options, int opt_len, int unit, -+ int hdrlen, int mru, int debug, int comp) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg; -+ u8* fname; -+ -+ fname = comp ? "mppe_comp_init" : "mppe_decomp_init"; -+ -+ if (opt_len < CILEN_MPPE) { -+ if (debug) -+ printk(KERN_WARNING "%s: wrong options length: %u\n", -+ fname, opt_len); -+ return 0; -+ } -+ -+ if (options[0] != CI_MPPE || options[1] != CILEN_MPPE || -+ (options[2] & ~MPPE_STATELESS) != 0 || -+ options[3] != 0 || options[4] != 0 || -+ (options[5] & ~(MPPE_56BIT|MPPE_128BIT|MPPE_40BIT|MPPE_MPPC)) != 0 || -+ (options[5] & (MPPE_56BIT|MPPE_128BIT|MPPE_40BIT|MPPE_MPPC)) == 0) { -+ if (debug) -+ printk(KERN_WARNING "%s: options rejected: o[0]=%02x, o[1]=%02x, " -+ "o[2]=%02x, o[3]=%02x, o[4]=%02x, o[5]=%02x\n", fname, -+ options[0], options[1], options[2], options[3], options[4], -+ options[5]); -+ return 0; -+ } -+ -+ if ((options[5] & ~MPPE_MPPC) != MPPE_128BIT && -+ (options[5] & ~MPPE_MPPC) != MPPE_56BIT && -+ (options[5] & ~MPPE_MPPC) != MPPE_40BIT && -+ (options[5] & MPPE_MPPC) != MPPE_MPPC) { -+ if (debug) -+ printk(KERN_WARNING "%s: don't know what to do: o[5]=%02x\n", -+ fname, options[5]); -+ return 0; -+ } -+ -+ state->mppc = options[5] & MPPE_MPPC; /* Do we use MPPC? */ -+ state->mppe = options[5] & (MPPE_128BIT | MPPE_56BIT | -+ MPPE_40BIT); /* Do we use MPPE? */ -+ state->stateless = options[2] & MPPE_STATELESS; /* Do we use stateless mode? */ -+ -+ switch (state->mppe) { -+ case MPPE_40BIT: /* 40 bit key */ -+ state->keylen = 8; -+ state->bitkeylen = 40; -+ break; -+ case MPPE_56BIT: /* 56 bit key */ -+ state->keylen = 8; -+ state->bitkeylen = 56; -+ break; -+ case MPPE_128BIT: /* 128 bit key */ -+ state->keylen = 16; -+ state->bitkeylen = 128; -+ break; -+ default: -+ state->keylen = 0; -+ state->bitkeylen = 0; -+ } -+ -+ state->ccount = MPPE_MAX_CCOUNT; -+ state->bits = 0; -+ state->unit = unit; -+ state->debug = debug; -+ state->histptr = MPPE_HIST_LEN; -+ if (state->mppc) { /* reset history if MPPC was negotiated */ -+ memset(state->hist, 0, 2*MPPE_HIST_LEN*sizeof(u8)); -+ } -+ -+ if (state->mppe) { /* generate initial session keys */ -+ mppe_change_key(state, 1); -+ } -+ -+ if (comp) { /* specific for compressor */ -+ state->nextflushed = 1; -+ } else { /* specific for decompressor */ -+ state->mru = mru; -+ state->flushexpected = 1; -+ } -+ -+ return 1; -+} -+ -+static int -+mppe_comp_init(void *arg, unsigned char *options, int opt_len, int unit, -+ int hdrlen, int debug) -+{ -+ return mppe_init(arg, options, opt_len, unit, hdrlen, 0, debug, 1); -+} -+ -+ -+static int -+mppe_decomp_init(void *arg, unsigned char *options, int opt_len, int unit, -+ int hdrlen, int mru, int debug) -+{ -+ return mppe_init(arg, options, opt_len, unit, hdrlen, mru, debug, 0); -+} -+ -+static void -+mppe_comp_reset(void *arg) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg; -+ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: resetting MPPC/MPPE compressor\n", -+ __FUNCTION__, state->unit); -+ -+ state->nextflushed = 1; -+ if (state->mppe) -+ arc4_setkey(state, state->session_key, state->keylen); -+} -+ -+static void -+mppe_decomp_reset(void *arg) -+{ -+ /* When MPPC/MPPE is in use, we shouldn't receive any CCP Reset-Ack. -+ But when we receive such a packet, we just ignore it. */ -+ return; -+} -+ -+static void -+mppe_stats(void *arg, struct compstat *stats) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg; -+ -+ *stats = state->stats; -+} -+ -+/***************************/ -+/**** Compression stuff ****/ -+/***************************/ -+/* inserts 1 to 8 bits into the output buffer */ -+static inline void putbits8(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l) -+{ -+ buf += *i; -+ if (*l >= n) { -+ *l = (*l) - n; -+ val <<= *l; -+ *buf = *buf | (val & 0xff); -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ *(++buf) = 0; -+ } -+ } else { -+ (*i)++; -+ *l = 8 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 8) & 0xff); -+ *(++buf) = val & 0xff; -+ } -+} -+ -+/* inserts 9 to 16 bits into the output buffer */ -+static inline void putbits16(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l) -+{ -+ buf += *i; -+ if (*l >= n - 8) { -+ (*i)++; -+ *l = 8 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 8) & 0xff); -+ *(++buf) = val & 0xff; -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ *(++buf) = 0; -+ } -+ } else { -+ (*i)++; (*i)++; -+ *l = 16 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 16) & 0xff); -+ *(++buf) = (val >> 8) & 0xff; -+ *(++buf) = val & 0xff; -+ } -+} -+ -+/* inserts 17 to 24 bits into the output buffer */ -+static inline void putbits24(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l) -+{ -+ buf += *i; -+ if (*l >= n - 16) { -+ (*i)++; (*i)++; -+ *l = 16 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 16) & 0xff); -+ *(++buf) = (val >> 8) & 0xff; -+ *(++buf) = val & 0xff; -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ *(++buf) = 0; -+ } -+ } else { -+ (*i)++; (*i)++; (*i)++; -+ *l = 24 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 24) & 0xff); -+ *(++buf) = (val >> 16) & 0xff; -+ *(++buf) = (val >> 8) & 0xff; -+ *(++buf) = val & 0xff; -+ } -+} -+ -+static int -+mppc_compress(struct ppp_mppe_state *state, unsigned char *ibuf, -+ unsigned char *obuf, int isize, int osize) -+{ -+ u32 olen, off, len, idx, i, l; -+ u8 *hist, *sbuf, *p, *q, *r, *s; -+ -+ /* -+ At this point, to avoid possible buffer overflow caused by packet -+ expansion during/after compression, we should make sure that -+ osize >= (((isize*9)/8)+1)+2, but we don't do that because in -+ ppp_generic.c we simply allocate bigger obuf. -+ -+ Maximum MPPC packet expansion is 12.5%. This is the worst case when -+ all octets in the input buffer are >= 0x80 and we cannot find any -+ repeated tokens. Additionally we have to reserve 2 bytes for MPPE/MPPC -+ status bits and coherency counter. -+ */ -+ -+ hist = state->hist + MPPE_HIST_LEN; -+ /* check if there is enough room at the end of the history */ -+ if (state->histptr + isize >= 2*MPPE_HIST_LEN) { -+ state->bits |= MPPE_BIT_RESET; -+ state->histptr = MPPE_HIST_LEN; -+ memcpy(state->hist, hist, MPPE_HIST_LEN); -+ } -+ /* add packet to the history; isize must be <= MPPE_HIST_LEN */ -+ sbuf = state->hist + state->histptr; -+ memcpy(sbuf, ibuf, isize); -+ state->histptr += isize; -+ -+ /* compress data */ -+ r = sbuf + isize; -+ *obuf = olen = i = 0; -+ l = 8; -+ while (i < isize - 2) { -+ s = q = sbuf + i; -+ idx = ((40543*((((s[0]<<4)^s[1])<<4)^s[2]))>>4) & 0x1fff; -+ p = hist + state->hash[idx]; -+ state->hash[idx] = (u16) (s - hist); -+ off = s - p; -+ if (off > MPPE_HIST_LEN - 1 || off < 1 || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++) { -+ /* no match found; encode literal byte */ -+ if (ibuf[i] < 0x80) { /* literal byte < 0x80 */ -+ putbits8(obuf, (u32) ibuf[i], 8, &olen, &l); -+ } else { /* literal byte >= 0x80 */ -+ putbits16(obuf, (u32) (0x100|(ibuf[i]&0x7f)), 9, &olen, &l); -+ } -+ ++i; -+ continue; -+ } -+ if (r - q >= 64) { -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++; -+ if (s - q == 64) { -+ p--; s--; -+ while((*p++ == *s++) && (s < r) && (p < q)); -+ } -+ } else { -+ while((*p++ == *s++) && (s < r) && (p < q)); -+ } -+ len = s - q - 1; -+ i += len; -+ -+ /* at least 3 character match found; code data */ -+ /* encode offset */ -+ if (off < 64) { /* 10-bit offset; 0 <= offset < 64 */ -+ putbits16(obuf, 0x3c0|off, 10, &olen, &l); -+ } else if (off < 320) { /* 12-bit offset; 64 <= offset < 320 */ -+ putbits16(obuf, 0xe00|(off-64), 12, &olen, &l); -+ } else if (off < 8192) { /* 16-bit offset; 320 <= offset < 8192 */ -+ putbits16(obuf, 0xc000|(off-320), 16, &olen, &l); -+ } else { -+ /* This shouldn't happen; we return 0 what means "packet expands", -+ and we send packet uncompressed. */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: wrong offset value: %d\n", -+ __FUNCTION__, state->unit, off); -+ return 0; -+ } -+ /* encode length of match */ -+ if (len < 4) { /* length = 3 */ -+ putbits8(obuf, 0, 1, &olen, &l); -+ } else if (len < 8) { /* 4 <= length < 8 */ -+ putbits8(obuf, 0x08|(len&0x03), 4, &olen, &l); -+ } else if (len < 16) { /* 8 <= length < 16 */ -+ putbits8(obuf, 0x30|(len&0x07), 6, &olen, &l); -+ } else if (len < 32) { /* 16 <= length < 32 */ -+ putbits8(obuf, 0xe0|(len&0x0f), 8, &olen, &l); -+ } else if (len < 64) { /* 32 <= length < 64 */ -+ putbits16(obuf, 0x3c0|(len&0x1f), 10, &olen, &l); -+ } else if (len < 128) { /* 64 <= length < 128 */ -+ putbits16(obuf, 0xf80|(len&0x3f), 12, &olen, &l); -+ } else if (len < 256) { /* 128 <= length < 256 */ -+ putbits16(obuf, 0x3f00|(len&0x7f), 14, &olen, &l); -+ } else if (len < 512) { /* 256 <= length < 512 */ -+ putbits16(obuf, 0xfe00|(len&0xff), 16, &olen, &l); -+ } else if (len < 1024) { /* 512 <= length < 1024 */ -+ putbits24(obuf, 0x3fc00|(len&0x1ff), 18, &olen, &l); -+ } else if (len < 2048) { /* 1024 <= length < 2048 */ -+ putbits24(obuf, 0xff800|(len&0x3ff), 20, &olen, &l); -+ } else if (len < 4096) { /* 2048 <= length < 4096 */ -+ putbits24(obuf, 0x3ff000|(len&0x7ff), 22, &olen, &l); -+ } else if (len < 8192) { /* 4096 <= length < 8192 */ -+ putbits24(obuf, 0xffe000|(len&0xfff), 24, &olen, &l); -+ } else { -+ /* This shouldn't happen; we return 0 what means "packet expands", -+ and send packet uncompressed. */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: wrong length of match value: %d\n", -+ __FUNCTION__, state->unit, len); -+ return 0; -+ } -+ } -+ -+ /* Add remaining octets to the output */ -+ while(isize - i > 0) { -+ if (ibuf[i] < 0x80) { /* literal byte < 0x80 */ -+ putbits8(obuf, (u32) ibuf[i++], 8, &olen, &l); -+ } else { /* literal byte >= 0x80 */ -+ putbits16(obuf, (u32) (0x100|(ibuf[i++]&0x7f)), 9, &olen, &l); -+ } -+ } -+ /* Reset unused bits of the last output octet */ -+ if ((l != 0) && (l != 8)) { -+ putbits8(obuf, 0, l, &olen, &l); -+ } -+ -+ return (int) olen; -+} -+ -+int -+mppe_compress(void *arg, unsigned char *ibuf, unsigned char *obuf, -+ int isize, int osize) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg; -+ int proto, olen, complen, off; -+ unsigned char *wptr; -+ -+ /* Check that the protocol is in the range we handle. */ -+ proto = PPP_PROTOCOL(ibuf); -+ if (proto < 0x0021 || proto > 0x00fa) -+ return 0; -+ -+ wptr = obuf; -+ /* Copy over the PPP header */ -+ wptr[0] = PPP_ADDRESS(ibuf); -+ wptr[1] = PPP_CONTROL(ibuf); -+ wptr[2] = PPP_COMP >> 8; -+ wptr[3] = PPP_COMP; -+ wptr += PPP_HDRLEN + (MPPE_OVHD / 2); /* Leave two octets for MPPE/MPPC bits */ -+ -+ /* -+ * In ver. 0.99 protocol field was compressed. Deflate and BSD compress -+ * do PFC before actual compression, RCF2118 and RFC3078 are not precise -+ * on this topic so I decided to do PFC. Unfortunately this change caused -+ * incompatibility with older/other MPPE/MPPC modules. I have received -+ * a lot of complaints from unexperienced users so I have decided to revert -+ * to previous state, i.e. the protocol field is sent uncompressed now. -+ * Although this may be changed in the future. -+ * -+ * Receiving side (mppe_decompress()) still accepts packets with compressed -+ * and uncompressed protocol field so you shouldn't get "Unsupported protocol -+ * 0x2145 received" messages anymore. -+ */ -+ //off = (proto > 0xff) ? 2 : 3; /* PFC - skip first protocol byte if 0 */ -+ off = 2; -+ -+ ibuf += off; -+ -+ mppe_increase_ccount(state); -+ -+ if (state->nextflushed) { -+ state->bits |= MPPE_BIT_FLUSHED; -+ state->nextflushed = 0; -+ if (state->mppe && !state->stateless) { -+ /* -+ * If this is the flag packet, the key has been already changed in -+ * mppe_increase_ccount() so we dont't do it once again. -+ */ -+ if ((state->ccount & 0xff) != 0xff) { -+ arc4_setkey(state, state->session_key, state->keylen); -+ } -+ } -+ if (state->mppc) { /* reset history */ -+ state->bits |= MPPE_BIT_RESET; -+ state->histptr = MPPE_HIST_LEN; -+ memset(state->hist + MPPE_HIST_LEN, 0, MPPE_HIST_LEN*sizeof(u8)); -+ } -+ } -+ -+ if (state->mppc && !state->mppe) { /* Do only compression */ -+ complen = mppc_compress(state, ibuf, wptr, isize - off, -+ osize - PPP_HDRLEN - (MPPE_OVHD / 2)); -+ /* -+ * TODO: Implement an heuristics to handle packet expansion in a smart -+ * way. Now, when a packet expands, we send it as uncompressed and -+ * when next packet is sent we have to reset compressor's history. -+ * Maybe it would be better to send such packet as compressed in order -+ * to keep history's continuity. -+ */ -+ if ((complen > isize) || (complen > osize - PPP_HDRLEN) || -+ (complen == 0)) { -+ /* packet expands */ -+ state->nextflushed = 1; -+ memcpy(wptr, ibuf, isize - off); -+ olen = isize - (off - 2) + MPPE_OVHD; -+ (state->stats).inc_bytes += olen; -+ (state->stats).inc_packets++; -+ } else { -+ state->bits |= MPPE_BIT_COMP; -+ olen = complen + PPP_HDRLEN + (MPPE_OVHD / 2); -+ (state->stats).comp_bytes += olen; -+ (state->stats).comp_packets++; -+ } -+ } else { /* Do encryption with or without compression */ -+ state->bits |= MPPE_BIT_ENCRYPTED; -+ if (!state->mppc && state->mppe) { /* Do only encryption */ -+ /* read from ibuf, write to wptr, adjust for PPP_HDRLEN */ -+ arc4_encrypt(state, ibuf, isize - off, wptr); -+ olen = isize - (off - 2) + MPPE_OVHD; -+ (state->stats).inc_bytes += olen; -+ (state->stats).inc_packets++; -+ } else { /* Do compression and then encryption - RFC3078 */ -+ complen = mppc_compress(state, ibuf, wptr, isize - off, -+ osize - PPP_HDRLEN - (MPPE_OVHD / 2)); -+ /* -+ * TODO: Implement an heuristics to handle packet expansion in a smart -+ * way. Now, when a packet expands, we send it as uncompressed and -+ * when next packet is sent we have to reset compressor's history. -+ * Maybe it would be good to send such packet as compressed in order -+ * to keep history's continuity. -+ */ -+ if ((complen > isize) || (complen > osize - PPP_HDRLEN) || -+ (complen == 0)) { -+ /* packet expands */ -+ state->nextflushed = 1; -+ arc4_encrypt(state, ibuf, isize - off, wptr); -+ olen = isize - (off - 2) + MPPE_OVHD; -+ (state->stats).inc_bytes += olen; -+ (state->stats).inc_packets++; -+ } else { -+ state->bits |= MPPE_BIT_COMP; -+ /* Hack warning !!! RC4 implementation which we use does -+ encryption "in place" - it means that input and output -+ buffers can be *the same* memory area. Therefore we don't -+ need to use a temporary buffer. But be careful - other -+ implementations don't have to be so nice. -+ I used to use ibuf as temporary buffer here, but it led -+ packet sniffers into error. Thanks to Wilfried Weissmann -+ for pointing that. */ -+ arc4_encrypt(state, wptr, complen, wptr); -+ olen = complen + PPP_HDRLEN + (MPPE_OVHD / 2); -+ (state->stats).comp_bytes += olen; -+ (state->stats).comp_packets++; -+ } -+ } -+ } -+ -+ /* write status bits and coherency counter into the output buffer */ -+ wptr = obuf + PPP_HDRLEN; -+ wptr[0] = MPPE_CTRLHI(state); -+ wptr[1] = MPPE_CTRLLO(state); -+ -+ state->bits = 0; -+ -+ (state->stats).unc_bytes += isize; -+ (state->stats).unc_packets++; -+ -+ return olen; -+} -+ -+/***************************/ -+/*** Decompression stuff ***/ -+/***************************/ -+static inline u32 getbits(const u8 *buf, const u32 n, u32 *i, u32 *l) -+{ -+ static const u32 m[] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff}; -+ u32 res, ol; -+ -+ ol = *l; -+ if (*l >= n) { -+ *l = (*l) - n; -+ res = (buf[*i] & m[ol]) >> (*l); -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ } -+ } else { -+ *l = 8 - n + (*l); -+ res = (buf[(*i)++] & m[ol]) << 8; -+ res = (res | buf[*i]) >> (*l); -+ } -+ -+ return res; -+} -+ -+static inline u32 getbyte(const u8 *buf, const u32 i, const u32 l) -+{ -+ if (l == 8) { -+ return buf[i]; -+ } else { -+ return (((buf[i] << 8) | buf[i+1]) >> l) & 0xff; -+ } -+} -+ -+static inline void lamecopy(u8 *dst, u8 *src, u32 len) -+{ -+ while (len--) -+ *dst++ = *src++; -+} -+ -+static int -+mppc_decompress(struct ppp_mppe_state *state, unsigned char *ibuf, -+ unsigned char *obuf, int isize, int osize) -+{ -+ u32 olen, off, len, bits, val, sig, i, l; -+ u8 *history, *s; -+ -+ history = state->hist + state->histptr; -+ olen = len = i = 0; -+ l = 8; -+ bits = isize * 8; -+ while (bits >= 8) { -+ val = getbyte(ibuf, i++, l); -+ if (val < 0x80) { /* literal byte < 0x80 */ -+ if (state->histptr < 2*MPPE_HIST_LEN) { -+ /* copy uncompressed byte to the history */ -+ (state->hist)[(state->histptr)++] = (u8) val; -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: trying to write outside history " -+ "buffer\n", __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ olen++; -+ bits -= 8; -+ continue; -+ } -+ -+ sig = val & 0xc0; -+ if (sig == 0x80) { /* literal byte >= 0x80 */ -+ if (state->histptr < 2*MPPE_HIST_LEN) { -+ /* copy uncompressed byte to the history */ -+ (state->hist)[(state->histptr)++] = -+ (u8) (0x80|((val&0x3f)<<1)|getbits(ibuf, 1 , &i ,&l)); -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: trying to write outside history " -+ "buffer\n", __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ olen++; -+ bits -= 9; -+ continue; -+ } -+ -+ /* Not a literal byte so it must be an (offset,length) pair */ -+ /* decode offset */ -+ sig = val & 0xf0; -+ if (sig == 0xf0) { /* 10-bit offset; 0 <= offset < 64 */ -+ off = (((val&0x0f)<<2)|getbits(ibuf, 2 , &i ,&l)); -+ bits -= 10; -+ } else { -+ if (sig == 0xe0) { /* 12-bit offset; 64 <= offset < 320 */ -+ off = ((((val&0x0f)<<4)|getbits(ibuf, 4 , &i ,&l))+64); -+ bits -= 12; -+ } else { -+ if ((sig&0xe0) == 0xc0) {/* 16-bit offset; 320 <= offset < 8192 */ -+ off = ((((val&0x1f)<<8)|getbyte(ibuf, i++, l))+320); -+ bits -= 16; -+ if (off > MPPE_HIST_LEN - 1) { -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: too big offset value: %d\n", -+ __FUNCTION__, state->unit, off); -+ return DECOMP_ERROR; -+ } -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: cannot decode offset value\n", -+ __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ } -+ } -+ /* decode length of match */ -+ val = getbyte(ibuf, i, l); -+ if ((val & 0x80) == 0x00) { /* len = 3 */ -+ len = 3; -+ bits--; -+ getbits(ibuf, 1 , &i ,&l); -+ } else if ((val & 0xc0) == 0x80) { /* 4 <= len < 8 */ -+ len = 0x04 | ((val>>4) & 0x03); -+ bits -= 4; -+ getbits(ibuf, 4 , &i ,&l); -+ } else if ((val & 0xe0) == 0xc0) { /* 8 <= len < 16 */ -+ len = 0x08 | ((val>>2) & 0x07); -+ bits -= 6; -+ getbits(ibuf, 6 , &i ,&l); -+ } else if ((val & 0xf0) == 0xe0) { /* 16 <= len < 32 */ -+ len = 0x10 | (val & 0x0f); -+ bits -= 8; -+ i++; -+ } else { -+ bits -= 8; -+ val = (val << 8) | getbyte(ibuf, ++i, l); -+ if ((val & 0xf800) == 0xf000) { /* 32 <= len < 64 */ -+ len = 0x0020 | ((val >> 6) & 0x001f); -+ bits -= 2; -+ getbits(ibuf, 2 , &i ,&l); -+ } else if ((val & 0xfc00) == 0xf800) { /* 64 <= len < 128 */ -+ len = 0x0040 | ((val >> 4) & 0x003f); -+ bits -= 4; -+ getbits(ibuf, 4 , &i ,&l); -+ } else if ((val & 0xfe00) == 0xfc00) { /* 128 <= len < 256 */ -+ len = 0x0080 | ((val >> 2) & 0x007f); -+ bits -= 6; -+ getbits(ibuf, 6 , &i ,&l); -+ } else if ((val & 0xff00) == 0xfe00) { /* 256 <= len < 512 */ -+ len = 0x0100 | (val & 0x00ff); -+ bits -= 8; -+ i++; -+ } else { -+ bits -= 8; -+ val = (val << 8) | getbyte(ibuf, ++i, l); -+ if ((val & 0xff8000) == 0xff0000) { /* 512 <= len < 1024 */ -+ len = 0x000200 | ((val >> 6) & 0x0001ff); -+ bits -= 2; -+ getbits(ibuf, 2 , &i ,&l); -+ } else if ((val & 0xffc000) == 0xff8000) {/* 1024 <= len < 2048 */ -+ len = 0x000400 | ((val >> 4) & 0x0003ff); -+ bits -= 4; -+ getbits(ibuf, 4 , &i ,&l); -+ } else if ((val & 0xffe000) == 0xffc000) {/* 2048 <= len < 4096 */ -+ len = 0x000800 | ((val >> 2) & 0x0007ff); -+ bits -= 6; -+ getbits(ibuf, 6 , &i ,&l); -+ } else if ((val & 0xfff000) == 0xffe000) {/* 4096 <= len < 8192 */ -+ len = 0x001000 | (val & 0x000fff); -+ bits -= 8; -+ i++; -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: wrong length code: 0x%X\n", -+ __FUNCTION__, state->unit, val); -+ return DECOMP_ERROR; -+ } -+ } -+ } -+ s = state->hist + state->histptr; -+ state->histptr += len; -+ olen += len; -+ if (state->histptr < 2*MPPE_HIST_LEN) { -+ /* copy uncompressed bytes to the history */ -+ -+ /* In some cases len may be greater than off. It means that memory -+ * areas pointed by s and s-off overlap. I had used memmove() here -+ * because I thought that it acts as libc's version. Unfortunately, -+ * I was wrong. :-) I got strange errors sometimes. Wilfried suggested -+ * using of byte by byte copying here and strange errors disappeared. -+ */ -+ lamecopy(s, s - off, len); -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: trying to write outside history " -+ "buffer\n", __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ } -+ -+ /* Do PFC decompression */ -+ len = olen; -+ if ((history[0] & 0x01) != 0) { -+ obuf[0] = 0; -+ obuf++; -+ len++; -+ } -+ -+ if (len <= osize) { -+ /* copy uncompressed packet to the output buffer */ -+ memcpy(obuf, history, olen); -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: too big uncompressed packet: %d\n", -+ __FUNCTION__, state->unit, len + (PPP_HDRLEN / 2)); -+ return DECOMP_ERROR; -+ } -+ -+ return (int) len; -+} -+ -+int -+mppe_decompress(void *arg, unsigned char *ibuf, int isize, -+ unsigned char *obuf, int osize) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg; -+ int seq, bits, uncomplen; -+ -+ if (isize <= PPP_HDRLEN + MPPE_OVHD) { -+ if (state->debug) { -+ printk(KERN_DEBUG "%s%d: short packet (len=%d)\n", __FUNCTION__, -+ state->unit, isize); -+ } -+ return DECOMP_ERROR; -+ } -+ -+ /* Get coherency counter and control bits from input buffer */ -+ seq = MPPE_CCOUNT(ibuf); -+ bits = MPPE_BITS(ibuf); -+ -+ if (state->stateless) { -+ /* RFC 3078, sec 8.1. */ -+ mppe_increase_ccount(state); -+ if ((seq != state->ccount) && state->debug) -+ printk(KERN_DEBUG "%s%d: bad sequence number: %d, expected: %d\n", -+ __FUNCTION__, state->unit, seq, state->ccount); -+ while (seq != state->ccount) -+ mppe_increase_ccount(state); -+ } else { -+ /* RFC 3078, sec 8.2. */ -+ if (state->flushexpected) { /* discard state */ -+ if ((bits & MPPE_BIT_FLUSHED)) { /* we received expected FLUSH bit */ -+ while (seq != state->ccount) -+ mppe_increase_ccount(state); -+ state->flushexpected = 0; -+ } else /* drop packet*/ -+ return DECOMP_ERROR; -+ } else { /* normal state */ -+ mppe_increase_ccount(state); -+ if (seq != state->ccount) { -+ /* Packet loss detected, enter the discard state. */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: bad sequence number: %d, expected: %d\n", -+ __FUNCTION__, state->unit, seq, state->ccount); -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ } -+ if (state->mppe && (bits & MPPE_BIT_FLUSHED)) { -+ arc4_setkey(state, state->session_key, state->keylen); -+ } -+ } -+ -+ if (state->mppc && (bits & (MPPE_BIT_FLUSHED | MPPE_BIT_RESET))) { -+ state->histptr = MPPE_HIST_LEN; -+ if ((bits & MPPE_BIT_FLUSHED)) { -+ memset(state->hist + MPPE_HIST_LEN, 0, MPPE_HIST_LEN*sizeof(u8)); -+ } else -+ if ((bits & MPPE_BIT_RESET)) { -+ memcpy(state->hist, state->hist + MPPE_HIST_LEN, MPPE_HIST_LEN); -+ } -+ } -+ -+ /* Fill in the first part of the PPP header. The protocol field -+ comes from the decompressed data. */ -+ obuf[0] = PPP_ADDRESS(ibuf); -+ obuf[1] = PPP_CONTROL(ibuf); -+ obuf += PPP_HDRLEN / 2; -+ -+ if (state->mppe) { /* process encrypted packet */ -+ if ((bits & MPPE_BIT_ENCRYPTED)) { -+ /* OK, packet encrypted, so decrypt it */ -+ if (state->mppc && (bits & MPPE_BIT_COMP)) { -+ /* Hack warning !!! RC4 implementation which we use does -+ decryption "in place" - it means that input and output -+ buffers can be *the same* memory area. Therefore we don't -+ need to use a temporary buffer. But be careful - other -+ implementations don't have to be so nice. */ -+ arc4_decrypt(state, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2), isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2), ibuf + PPP_HDRLEN + -+ (MPPE_OVHD / 2)); -+ uncomplen = mppc_decompress(state, ibuf + PPP_HDRLEN + -+ (MPPE_OVHD / 2), obuf, isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2), -+ osize - (PPP_HDRLEN / 2)); -+ if (uncomplen == DECOMP_ERROR) { -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ uncomplen += PPP_HDRLEN / 2; -+ (state->stats).comp_bytes += isize; -+ (state->stats).comp_packets++; -+ } else { -+ uncomplen = isize - MPPE_OVHD; -+ /* Decrypt the first byte in order to check if it is -+ compressed or uncompressed protocol field */ -+ arc4_decrypt(state, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2), 1, obuf); -+ /* Do PFC decompression */ -+ if ((obuf[0] & 0x01) != 0) { -+ obuf[1] = obuf[0]; -+ obuf[0] = 0; -+ obuf++; -+ uncomplen++; -+ } -+ /* And finally, decrypt the rest of the frame. */ -+ arc4_decrypt(state, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2) + 1, -+ isize - PPP_HDRLEN - (MPPE_OVHD / 2) - 1, obuf + 1); -+ (state->stats).inc_bytes += isize; -+ (state->stats).inc_packets++; -+ } -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: encryption negotiated but not an " -+ "encrypted packet received\n", __FUNCTION__, state->unit); -+ mppe_change_key(state, 0); -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ } else { -+ if (state->mppc) { /* no MPPE, only MPPC */ -+ if ((bits & MPPE_BIT_COMP)) { -+ uncomplen = mppc_decompress(state, ibuf + PPP_HDRLEN + -+ (MPPE_OVHD / 2), obuf, isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2), -+ osize - (PPP_HDRLEN / 2)); -+ if (uncomplen == DECOMP_ERROR) { -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ uncomplen += PPP_HDRLEN / 2; -+ (state->stats).comp_bytes += isize; -+ (state->stats).comp_packets++; -+ } else { -+ memcpy(obuf, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2), isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2)); -+ uncomplen = isize - MPPE_OVHD; -+ (state->stats).inc_bytes += isize; -+ (state->stats).inc_packets++; -+ } -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: error - not an MPPC or MPPE frame " -+ "received\n", __FUNCTION__, state->unit); -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ } -+ -+ (state->stats).unc_bytes += uncomplen; -+ (state->stats).unc_packets++; -+ -+ return uncomplen; -+} -+ -+ -+/************************************************************ -+ * Module interface table -+ ************************************************************/ -+ -+/* These are in ppp_generic.c */ -+extern int ppp_register_compressor (struct compressor *cp); -+extern void ppp_unregister_compressor (struct compressor *cp); -+ -+/* -+ * Functions exported to ppp_generic.c. -+ * -+ * In case of MPPC/MPPE there is no need to process incompressible data -+ * because such a data is sent in MPPC/MPPE frame. Therefore the (*incomp) -+ * callback function isn't needed. -+ */ -+struct compressor ppp_mppe = { -+ .compress_proto = CI_MPPE, -+ .comp_alloc = mppe_comp_alloc, -+ .comp_free = mppe_comp_free, -+ .comp_init = mppe_comp_init, -+ .comp_reset = mppe_comp_reset, -+ .compress = mppe_compress, -+ .comp_stat = mppe_stats, -+ .decomp_alloc = mppe_decomp_alloc, -+ .decomp_free = mppe_comp_free, -+ .decomp_init = mppe_decomp_init, -+ .decomp_reset = mppe_decomp_reset, -+ .decompress = mppe_decompress, -+ .incomp = NULL, -+ .decomp_stat = mppe_stats, -+ .owner = THIS_MODULE -+}; -+ -+/************************************************************ -+ * Module support routines -+ ************************************************************/ -+ -+int __init mppe_module_init(void) -+{ -+ int answer; -+ -+ if (!(crypto_alg_available("arc4", 0) && crypto_alg_available("sha1", 0))) { -+ printk(KERN_ERR "Kernel doesn't provide ARC4 and/or SHA1 algorithms " -+ "required by MPPE/MPPC. Check CryptoAPI configuration.\n"); -+ return -ENODEV; -+ } -+ -+ /* Allocate space for SHAPad1, SHAPad2 and ... */ -+ sha_pad = kmalloc(sizeof(struct sha_pad), GFP_KERNEL); -+ if (sha_pad == NULL) -+ return -ENOMEM; -+ /* ... initialize them */ -+ memset(sha_pad->sha_pad1, 0x00, sizeof(sha_pad->sha_pad1)); -+ memset(sha_pad->sha_pad2, 0xf2, sizeof(sha_pad->sha_pad2)); -+ -+ answer = ppp_register_compressor(&ppp_mppe); -+ if (answer == 0) { -+ printk(KERN_INFO "MPPE/MPPC encryption/compression module registered\n"); -+ } -+ return answer; -+} -+ -+void __exit mppe_module_cleanup(void) -+{ -+ kfree(sha_pad); -+ ppp_unregister_compressor(&ppp_mppe); -+ printk(KERN_INFO "MPPE/MPPC encryption/compression module unregistered\n"); -+} -+ -+module_init(mppe_module_init); -+module_exit(mppe_module_cleanup); -+ -+MODULE_AUTHOR("Jan Dubiec <jdx@slackware.pl>"); -+MODULE_DESCRIPTION("MPPE/MPPC encryption/compression module for Linux"); -+MODULE_VERSION("1.2"); -+MODULE_LICENSE("Dual BSD/GPL"); -+MODULE_ALIAS("ppp-compress-" __stringify(CI_MPPE)); -diff -ruN linux-2.6.12.orig/include/linux/ppp-comp.h linux-2.6.12/include/linux/ppp-comp.h ---- linux-2.6.12.orig/include/linux/ppp-comp.h 2004-12-24 22:33:47.000000000 +0100 -+++ linux-2.6.12/include/linux/ppp-comp.h 2005-06-28 20:07:01.000000000 +0200 -@@ -28,7 +28,7 @@ - */ - - /* -- * ==FILEVERSION 980319== -+ * ==FILEVERSION 20040509== - * - * NOTE TO MAINTAINERS: - * If you modify this file at all, please set the above date. -@@ -80,7 +80,7 @@ - - /* Compress a packet */ - int (*compress) (void *state, unsigned char *rptr, -- unsigned char *obuf, int isize, int osize); -+ unsigned char *obuf, int isize, int osize); - - /* Return compression statistics */ - void (*comp_stat) (void *state, struct compstat *stats); -@@ -101,7 +101,7 @@ - - /* Decompress a packet. */ - int (*decompress) (void *state, unsigned char *ibuf, int isize, -- unsigned char *obuf, int osize); -+ unsigned char *obuf, int osize); - - /* Update state for an incompressible packet received */ - void (*incomp) (void *state, unsigned char *ibuf, int icnt); -@@ -191,6 +191,42 @@ - #define DEFLATE_CHK_SEQUENCE 0 - - /* -+ * Definitions for MPPE/MPPC. -+ */ -+ -+#define CI_MPPE 18 /* config option for MPPE */ -+#define CILEN_MPPE 6 /* length of config option */ -+ -+#define MPPE_OVHD 4 /* MPPE overhead */ -+#define MPPE_MAX_KEY_LEN 16 /* largest key length (128-bit) */ -+ -+#define MPPE_STATELESS 0x01 /* configuration bit H */ -+#define MPPE_40BIT 0x20 /* configuration bit L */ -+#define MPPE_56BIT 0x80 /* configuration bit M */ -+#define MPPE_128BIT 0x40 /* configuration bit S */ -+#define MPPE_MPPC 0x01 /* configuration bit C */ -+ -+/* -+ * Definitions for Stac LZS. -+ */ -+ -+#define CI_LZS 17 /* config option for Stac LZS */ -+#define CILEN_LZS 5 /* length of config option */ -+ -+#define LZS_OVHD 4 /* max. LZS overhead */ -+#define LZS_HIST_LEN 2048 /* LZS history size */ -+#define LZS_MAX_CCOUNT 0x0FFF /* max. coherency counter value */ -+ -+#define LZS_MODE_NONE 0 -+#define LZS_MODE_LCB 1 -+#define LZS_MODE_CRC 2 -+#define LZS_MODE_SEQ 3 -+#define LZS_MODE_EXT 4 -+ -+#define LZS_EXT_BIT_FLUSHED 0x80 /* bit A */ -+#define LZS_EXT_BIT_COMP 0x20 /* bit C */ -+ -+/* - * Definitions for other, as yet unsupported, compression methods. - */ - diff --git a/packages/linux/linux-dht-walnut-2.6.12.6/ppc_40x_uboot.patch b/packages/linux/linux-dht-walnut-2.6.12.6/ppc_40x_uboot.patch deleted file mode 100644 index fcb700c5b4..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12.6/ppc_40x_uboot.patch +++ /dev/null @@ -1,693 +0,0 @@ -diff-tree 3e9e7c1d0b7a36fb8affb973a054c5098e27baa8 (from 90eb2665841d7b444602736e2141a01c948f75b1)
-Author: Matt Porter <mporter@kernel.crashing.org>
-Date: Mon Nov 7 00:58:15 2005 -0800
-
- [PATCH] ppc32: cleanup AMCC PPC40x eval boards to support U-Boot
-
- Cleanup PPC40x eval boards (bubinga, walnut and sycamore) to support U-Boot
- as bootloader. The OpenBIOS bd_info struct is not used in the kernel
- anymore (only U-Boot now).
-
- uImage (U-Boot) tested on walnut, sycamore and bubinga
- zImage (OpenBIOS) tested on sycamore, bubinga and ebony
-
- Signed-off-by: Stefan Roese <sr@denx.de>
- Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
- Signed-off-by: Andrew Morton <akpm@osdl.org>
- Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
-diff --git a/arch/ppc/boot/simple/Makefile b/arch/ppc/boot/simple/Makefile
-index ff0904e..82df88b 100644
---- a/arch/ppc/boot/simple/Makefile
-+++ b/arch/ppc/boot/simple/Makefile
-@@ -67,6 +67,12 @@ zimageinitrd-$(CONFIG_BAMBOO) := zImage
- entrypoint-$(CONFIG_BAMBOO) := 0x01000000
- extra.o-$(CONFIG_BAMBOO) := pibs.o
-
-+ zimage-$(CONFIG_BUBINGA) := zImage-TREE
-+zimageinitrd-$(CONFIG_BUBINGA) := zImage.initrd-TREE
-+ end-$(CONFIG_BUBINGA) := bubinga
-+ entrypoint-$(CONFIG_BUBINGA) := 0x01000000
-+ extra.o-$(CONFIG_BUBINGA) := openbios.o
-+
- zimage-$(CONFIG_EBONY) := zImage-TREE
- zimageinitrd-$(CONFIG_EBONY) := zImage.initrd-TREE
- end-$(CONFIG_EBONY) := ebony
-@@ -91,6 +97,18 @@ zimageinitrd-$(CONFIG_OCOTEA) := zImage
- entrypoint-$(CONFIG_OCOTEA) := 0x01000000
- extra.o-$(CONFIG_OCOTEA) := pibs.o
-
-+ zimage-$(CONFIG_SYCAMORE) := zImage-TREE
-+zimageinitrd-$(CONFIG_SYCAMORE) := zImage.initrd-TREE
-+ end-$(CONFIG_SYCAMORE) := sycamore
-+ entrypoint-$(CONFIG_SYCAMORE) := 0x01000000
-+ extra.o-$(CONFIG_SYCAMORE) := openbios.o
-+
-+ zimage-$(CONFIG_WALNUT) := zImage-TREE
-+zimageinitrd-$(CONFIG_WALNUT) := zImage.initrd-TREE
-+ end-$(CONFIG_WALNUT) := walnut
-+ entrypoint-$(CONFIG_WALNUT) := 0x01000000
-+ extra.o-$(CONFIG_WALNUT) := openbios.o
-+
- extra.o-$(CONFIG_EV64260) := misc-ev64260.o
- end-$(CONFIG_EV64260) := ev64260
- cacheflag-$(CONFIG_EV64260) := -include $(clear_L2_L3)
-@@ -168,7 +186,8 @@ OBJCOPY_ARGS := -O elf32-powerpc
-
- # head.o and relocate.o must be at the start.
- boot-y := head.o relocate.o $(extra.o-y) $(misc-y)
--boot-$(CONFIG_40x) += embed_config.o
-+boot-$(CONFIG_REDWOOD_5) += embed_config.o
-+boot-$(CONFIG_REDWOOD_6) += embed_config.o
- boot-$(CONFIG_8xx) += embed_config.o
- boot-$(CONFIG_8260) += embed_config.o
- boot-$(CONFIG_BSEIP) += iic.o
-diff --git a/arch/ppc/boot/simple/misc.c b/arch/ppc/boot/simple/misc.c
-index e02de5b..f415d6c 100644
---- a/arch/ppc/boot/simple/misc.c
-+++ b/arch/ppc/boot/simple/misc.c
-@@ -23,7 +23,7 @@
- #include <asm/page.h>
- #include <asm/mmu.h>
- #include <asm/bootinfo.h>
--#ifdef CONFIG_44x
-+#ifdef CONFIG_4xx
- #include <asm/ibm4xx.h>
- #endif
- #include <asm/reg.h>
-@@ -88,6 +88,14 @@ get_mem_size(void)
- return 0;
- }
-
-+#if defined(CONFIG_40x)
-+#define PPC4xx_EMAC0_MR0 EMAC0_BASE
-+#endif
-+
-+#if defined(CONFIG_44x) && defined(PPC44x_EMAC0_MR0)
-+#define PPC4xx_EMAC0_MR0 PPC44x_EMAC0_MR0
-+#endif
-+
- struct bi_record *
- decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
- {
-@@ -103,13 +111,13 @@ decompress_kernel(unsigned long load_add
- com_port = serial_init(0, NULL);
- #endif
-
--#if defined(CONFIG_44x) && defined(PPC44x_EMAC0_MR0)
-+#if defined(PPC4xx_EMAC0_MR0)
- /* Reset MAL */
- mtdcr(DCRN_MALCR(DCRN_MAL_BASE), MALCR_MMSR);
- /* Wait for reset */
- while (mfdcr(DCRN_MALCR(DCRN_MAL_BASE)) & MALCR_MMSR) {};
- /* Reset EMAC */
-- *(volatile unsigned long *)PPC44x_EMAC0_MR0 = 0x20000000;
-+ *(volatile unsigned long *)PPC4xx_EMAC0_MR0 = 0x20000000;
- __asm__ __volatile__("eieio");
- #endif
-
-@@ -164,7 +172,9 @@ decompress_kernel(unsigned long load_add
- puts(" "); puthex((unsigned long)(&__ramdisk_end));puts("\n");
- }
-
-+#ifndef CONFIG_40x /* don't overwrite the 40x image located at 0x00400000! */
- avail_ram = (char *)0x00400000;
-+#endif
- end_avail = (char *)0x00800000;
- puts("avail ram: "); puthex((unsigned long)avail_ram); puts(" ");
- puthex((unsigned long)end_avail); puts("\n");
-diff --git a/arch/ppc/boot/simple/openbios.c b/arch/ppc/boot/simple/openbios.c
-index c732b6d..81f11d8 100644
---- a/arch/ppc/boot/simple/openbios.c
-+++ b/arch/ppc/boot/simple/openbios.c
-@@ -1,19 +1,43 @@
- /*
- * arch/ppc/boot/simple/openbios.c
- *
-- * 2005 (c) SYSGO AG - g.jaeger@sysgo.com
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
-+ *
-+ * Based on original work by
-+ * 2005 (c) SYSGO AG - g.jaeger@sysgo.com
-+ *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- *
-- * Derived from arch/ppc/boot/simple/pibs.c (from MontaVista)
- */
-
- #include <linux/types.h>
- #include <linux/config.h>
- #include <linux/string.h>
- #include <asm/ppcboot.h>
--#include <platforms/4xx/ebony.h>
-+#include <asm/ibm4xx.h>
-+#include <asm/reg.h>
-+#ifdef CONFIG_40x
-+#include <asm/io.h>
-+#endif
-+
-+#if defined(CONFIG_BUBINGA)
-+#define BOARD_INFO_VECTOR 0xFFF80B50 /* openbios 1.19 moved this vector down - armin */
-+#else
-+#define BOARD_INFO_VECTOR 0xFFFE0B50
-+#endif
-+
-+#ifdef CONFIG_40x
-+/* Supply a default Ethernet address for those eval boards that don't
-+ * ship with one. This is an address from the MBX board I have, so
-+ * it is unlikely you will find it on your network.
-+ */
-+static ushort def_enet_addr[] = { 0x0800, 0x3e26, 0x1559 };
-+
-+extern unsigned long timebase_period_ns;
-+#endif /* CONFIG_40x */
-
- extern unsigned long decompress_kernel(unsigned long load_addr, int num_words,
- unsigned long cksum);
-@@ -23,15 +47,85 @@ extern unsigned long decompress_kernel(u
- bd_t hold_resid_buf __attribute__ ((__section__ (".data.boot")));
- bd_t *hold_residual = &hold_resid_buf;
-
-+typedef struct openbios_board_info {
-+ unsigned char bi_s_version[4]; /* Version of this structure */
-+ unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-+ unsigned int bi_memsize; /* DRAM installed, in bytes */
-+#ifdef CONFIG_405EP
-+ unsigned char bi_enetaddr[2][6]; /* Local Ethernet MAC address */
-+#else /* CONFIG_405EP */
-+ unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */
-+#endif /* CONFIG_405EP */
-+ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-+ unsigned int bi_intfreq; /* Processor speed, in Hz */
-+ unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-+ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
-+#ifdef CONFIG_405EP
-+ unsigned int bi_opb_busfreq; /* OPB Bus speed, in Hz */
-+ unsigned int bi_pllouta_freq; /* PLL OUTA speed, in Hz */
-+#endif /* CONFIG_405EP */
-+} openbios_bd_t;
-+
- void *
- load_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
- void *ign1, void *ign2)
- {
-- decompress_kernel(load_addr, num_words, cksum);
-+#ifdef CONFIG_40x
-+ openbios_bd_t *openbios_bd = NULL;
-+ openbios_bd_t *(*get_board_info)(void) =
-+ (openbios_bd_t *(*)(void))(*(unsigned long *)BOARD_INFO_VECTOR);
-+
-+ /*
-+ * On 40x platforms we not only need the MAC-addresses, but also the
-+ * clocks and memsize. Now try to get all values using the OpenBIOS
-+ * "get_board_info()" callback.
-+ */
-+ if ((openbios_bd = get_board_info()) != NULL) {
-+ /*
-+ * Copy bd_info from OpenBIOS struct into U-Boot struct
-+ * used by kernel
-+ */
-+ hold_residual->bi_memsize = openbios_bd->bi_memsize;
-+ hold_residual->bi_intfreq = openbios_bd->bi_intfreq;
-+ hold_residual->bi_busfreq = openbios_bd->bi_busfreq;
-+ hold_residual->bi_pci_busfreq = openbios_bd->bi_pci_busfreq;
-+ memcpy(hold_residual->bi_pci_enetaddr, openbios_bd->bi_pci_enetaddr, 6);
-+#ifdef CONFIG_405EP
-+ memcpy(hold_residual->bi_enetaddr, openbios_bd->bi_enetaddr[0], 6);
-+ memcpy(hold_residual->bi_enet1addr, openbios_bd->bi_enetaddr[1], 6);
-+ hold_residual->bi_opbfreq = openbios_bd->bi_opb_busfreq;
-+ hold_residual->bi_procfreq = openbios_bd->bi_pllouta_freq;
-+#else /* CONFIG_405EP */
-+ memcpy(hold_residual->bi_enetaddr, openbios_bd->bi_enetaddr, 6);
-+#endif /* CONFIG_405EP */
-+ } else {
-+ /* Hmmm...better try to stuff some defaults.
-+ */
-+ hold_residual->bi_memsize = 16 * 1024 * 1024;
-+ hold_residual->bi_intfreq = 200000000;
-+ hold_residual->bi_busfreq = 100000000;
-+ hold_residual->bi_pci_busfreq = 66666666;
-+
-+ /*
-+ * Only supply one mac-address in this fallback
-+ */
-+ memcpy(hold_residual->bi_enetaddr, (void *)def_enet_addr, 6);
-+#ifdef CONFIG_405EP
-+ hold_residual->bi_opbfreq = 50000000;
-+ hold_residual->bi_procfreq = 200000000;
-+#endif /* CONFIG_405EP */
-+ }
-+
-+ timebase_period_ns = 1000000000 / hold_residual->bi_intfreq;
-+#endif /* CONFIG_40x */
-
-+#ifdef CONFIG_440GP
- /* simply copy the MAC addresses */
-- memcpy(hold_residual->bi_enetaddr, (char *)EBONY_OPENBIOS_MAC_BASE, 6);
-- memcpy(hold_residual->bi_enet1addr, (char *)(EBONY_OPENBIOS_MAC_BASE+EBONY_OPENBIOS_MAC_OFFSET), 6);
-+ memcpy(hold_residual->bi_enetaddr, (char *)OPENBIOS_MAC_BASE, 6);
-+ memcpy(hold_residual->bi_enet1addr, (char *)(OPENBIOS_MAC_BASE+OPENBIOS_MAC_OFFSET), 6);
-+#endif /* CONFIG_440GP */
-+
-+ decompress_kernel(load_addr, num_words, cksum);
-
- return (void *)hold_residual;
- }
-diff --git a/arch/ppc/platforms/4xx/Kconfig b/arch/ppc/platforms/4xx/Kconfig
-index e70e4c6..d883791 100644
---- a/arch/ppc/platforms/4xx/Kconfig
-+++ b/arch/ppc/platforms/4xx/Kconfig
-@@ -225,7 +225,7 @@ config EMBEDDEDBOOT
-
- config IBM_OPENBIOS
- bool
-- depends on ASH || BUBINGA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
-+ depends on ASH || REDWOOD_5 || REDWOOD_6
- default y
-
- config PPC4xx_DMA
-diff --git a/arch/ppc/platforms/4xx/bubinga.c b/arch/ppc/platforms/4xx/bubinga.c
-index 3678abf..8110f55 100644
---- a/arch/ppc/platforms/4xx/bubinga.c
-+++ b/arch/ppc/platforms/4xx/bubinga.c
-@@ -89,7 +89,7 @@ bubinga_early_serial_map(void)
- * by 16.
- */
- uart_div = (mfdcr(DCRN_CPC0_UCR_BASE) & DCRN_CPC0_UCR_U0DIV);
-- uart_clock = __res.bi_pllouta_freq / uart_div;
-+ uart_clock = __res.bi_procfreq / uart_div;
-
- /* Setup serial port access */
- memset(&port, 0, sizeof(port));
-diff --git a/arch/ppc/platforms/4xx/bubinga.h b/arch/ppc/platforms/4xx/bubinga.h
-index b1df856..b5380cf 100644
---- a/arch/ppc/platforms/4xx/bubinga.h
-+++ b/arch/ppc/platforms/4xx/bubinga.h
-@@ -1,52 +1,34 @@
- /*
-- * Support for IBM PPC 405EP evaluation board (Bubinga).
-+ * arch/ppc/platforms/4xx/bubinga.h
- *
-- * Author: SAW (IBM), derived from walnut.h.
-- * Maintained by MontaVista Software <source@mvista.com>
-+ * Bubinga board definitions
-+ *
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
-+ *
-+ * Based on original work by
-+ * SAW (IBM)
-+ * 2003 (c) MontaVista Softare Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
- *
-- * 2003 (c) MontaVista Softare Inc. This file is licensed under the
-- * terms of the GNU General Public License version 2. This program is
-- * licensed "as is" without any warranty of any kind, whether express
-- * or implied.
- */
-
- #ifdef __KERNEL__
- #ifndef __BUBINGA_H__
- #define __BUBINGA_H__
-
--/* 405EP */
-+#include <linux/config.h>
- #include <platforms/4xx/ibm405ep.h>
--
--#ifndef __ASSEMBLY__
--/*
-- * Data structure defining board information maintained by the boot
-- * ROM on IBM's evaluation board. An effort has been made to
-- * keep the field names consistent with the 8xx 'bd_t' board info
-- * structures.
-- */
--
--typedef struct board_info {
-- unsigned char bi_s_version[4]; /* Version of this structure */
-- unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-- unsigned int bi_memsize; /* DRAM installed, in bytes */
-- unsigned char bi_enetaddr[2][6]; /* Local Ethernet MAC address */ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-- unsigned int bi_intfreq; /* Processor speed, in Hz */
-- unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-- unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
-- unsigned int bi_opb_busfreq; /* OPB Bus speed, in Hz */
-- unsigned int bi_pllouta_freq; /* PLL OUTA speed, in Hz */
--} bd_t;
--
--/* Some 4xx parts use a different timebase frequency from the internal clock.
--*/
--#define bi_tbfreq bi_intfreq
--
-+#include <asm/ppcboot.h>
-
- /* Memory map for the Bubinga board.
- * Generic 4xx plus RTC.
- */
-
--extern void *bubinga_rtc_base;
- #define BUBINGA_RTC_PADDR ((uint)0xf0000000)
- #define BUBINGA_RTC_VADDR BUBINGA_RTC_PADDR
- #define BUBINGA_RTC_SIZE ((uint)8*1024)
-@@ -58,12 +40,18 @@ extern void *bubinga_rtc_base;
- * for typical configurations at various CPU speeds.
- * The base baud is calculated as (FWDA / EXT UART DIV / 16)
- */
--#define BASE_BAUD 0
-+#define BASE_BAUD 0
-
--#define BUBINGA_FPGA_BASE 0xF0300000
-+/* Flash */
-+#define PPC40x_FPGA_BASE 0xF0300000
-+#define PPC40x_FPGA_REG_OFFS 1 /* offset to flash map reg */
-+#define PPC40x_FLASH_ONBD_N(x) (x & 0x02)
-+#define PPC40x_FLASH_SRAM_SEL(x) (x & 0x01)
-+#define PPC40x_FLASH_LOW 0xFFF00000
-+#define PPC40x_FLASH_HIGH 0xFFF80000
-+#define PPC40x_FLASH_SIZE 0x80000
-
--#define PPC4xx_MACHINE_NAME "IBM Bubinga"
-+#define PPC4xx_MACHINE_NAME "IBM Bubinga"
-
--#endif /* !__ASSEMBLY__ */
- #endif /* __BUBINGA_H__ */
- #endif /* __KERNEL__ */
-diff --git a/arch/ppc/platforms/4xx/ebony.h b/arch/ppc/platforms/4xx/ebony.h
-index d08faa4..b91ad42 100644
---- a/arch/ppc/platforms/4xx/ebony.h
-+++ b/arch/ppc/platforms/4xx/ebony.h
-@@ -24,8 +24,8 @@
- #define PPC44x_EMAC0_MR0 0xE0000800
-
- /* Where to find the MAC info */
--#define EBONY_OPENBIOS_MAC_BASE 0xfffffe0c
--#define EBONY_OPENBIOS_MAC_OFFSET 0x0c
-+#define OPENBIOS_MAC_BASE 0xfffffe0c
-+#define OPENBIOS_MAC_OFFSET 0x0c
-
- /* Default clock rates for Rev. B and Rev. C silicon */
- #define EBONY_440GP_RB_SYSCLK 33000000
-diff --git a/arch/ppc/platforms/4xx/sycamore.c b/arch/ppc/platforms/4xx/sycamore.c
-index d8019ee..281b4a2 100644
---- a/arch/ppc/platforms/4xx/sycamore.c
-+++ b/arch/ppc/platforms/4xx/sycamore.c
-@@ -88,9 +88,6 @@ ppc405_map_irq(struct pci_dev *dev, unsi
- void __init
- sycamore_setup_arch(void)
- {
--#define SYCAMORE_PS2_BASE 0xF0100000
--#define SYCAMORE_FPGA_BASE 0xF0300000
--
- void *fpga_brdc;
- unsigned char fpga_brdc_data;
- void *fpga_enable;
-@@ -100,7 +97,7 @@ sycamore_setup_arch(void)
-
- ppc4xx_setup_arch();
-
-- ibm_ocp_set_emac(0, 1);
-+ ibm_ocp_set_emac(0, 0);
-
- kb_data = ioremap(SYCAMORE_PS2_BASE, 8);
- if (!kb_data) {
-@@ -111,7 +108,7 @@ sycamore_setup_arch(void)
-
- kb_cs = kb_data + 1;
-
-- fpga_status = ioremap(SYCAMORE_FPGA_BASE, 8);
-+ fpga_status = ioremap(PPC40x_FPGA_BASE, 8);
- if (!fpga_status) {
- printk(KERN_CRIT
- "sycamore_setup_arch() fpga_status ioremap failed\n");
-diff --git a/arch/ppc/platforms/4xx/sycamore.h b/arch/ppc/platforms/4xx/sycamore.h
-index 3e7b4e2..1cd6c82 100644
---- a/arch/ppc/platforms/4xx/sycamore.h
-+++ b/arch/ppc/platforms/4xx/sycamore.h
-@@ -1,67 +1,52 @@
- /*
- * arch/ppc/platforms/4xx/sycamore.h
- *
-- * Macros, definitions, and data structures specific to the IBM PowerPC
-- * 405GPr "Sycamore" evaluation board.
-+ * Sycamore board definitions
- *
-- * Author: Armin Kuster <akuster@mvista.com>
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
-+ *
-+ * Based on original work by
-+ * Armin Kuster <akuster@mvista.com>
-+ * 2000 (c) MontaVista, Software, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
- *
-- * 2000 (c) MontaVista, Software, Inc. This file is licensed under
-- * the terms of the GNU General Public License version 2. This program
-- * is licensed "as is" without any warranty of any kind, whether express
-- * or implied.
- */
-
- #ifdef __KERNEL__
- #ifndef __ASM_SYCAMORE_H__
- #define __ASM_SYCAMORE_H__
-
-+#include <linux/config.h>
- #include <platforms/4xx/ibm405gpr.h>
-+#include <asm/ppcboot.h>
-
--#ifndef __ASSEMBLY__
--/*
-- * Data structure defining board information maintained by the boot
-- * ROM on IBM's "Sycamore" evaluation board. An effort has been made to
-- * keep the field names consistent with the 8xx 'bd_t' board info
-- * structures.
-- */
--
--typedef struct board_info {
-- unsigned char bi_s_version[4]; /* Version of this structure */
-- unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-- unsigned int bi_memsize; /* DRAM installed, in bytes */
-- unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */
-- unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-- unsigned int bi_intfreq; /* Processor speed, in Hz */
-- unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-- unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
--} bd_t;
--
--/* Some 4xx parts use a different timebase frequency from the internal clock.
--*/
--#define bi_tbfreq bi_intfreq
--
--
--/* Memory map for the IBM "Sycamore" 405GP evaluation board.
-+/* Memory map for the IBM "Sycamore" 405GPr evaluation board.
- * Generic 4xx plus RTC.
- */
-
--extern void *sycamore_rtc_base;
- #define SYCAMORE_RTC_PADDR ((uint)0xf0000000)
- #define SYCAMORE_RTC_VADDR SYCAMORE_RTC_PADDR
--#define SYCAMORE_RTC_SIZE ((uint)8*1024)
-+#define SYCAMORE_RTC_SIZE ((uint)8*1024)
-
--#ifdef CONFIG_PPC405GP_INTERNAL_CLOCK
--#define BASE_BAUD 201600
--#else
- #define BASE_BAUD 691200
--#endif
-
--#define SYCAMORE_PS2_BASE 0xF0100000
--#define SYCAMORE_FPGA_BASE 0xF0300000
-+#define SYCAMORE_PS2_BASE 0xF0100000
-+
-+/* Flash */
-+#define PPC40x_FPGA_BASE 0xF0300000
-+#define PPC40x_FPGA_REG_OFFS 5 /* offset to flash map reg */
-+#define PPC40x_FLASH_ONBD_N(x) (x & 0x02)
-+#define PPC40x_FLASH_SRAM_SEL(x) (x & 0x01)
-+#define PPC40x_FLASH_LOW 0xFFF00000
-+#define PPC40x_FLASH_HIGH 0xFFF80000
-+#define PPC40x_FLASH_SIZE 0x80000
-
- #define PPC4xx_MACHINE_NAME "IBM Sycamore"
-
--#endif /* !__ASSEMBLY__ */
- #endif /* __ASM_SYCAMORE_H__ */
- #endif /* __KERNEL__ */
-diff --git a/arch/ppc/platforms/4xx/walnut.c b/arch/ppc/platforms/4xx/walnut.c
-index a33eda4..74cb331 100644
---- a/arch/ppc/platforms/4xx/walnut.c
-+++ b/arch/ppc/platforms/4xx/walnut.c
-@@ -90,7 +90,7 @@ walnut_setup_arch(void)
-
- kb_cs = kb_data + 1;
-
-- fpga_status = ioremap(WALNUT_FPGA_BASE, 8);
-+ fpga_status = ioremap(PPC40x_FPGA_BASE, 8);
- if (!fpga_status) {
- printk(KERN_CRIT
- "walnut_setup_arch() fpga_status ioremap failed\n");
-diff --git a/arch/ppc/platforms/4xx/walnut.h b/arch/ppc/platforms/4xx/walnut.h
-index 04cfbf3..dcf2691 100644
---- a/arch/ppc/platforms/4xx/walnut.h
-+++ b/arch/ppc/platforms/4xx/walnut.h
-@@ -1,72 +1,55 @@
- /*
- * arch/ppc/platforms/4xx/walnut.h
- *
-- * Macros, definitions, and data structures specific to the IBM PowerPC
-- * 405GP "Walnut" evaluation board.
-+ * Walnut board definitions
- *
-- * Authors: Grant Erickson <grant@lcse.umn.edu>, Frank Rowand
-- * <frank_rowand@mvista.com>, Debbie Chu <debbie_chu@mvista.com> or
-- * source@mvista.com
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
- *
-- * Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
-+ * Based on original work by
-+ * Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
-+ * Frank Rowand <frank_rowand@mvista.com>
-+ * Debbie Chu <debbie_chu@mvista.com>
-+ * 2000 (c) MontaVista, Software, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
- *
-- * 2000 (c) MontaVista, Software, Inc. This file is licensed under
-- * the terms of the GNU General Public License version 2. This program
-- * is licensed "as is" without any warranty of any kind, whether express
-- * or implied.
- */
-
- #ifdef __KERNEL__
- #ifndef __ASM_WALNUT_H__
- #define __ASM_WALNUT_H__
-
--/* We have a 405GP core */
-+#include <linux/config.h>
- #include <platforms/4xx/ibm405gp.h>
--
--#ifndef __ASSEMBLY__
--/*
-- * Data structure defining board information maintained by the boot
-- * ROM on IBM's "Walnut" evaluation board. An effort has been made to
-- * keep the field names consistent with the 8xx 'bd_t' board info
-- * structures.
-- */
--
--typedef struct board_info {
-- unsigned char bi_s_version[4]; /* Version of this structure */
-- unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-- unsigned int bi_memsize; /* DRAM installed, in bytes */
-- unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */
-- unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-- unsigned int bi_intfreq; /* Processor speed, in Hz */
-- unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-- unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
--} bd_t;
--
--/* Some 4xx parts use a different timebase frequency from the internal clock.
--*/
--#define bi_tbfreq bi_intfreq
--
-+#include <asm/ppcboot.h>
-
- /* Memory map for the IBM "Walnut" 405GP evaluation board.
- * Generic 4xx plus RTC.
- */
-
--extern void *walnut_rtc_base;
- #define WALNUT_RTC_PADDR ((uint)0xf0000000)
- #define WALNUT_RTC_VADDR WALNUT_RTC_PADDR
- #define WALNUT_RTC_SIZE ((uint)8*1024)
-
--#ifdef CONFIG_PPC405GP_INTERNAL_CLOCK
--#define BASE_BAUD 201600
--#else
- #define BASE_BAUD 691200
--#endif
-
- #define WALNUT_PS2_BASE 0xF0100000
--#define WALNUT_FPGA_BASE 0xF0300000
-+
-+/* Flash */
-+#define PPC40x_FPGA_BASE 0xF0300000
-+#define PPC40x_FPGA_REG_OFFS 5 /* offset to flash map reg */
-+#define PPC40x_FLASH_ONBD_N(x) (x & 0x02)
-+#define PPC40x_FLASH_SRAM_SEL(x) (x & 0x01)
-+#define PPC40x_FLASH_LOW 0xFFF00000
-+#define PPC40x_FLASH_HIGH 0xFFF80000
-+#define PPC40x_FLASH_SIZE 0x80000
-+#define WALNUT_FPGA_BASE PPC40x_FPGA_BASE
-
- #define PPC4xx_MACHINE_NAME "IBM Walnut"
-
--#endif /* !__ASSEMBLY__ */
- #endif /* __ASM_WALNUT_H__ */
- #endif /* __KERNEL__ */
-diff --git a/include/asm-ppc/ibm_ocp.h b/include/asm-ppc/ibm_ocp.h
-index 6f10a25..9c21de1 100644
---- a/include/asm-ppc/ibm_ocp.h
-+++ b/include/asm-ppc/ibm_ocp.h
-@@ -131,9 +131,22 @@ static inline void ibm_ocp_set_emac(int
- /* Copy MAC addresses to EMAC additions */
- for (i=start; i<=end; i++) {
- def = ocp_get_one_device(OCP_VENDOR_IBM, OCP_FUNC_EMAC, i);
-- memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-- &__res.bi_enetaddr[i],
-- 6);
-+ if (i == 0)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enetaddr, 6);
-+#if defined(CONFIG_405EP) || defined(CONFIG_44x)
-+ else if (i == 1)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enet1addr, 6);
-+#endif
-+#if defined(CONFIG_440GX)
-+ else if (i == 2)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enet2addr, 6);
-+ else if (i == 3)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enet3addr, 6);
-+#endif
- }
- }
- #endif
-diff --git a/include/asm-ppc/ppcboot.h b/include/asm-ppc/ppcboot.h
-index fe24e45..6b7b63f 100644
---- a/include/asm-ppc/ppcboot.h
-+++ b/include/asm-ppc/ppcboot.h
-@@ -73,8 +73,8 @@ typedef struct bd_info {
- #if defined(CONFIG_HYMOD)
- hymod_conf_t bi_hymod_conf; /* hymod configuration information */
- #endif
--#if defined(CONFIG_EVB64260) || defined(CONFIG_44x) || defined(CONFIG_85xx) ||\
-- defined(CONFIG_83xx)
-+#if defined(CONFIG_EVB64260) || defined(CONFIG_405EP) || defined(CONFIG_44x) || \
-+ defined(CONFIG_85xx) || defined(CONFIG_83xx)
- /* second onboard ethernet port */
- unsigned char bi_enet1addr[6];
- #endif
-@@ -96,5 +96,7 @@ typedef struct bd_info {
- #endif
- } bd_t;
-
-+#define bi_tbfreq bi_intfreq
-+
- #endif /* __ASSEMBLY__ */
- #endif /* __ASM_PPCBOOT_H__ */
diff --git a/packages/linux/linux-dht-walnut-2.6.12/dht-walnut_defconfig b/packages/linux/linux-dht-walnut-2.6.12/dht-walnut_defconfig deleted file mode 100644 index 3cd0837ceb..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12/dht-walnut_defconfig +++ /dev/null @@ -1,1963 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.12 -# Sat May 13 19:38:16 2006 -# -CONFIG_MMU=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_HAVE_DEC_LOCK=y -CONFIG_PPC=y -CONFIG_PPC32=y -CONFIG_GENERIC_NVRAM=y -CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_CLEAN_COMPILE=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="" -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_POSIX_MQUEUE=y -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -CONFIG_HOTPLUG=y -CONFIG_KOBJECT_UEVENT=y -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -CONFIG_EMBEDDED=y -CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_EXTRA_PASS=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -# CONFIG_EPOLL is not set -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -# CONFIG_TINY_SHMEM is not set -CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_KMOD=y - -# -# Processor -# -# CONFIG_6xx is not set -CONFIG_40x=y -# CONFIG_44x is not set -# CONFIG_POWER3 is not set -# CONFIG_POWER4 is not set -# CONFIG_8xx is not set -# CONFIG_E500 is not set -CONFIG_MATH_EMULATION=y -# CONFIG_CPU_FREQ is not set -CONFIG_4xx=y - -# -# IBM 4xx options -# -# CONFIG_ASH is not set -# CONFIG_BUBINGA is not set -# CONFIG_CPCI405 is not set -# CONFIG_EP405 is not set -# CONFIG_OAK is not set -# CONFIG_REDWOOD_5 is not set -# CONFIG_REDWOOD_6 is not set -# CONFIG_SYCAMORE is not set -CONFIG_WALNUT=y -# CONFIG_XILINX_ML300 is not set -CONFIG_IBM405_ERR77=y -CONFIG_IBM405_ERR51=y -CONFIG_IBM_OCP=y -CONFIG_BIOS_FIXUP=y -CONFIG_405GP=y -# CONFIG_PPC4xx_DMA is not set -CONFIG_PPC_GEN550=y -# CONFIG_PM is not set -CONFIG_UART0_TTYS0=y -# CONFIG_UART0_TTYS1 is not set -CONFIG_NOT_COHERENT_CACHE=y - -# -# Platform options -# -# CONFIG_PC_KEYBOARD is not set -# CONFIG_SMP is not set -# CONFIG_PREEMPT is not set -# CONFIG_HIGHMEM is not set -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_MISC is not set -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="ip=on" -CONFIG_ISA_DMA_API=y - -# -# Bus options -# -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_LEGACY_PROC=y -# CONFIG_PCI_NAMES is not set - -# -# PCCARD (PCMCIA/CardBus) support -# -CONFIG_PCCARD=y -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_TCIC=m -CONFIG_PCCARD_NONSTATIC=m - -# -# Advanced setup -# -# CONFIG_ADVANCED_OPTIONS is not set - -# -# Default settings for advanced configuration options are used -# -CONFIG_HIGHMEM_START=0xfe000000 -CONFIG_LOWMEM_SIZE=0x30000000 -CONFIG_KERNEL_START=0xc0000000 -CONFIG_TASK_SIZE=0x80000000 -CONFIG_CONSISTENT_START=0xff100000 -CONFIG_CONSISTENT_SIZE=0x00200000 -CONFIG_BOOT_LOAD=0x00400000 - -# -# Device Drivers -# - -# -# Generic Driver Options -# -# CONFIG_STANDALONE is not set -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y -CONFIG_MTD_REDBOOT_PARTS=m -CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 -# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set -# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set -# CONFIG_MTD_CMDLINE_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLOCK=m -CONFIG_MTD_BLOCK_RO=m -CONFIG_FTL=m -CONFIG_NFTL=m -# CONFIG_NFTL_RW is not set -CONFIG_INFTL=m - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=m -CONFIG_MTD_JEDECPROBE=m -CONFIG_MTD_GEN_PROBE=m -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_CFI_INTELEXT=m -CONFIG_MTD_CFI_AMDSTD=m -CONFIG_MTD_CFI_AMDSTD_RETRY=0 -CONFIG_MTD_CFI_STAA=m -CONFIG_MTD_CFI_UTIL=m -CONFIG_MTD_RAM=m -CONFIG_MTD_ROM=m -CONFIG_MTD_ABSENT=m -# CONFIG_MTD_XIP is not set - -# -# Mapping drivers for chip access -# -CONFIG_MTD_COMPLEX_MAPPINGS=y -CONFIG_MTD_PHYSMAP=m -CONFIG_MTD_PHYSMAP_START=0x8000000 -CONFIG_MTD_PHYSMAP_LEN=0x4000000 -CONFIG_MTD_PHYSMAP_BANKWIDTH=2 -CONFIG_MTD_WALNUT=m -CONFIG_MTD_PCI=m - -# -# Self-contained MTD device drivers -# -CONFIG_MTD_PMC551=m -CONFIG_MTD_PMC551_BUGFIX=y -# CONFIG_MTD_PMC551_DEBUG is not set -CONFIG_MTD_SLRAM=m -CONFIG_MTD_PHRAM=m -# CONFIG_MTD_MTDRAM is not set -CONFIG_MTD_BLKMTD=m -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -CONFIG_MTD_DOC2000=m -CONFIG_MTD_DOC2001=m -CONFIG_MTD_DOC2001PLUS=m -CONFIG_MTD_DOCPROBE=m -CONFIG_MTD_DOCECC=m -# CONFIG_MTD_DOCPROBE_ADVANCED is not set -CONFIG_MTD_DOCPROBE_ADDRESS=0 - -# -# NAND Flash Device Drivers -# -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -CONFIG_MTD_NAND_IDS=m -CONFIG_MTD_NAND_DISKONCHIP=m -# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 -# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set -# CONFIG_MTD_NAND_NANDSIM is not set - -# -# Parallel port support -# -CONFIG_PARPORT=m -CONFIG_PARPORT_PC=m -# CONFIG_PARPORT_SERIAL is not set -# CONFIG_PARPORT_PC_FIFO is not set -# CONFIG_PARPORT_PC_SUPERIO is not set -# CONFIG_PARPORT_PC_PCMCIA is not set -# CONFIG_PARPORT_GSC is not set -# CONFIG_PARPORT_1284 is not set - -# -# Plug and Play support -# - -# -# Block devices -# -CONFIG_BLK_DEV_FD=m -CONFIG_PARIDE=m -CONFIG_PARIDE_PARPORT=m - -# -# Parallel IDE high-level drivers -# -CONFIG_PARIDE_PD=m -CONFIG_PARIDE_PCD=m -CONFIG_PARIDE_PF=m -CONFIG_PARIDE_PT=m -CONFIG_PARIDE_PG=m - -# -# Parallel IDE protocol modules -# -CONFIG_PARIDE_ATEN=m -CONFIG_PARIDE_BPCK=m -CONFIG_PARIDE_BPCK6=m -CONFIG_PARIDE_COMM=m -CONFIG_PARIDE_DSTR=m -CONFIG_PARIDE_FIT2=m -CONFIG_PARIDE_FIT3=m -CONFIG_PARIDE_EPAT=m -# CONFIG_PARIDE_EPATC8 is not set -CONFIG_PARIDE_EPIA=m -CONFIG_PARIDE_FRIQ=m -CONFIG_PARIDE_FRPW=m -CONFIG_PARIDE_KBIC=m -CONFIG_PARIDE_KTTI=m -CONFIG_PARIDE_ON20=m -CONFIG_PARIDE_ON26=m -CONFIG_BLK_CPQ_DA=m -CONFIG_BLK_CPQ_CISS_DA=m -# CONFIG_CISS_SCSI_TAPE is not set -CONFIG_BLK_DEV_DAC960=m -CONFIG_BLK_DEV_UMEM=m -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_SX8=m -CONFIG_BLK_DEV_UB=m -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -# CONFIG_LBD is not set -CONFIG_CDROM_PKTCDVD=m -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -# CONFIG_CDROM_PKTCDVD_WCACHE is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -CONFIG_ATA_OVER_ETH=m - -# -# ATA/ATAPI/MFM/RLL support -# -CONFIG_IDE=y -CONFIG_BLK_DEV_IDE=y - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=y -# CONFIG_IDEDISK_MULTI_MODE is not set -CONFIG_BLK_DEV_IDECS=m -CONFIG_BLK_DEV_IDECD=y -CONFIG_BLK_DEV_IDETAPE=m -CONFIG_BLK_DEV_IDEFLOPPY=m -CONFIG_BLK_DEV_IDESCSI=m -# CONFIG_IDE_TASK_IOCTL is not set - -# -# IDE chipset support/bugfixes -# -CONFIG_IDE_GENERIC=y -CONFIG_BLK_DEV_IDEPCI=y -# CONFIG_IDEPCI_SHARE_IRQ is not set -CONFIG_BLK_DEV_OFFBOARD=y -CONFIG_BLK_DEV_GENERIC=y -CONFIG_BLK_DEV_OPTI621=m -CONFIG_BLK_DEV_SL82C105=m -CONFIG_BLK_DEV_IDEDMA_PCI=y -# CONFIG_BLK_DEV_IDEDMA_FORCED is not set -CONFIG_IDEDMA_PCI_AUTO=y -# CONFIG_IDEDMA_ONLYDISK is not set -CONFIG_BLK_DEV_AEC62XX=m -CONFIG_BLK_DEV_ALI15X3=m -# CONFIG_WDC_ALI15X3 is not set -CONFIG_BLK_DEV_AMD74XX=m -CONFIG_BLK_DEV_CMD64X=m -CONFIG_BLK_DEV_TRIFLEX=m -CONFIG_BLK_DEV_CY82C693=m -CONFIG_BLK_DEV_CS5520=m -CONFIG_BLK_DEV_CS5530=m -CONFIG_BLK_DEV_HPT34X=m -# CONFIG_HPT34X_AUTODMA is not set -CONFIG_BLK_DEV_HPT366=m -CONFIG_BLK_DEV_SC1200=m -CONFIG_BLK_DEV_PIIX=m -CONFIG_BLK_DEV_NS87415=m -CONFIG_BLK_DEV_PDC202XX_OLD=y -# CONFIG_PDC202XX_BURST is not set -CONFIG_BLK_DEV_PDC202XX_NEW=m -# CONFIG_PDC202XX_FORCE is not set -CONFIG_BLK_DEV_SVWKS=m -CONFIG_BLK_DEV_SIIMAGE=m -CONFIG_BLK_DEV_SLC90E66=m -CONFIG_BLK_DEV_TRM290=m -CONFIG_BLK_DEV_VIA82CXXX=m -# CONFIG_IDE_ARM is not set -CONFIG_BLK_DEV_IDEDMA=y -# CONFIG_IDEDMA_IVB is not set -CONFIG_IDEDMA_AUTO=y -# CONFIG_BLK_DEV_HD is not set - -# -# SCSI device support -# -CONFIG_SCSI=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=y -# CONFIG_BLK_DEV_SR_VENDOR is not set -CONFIG_CHR_DEV_SG=y - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set - -# -# SCSI Transport Attributes -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -# CONFIG_SCSI_ISCSI_ATTRS is not set - -# -# SCSI low-level drivers -# -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_3W_9XXX=m -CONFIG_SCSI_ACARD=m -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -CONFIG_AIC7XXX_DEBUG_ENABLE=y -CONFIG_AIC7XXX_DEBUG_MASK=0 -CONFIG_AIC7XXX_REG_PRETTY_PRINT=y -CONFIG_SCSI_AIC7XXX_OLD=m -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_ENABLE_RD_STRM is not set -CONFIG_AIC79XX_DEBUG_ENABLE=y -CONFIG_AIC79XX_DEBUG_MASK=0 -CONFIG_AIC79XX_REG_PRETTY_PRINT=y -CONFIG_SCSI_DPT_I2O=m -# CONFIG_MEGARAID_NEWGEN is not set -CONFIG_MEGARAID_LEGACY=m -# CONFIG_SCSI_SATA is not set -CONFIG_SCSI_BUSLOGIC=m -# CONFIG_SCSI_OMIT_FLASHPOINT is not set -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_EATA=m -# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set -# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set -CONFIG_SCSI_EATA_MAX_TAGS=16 -# CONFIG_SCSI_FUTURE_DOMAIN is not set -CONFIG_SCSI_GDTH=m -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_PPA=m -CONFIG_SCSI_IMM=m -# CONFIG_SCSI_IZIP_EPP16 is not set -# CONFIG_SCSI_IZIP_SLOW_CTR is not set -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set -CONFIG_SCSI_IPR=m -# CONFIG_SCSI_IPR_TRACE is not set -# CONFIG_SCSI_IPR_DUMP is not set -CONFIG_SCSI_QLOGIC_FC=m -# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set -CONFIG_SCSI_QLOGIC_1280=m -# CONFIG_SCSI_QLOGIC_1280_1040 is not set -CONFIG_SCSI_QLA2XXX=y -CONFIG_SCSI_QLA21XX=m -CONFIG_SCSI_QLA22XX=m -CONFIG_SCSI_QLA2300=m -CONFIG_SCSI_QLA2322=m -CONFIG_SCSI_QLA6312=m -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m -CONFIG_SCSI_NSP32=m -CONFIG_SCSI_DEBUG=m - -# -# PCMCIA SCSI adapter support -# -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m - -# -# Multi-device support (RAID and LVM) -# -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID5=m -CONFIG_MD_RAID6=m -CONFIG_MD_MULTIPATH=m -CONFIG_MD_FAULTY=m -CONFIG_BLK_DEV_DM=m -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_MIRROR=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_EMC=m - -# -# Fusion MPT device support -# -CONFIG_FUSION=m -CONFIG_FUSION_MAX_SGE=40 -CONFIG_FUSION_CTL=m - -# -# IEEE 1394 (FireWire) support -# -CONFIG_IEEE1394=m - -# -# Subsystem Options -# -# CONFIG_IEEE1394_VERBOSEDEBUG is not set -# CONFIG_IEEE1394_OUI_DB is not set -CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y -CONFIG_IEEE1394_CONFIG_ROM_IP1394=y - -# -# Device Drivers -# -CONFIG_IEEE1394_PCILYNX=m -CONFIG_IEEE1394_OHCI1394=m - -# -# Protocol Drivers -# -CONFIG_IEEE1394_VIDEO1394=m -CONFIG_IEEE1394_SBP2=m -CONFIG_IEEE1394_SBP2_PHYS_DMA=y -CONFIG_IEEE1394_ETH1394=m -CONFIG_IEEE1394_DV1394=m -CONFIG_IEEE1394_RAWIO=m -CONFIG_IEEE1394_CMP=m -CONFIG_IEEE1394_AMDTP=m - -# -# I2O device support -# -# CONFIG_I2O is not set - -# -# Macintosh device drivers -# - -# -# Networking support -# -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_MMAP is not set -CONFIG_UNIX=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_IP_MULTIPLE_TABLES=y -# CONFIG_IP_ROUTE_FWMARK is not set -CONFIG_IP_ROUTE_MULTIPATH=y -# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -# CONFIG_IP_PIMSM_V1 is not set -# CONFIG_IP_PIMSM_V2 is not set -# CONFIG_ARPD is not set -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_TUNNEL=m -CONFIG_IP_TCPDIAG=y -# CONFIG_IP_TCPDIAG_IPV6 is not set - -# -# IP: Virtual Server Configuration -# -# CONFIG_IP_VS is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_TUNNEL=m -CONFIG_IPV6_TUNNEL=m -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_BRIDGE_NETFILTER=y - -# -# IP: Netfilter Configuration -# -CONFIG_IP_NF_CONNTRACK=m -CONFIG_IP_NF_CT_ACCT=y -CONFIG_IP_NF_CONNTRACK_MARK=y -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_LIMIT=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_MAC=m -CONFIG_IP_NF_MATCH_PKTTYPE=m -CONFIG_IP_NF_MATCH_MARK=m -CONFIG_IP_NF_MATCH_MULTIPORT=m -CONFIG_IP_NF_MATCH_TOS=m -CONFIG_IP_NF_MATCH_RECENT=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_DSCP=m -CONFIG_IP_NF_MATCH_AH_ESP=m -CONFIG_IP_NF_MATCH_LENGTH=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_TCPMSS=m -CONFIG_IP_NF_MATCH_HELPER=m -CONFIG_IP_NF_MATCH_STATE=m -CONFIG_IP_NF_MATCH_CONNTRACK=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_PHYSDEV=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_REALM=m -CONFIG_IP_NF_MATCH_SCTP=m -CONFIG_IP_NF_MATCH_COMMENT=m -CONFIG_IP_NF_MATCH_CONNMARK=m -CONFIG_IP_NF_MATCH_HASHLIMIT=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_SAME=m -CONFIG_IP_NF_NAT_SNMP_BASIC=m -CONFIG_IP_NF_NAT_IRC=m -CONFIG_IP_NF_NAT_FTP=m -CONFIG_IP_NF_NAT_TFTP=m -CONFIG_IP_NF_NAT_AMANDA=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_DSCP=m -CONFIG_IP_NF_TARGET_MARK=m -CONFIG_IP_NF_TARGET_CLASSIFY=m -CONFIG_IP_NF_TARGET_CONNMARK=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_TARGET_NOTRACK=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m - -# -# IPv6: Netfilter Configuration (EXPERIMENTAL) -# -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_LIMIT=m -CONFIG_IP6_NF_MATCH_MAC=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_MULTIPORT=m -CONFIG_IP6_NF_MATCH_OWNER=m -CONFIG_IP6_NF_MATCH_MARK=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_AHESP=m -CONFIG_IP6_NF_MATCH_LENGTH=m -CONFIG_IP6_NF_MATCH_EUI64=m -# CONFIG_IP6_NF_MATCH_PHYSDEV is not set -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_TARGET_MARK=m -CONFIG_IP6_NF_RAW=m - -# -# DECnet: Netfilter Configuration -# -# CONFIG_DECNET_NF_GRABULATOR is not set - -# -# Bridge: Netfilter Configuration -# -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m -CONFIG_XFRM=y -CONFIG_XFRM_USER=m - -# -# SCTP Configuration (EXPERIMENTAL) -# -CONFIG_IP_SCTP=m -# CONFIG_SCTP_DBG_MSG is not set -# CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_HMAC_NONE is not set -# CONFIG_SCTP_HMAC_SHA1 is not set -CONFIG_SCTP_HMAC_MD5=y -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -# CONFIG_ATM_CLIP_NO_ICMP is not set -CONFIG_ATM_LANE=m -CONFIG_ATM_MPOA=m -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m -CONFIG_DECNET=m -# CONFIG_DECNET_ROUTER is not set -CONFIG_LLC=m -CONFIG_LLC2=m -CONFIG_IPX=m -# CONFIG_IPX_INTERN is not set -CONFIG_ATALK=m -# CONFIG_DEV_APPLETALK is not set -CONFIG_X25=m -CONFIG_LAPB=m -# CONFIG_NET_DIVERT is not set -CONFIG_ECONET=m -# CONFIG_ECONET_AUNUDP is not set -# CONFIG_ECONET_NATIVE is not set -CONFIG_WAN_ROUTER=m - -# -# QoS and/or fair queueing -# -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CLK_JIFFIES=y -# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set -# CONFIG_NET_SCH_CLK_CPU is not set -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_INGRESS=m -CONFIG_NET_QOS=y -CONFIG_NET_ESTIMATOR=y -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -# CONFIG_CLS_U32_PERF is not set -# CONFIG_NET_CLS_IND is not set -# CONFIG_CLS_U32_MARK is not set -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_CLS_ACT is not set -CONFIG_NET_CLS_POLICE=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -CONFIG_NETPOLL=y -# CONFIG_NETPOLL_RX is not set -# CONFIG_NETPOLL_TRAP is not set -CONFIG_NET_POLL_CONTROLLER=y -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -CONFIG_NETDEVICES=y -# CONFIG_DUMMY is not set -CONFIG_BONDING=m -CONFIG_EQUALIZER=m -CONFIG_TUN=m - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set - -# -# Ethernet (10 or 100Mbit) -# -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -CONFIG_NET_VENDOR_3COM=y -CONFIG_VORTEX=m -CONFIG_TYPHOON=m - -# -# Tulip family network device support -# -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_TULIP=m -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_PCMCIA_XIRTULIP=m -CONFIG_HP100=m -CONFIG_IBM_EMAC=y -# CONFIG_IBM_EMAC_ERRMSG is not set -CONFIG_IBM_EMAC_RXB=128 -CONFIG_IBM_EMAC_TXB=64 -CONFIG_IBM_EMAC_FGAP=8 -CONFIG_IBM_EMAC_SKBRES=0 -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -# CONFIG_AMD8111E_NAPI is not set -CONFIG_ADAPTEC_STARFIRE=m -# CONFIG_ADAPTEC_STARFIRE_NAPI is not set -CONFIG_B44=m -CONFIG_FORCEDETH=m -CONFIG_DGRS=m -CONFIG_EEPRO100=m -CONFIG_E100=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m -CONFIG_NE2K_PCI=m -CONFIG_8139CP=m -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8139TOO_8129 is not set -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_SIS900=m -CONFIG_EPIC100=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_TLAN=m -CONFIG_VIA_RHINE=m -# CONFIG_VIA_RHINE_MMIO is not set - -# -# Ethernet (1000 Mbit) -# -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -# CONFIG_E1000_NAPI is not set -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -# CONFIG_R8169_NAPI is not set -# CONFIG_R8169_VLAN is not set -CONFIG_SK98LIN=m -CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m - -# -# Ethernet (10000 Mbit) -# -# CONFIG_IXGB is not set -# CONFIG_S2IO is not set - -# -# Token Ring devices -# -# CONFIG_TR is not set - -# -# Wireless LAN (non-hamradio) -# -CONFIG_NET_RADIO=y - -# -# Obsolete Wireless cards support (pre-802.11) -# -CONFIG_STRIP=m -CONFIG_PCMCIA_WAVELAN=m -CONFIG_PCMCIA_NETWAVE=m - -# -# Wireless 802.11 Frequency Hopping cards support -# -CONFIG_PCMCIA_RAYCS=m - -# -# Wireless 802.11b ISA/PCI cards support -# -CONFIG_HERMES=m -CONFIG_PLX_HERMES=m -CONFIG_TMD_HERMES=m -CONFIG_PCI_HERMES=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m - -# -# Wireless 802.11b Pcmcia/Cardbus cards support -# -CONFIG_PCMCIA_HERMES=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_PCMCIA_WL3501=m - -# -# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support -# -CONFIG_PRISM54=m -CONFIG_NET_WIRELESS=y - -# -# PCMCIA network device support -# -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m - -# -# Wan interfaces -# -CONFIG_WAN=y -CONFIG_DSCC4=m -# CONFIG_DSCC4_PCISYNC is not set -# CONFIG_DSCC4_PCI_RST is not set -CONFIG_LANMEDIA=m -CONFIG_SYNCLINK_SYNCPPP=m -CONFIG_HDLC=m -# CONFIG_HDLC_RAW is not set -# CONFIG_HDLC_RAW_ETH is not set -# CONFIG_HDLC_CISCO is not set -# CONFIG_HDLC_FR is not set -# CONFIG_HDLC_PPP is not set -# CONFIG_HDLC_X25 is not set -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -CONFIG_PC300=m - -# -# Cyclades-PC300 MLPPP support is disabled. -# - -# -# Refer to the file README.mlppp, provided by PC300 package. -# -CONFIG_FARSYNC=m -CONFIG_DLCI=m -CONFIG_DLCI_COUNT=24 -CONFIG_DLCI_MAX=8 -# CONFIG_WAN_ROUTER_DRIVERS is not set -CONFIG_LAPBETHER=m -CONFIG_X25_ASY=m - -# -# ATM drivers -# -# CONFIG_ATM_TCP is not set -# CONFIG_ATM_LANAI is not set -# CONFIG_ATM_ENI is not set -# CONFIG_ATM_FIRESTREAM is not set -# CONFIG_ATM_ZATM is not set -# CONFIG_ATM_NICSTAR is not set -# CONFIG_ATM_IDT77252 is not set -# CONFIG_ATM_AMBASSADOR is not set -# CONFIG_ATM_HORIZON is not set -# CONFIG_ATM_IA is not set -# CONFIG_ATM_FORE200E_MAYBE is not set -# CONFIG_ATM_HE is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE_MPPC=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLIP_SMART=y -# CONFIG_SLIP_MODE_SLIP6 is not set -# CONFIG_NET_FC is not set -CONFIG_SHAPER=m -CONFIG_NETCONSOLE=m - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Telephony Support -# -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INPUT_JOYDEV=y -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_NEWTON is not set -CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -# CONFIG_SERIO_I8042 is not set -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_PARKBD is not set -# CONFIG_SERIO_PCIPS2 is not set -# CONFIG_SERIO_LIBPS2 is not set -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -# CONFIG_SERIAL_8250_CS is not set -CONFIG_SERIAL_8250_NR_UARTS=4 -# CONFIG_SERIAL_8250_EXTENDED is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 -CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set -CONFIG_PPDEV=m -CONFIG_TIPAR=m - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m -# CONFIG_WDT_501_PCI is not set - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_NVRAM=m -CONFIG_GEN_RTC=m -# CONFIG_GEN_RTC_X is not set -CONFIG_DTLK=m -CONFIG_R3964=m -CONFIG_APPLICOM=m - -# -# Ftape, the floppy tape device driver -# -CONFIG_AGP=m -CONFIG_DRM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m -CONFIG_DRM_RADEON=m -CONFIG_DRM_MGA=m -CONFIG_DRM_SIS=m - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -CONFIG_RAW_DRIVER=m -CONFIG_MAX_RAW_DEVS=256 - -# -# TPM devices -# -CONFIG_TCG_TPM=m -CONFIG_TCG_NSC=m -CONFIG_TCG_ATMEL=m - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -CONFIG_I2C_ALGOBIT=y -CONFIG_I2C_ALGOPCF=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_I810 is not set -# CONFIG_I2C_PIIX4 is not set -CONFIG_I2C_IBM_IIC=y -CONFIG_I2C_ISA=m -# CONFIG_I2C_MPC is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_PARPORT is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PROSAVAGE is not set -# CONFIG_I2C_SAVAGE4 is not set -# CONFIG_SCx200_ACB is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_VOODOO3 is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Hardware Sensors Chip support -# -CONFIG_I2C_SENSOR=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ASB100=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_FSCHER=m -CONFIG_SENSORS_FSCPOS=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83627HF=m - -# -# Other I2C Chip support -# -CONFIG_SENSORS_DS1337=m -CONFIG_SENSORS_EEPROM=m -CONFIG_SENSORS_PCF8574=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_RTC8564=m -CONFIG_SENSORS_M41T00=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set - -# -# Dallas's 1-wire bus -# -# CONFIG_W1 is not set - -# -# Misc devices -# - -# -# Multimedia devices -# -CONFIG_VIDEO_DEV=m - -# -# Video For Linux -# - -# -# Video Adapters -# -CONFIG_VIDEO_BT848=m -CONFIG_VIDEO_BWQCAM=m -CONFIG_VIDEO_CQCAM=m -CONFIG_VIDEO_CPIA=m -CONFIG_VIDEO_CPIA_USB=m -CONFIG_VIDEO_SAA5246A=m -CONFIG_VIDEO_SAA5249=m -CONFIG_TUNER_3036=m -CONFIG_VIDEO_STRADIS=m -CONFIG_VIDEO_ZORAN=m -CONFIG_VIDEO_ZORAN_BUZ=m -CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_DC30=m -CONFIG_VIDEO_ZORAN_LML33=m -CONFIG_VIDEO_ZORAN_LML33R10=m -CONFIG_VIDEO_SAA7134=m -# CONFIG_VIDEO_SAA7134_DVB is not set -CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_DPC=m -CONFIG_VIDEO_HEXIUM_ORION=m -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_CX88=m -# CONFIG_VIDEO_CX88_DVB is not set -CONFIG_VIDEO_OVCAMCHIP=m - -# -# Radio Adapters -# -CONFIG_RADIO_GEMTEK_PCI=m -CONFIG_RADIO_MAXIRADIO=m -CONFIG_RADIO_MAESTRO=m - -# -# Digital Video Broadcasting Devices -# -CONFIG_DVB=y -CONFIG_DVB_CORE=m - -# -# Supported SAA7146 based PCI Adapters -# -CONFIG_DVB_AV7110=m -# CONFIG_DVB_AV7110_FIRMWARE is not set -CONFIG_DVB_AV7110_OSD=y -CONFIG_DVB_BUDGET=m -CONFIG_DVB_BUDGET_CI=m -CONFIG_DVB_BUDGET_AV=m -CONFIG_DVB_BUDGET_PATCH=m - -# -# Supported USB Adapters -# -CONFIG_DVB_TTUSB_BUDGET=m -CONFIG_DVB_TTUSB_DEC=m -CONFIG_DVB_DIBUSB=m -# CONFIG_DVB_DIBUSB_MISDESIGNED_DEVICES is not set -# CONFIG_DVB_DIBCOM_DEBUG is not set -CONFIG_DVB_CINERGYT2=m -# CONFIG_DVB_CINERGYT2_TUNING is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -CONFIG_DVB_B2C2_FLEXCOP=m -CONFIG_DVB_B2C2_FLEXCOP_PCI=m -CONFIG_DVB_B2C2_FLEXCOP_USB=m -# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set -CONFIG_DVB_B2C2_SKYSTAR=m - -# -# Supported BT878 Adapters -# -CONFIG_DVB_BT8XX=m - -# -# Supported DVB Frontends -# - -# -# Customise DVB Frontends -# - -# -# DVB-S (satellite) frontends -# -CONFIG_DVB_STV0299=m -CONFIG_DVB_CX24110=m -CONFIG_DVB_TDA8083=m -CONFIG_DVB_TDA80XX=m -CONFIG_DVB_MT312=m -CONFIG_DVB_VES1X93=m - -# -# DVB-T (terrestrial) frontends -# -CONFIG_DVB_SP8870=m -CONFIG_DVB_SP887X=m -CONFIG_DVB_CX22700=m -CONFIG_DVB_CX22702=m -CONFIG_DVB_L64781=m -CONFIG_DVB_TDA1004X=m -CONFIG_DVB_NXT6000=m -CONFIG_DVB_MT352=m -CONFIG_DVB_DIB3000MB=m -CONFIG_DVB_DIB3000MC=m - -# -# DVB-C (cable) frontends -# -CONFIG_DVB_ATMEL_AT76C651=m -CONFIG_DVB_VES1820=m -CONFIG_DVB_TDA10021=m -CONFIG_DVB_STV0297=m - -# -# ATSC (North American/Korean Terresterial DTV) frontends -# -CONFIG_DVB_NXT2002=m -CONFIG_DVB_OR51211=m -CONFIG_DVB_OR51132=m -CONFIG_VIDEO_SAA7146=m -CONFIG_VIDEO_SAA7146_VV=m -CONFIG_VIDEO_VIDEOBUF=m -CONFIG_VIDEO_TUNER=m -CONFIG_VIDEO_BUF=m -CONFIG_VIDEO_BTCX=m -CONFIG_VIDEO_IR=m -CONFIG_VIDEO_TVEEPROM=m - -# -# Graphics support -# -CONFIG_FB=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SOFT_CURSOR=y -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_MODE_HELPERS is not set -CONFIG_FB_TILEBLITTING=y -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_CT65550 is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_VGA16 is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -CONFIG_FB_MATROX=y -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -# CONFIG_FB_MATROX_I2C is not set -# CONFIG_FB_MATROX_MULTIHEAD is not set -# CONFIG_FB_RADEON_OLD is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y - -# -# Logo configuration -# -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_SPLIT_ISO is not set -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_UHCI_HCD is not set -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_BLUETOOTH_TTY is not set -# CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=y - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=y -CONFIG_USB_HIDINPUT=y -# CONFIG_HID_FF is not set -CONFIG_USB_HIDDEV=y -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set -# CONFIG_USB_W9968CF is not set -# CONFIG_USB_PWC is not set - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -CONFIG_USB_PEGASUS=y -# CONFIG_USB_RTL8150 is not set -CONFIG_USB_USBNET=y - -# -# USB Host-to-Host Cables -# -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_GENESYS=y -CONFIG_USB_NET1080=y -CONFIG_USB_PL2301=y -CONFIG_USB_KC2190=y - -# -# Intelligent USB Devices/Gadgets -# -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_ZAURUS=y -CONFIG_USB_CDCETHER=y - -# -# USB Network Adapters -# -CONFIG_USB_AX8817X=y -# CONFIG_USB_ZD1201 is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# -# CONFIG_USB_USS720 is not set - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_SISUSBVGA is not set -# CONFIG_USB_TEST is not set - -# -# USB ATM/DSL drivers -# -# CONFIG_USB_ATM is not set -# CONFIG_USB_SPEEDTOUCH is not set - -# -# USB Gadget Support -# -# CONFIG_USB_GADGET is not set - -# -# MMC/SD Card support -# -# CONFIG_MMC is not set - -# -# InfiniBand support -# -# CONFIG_INFINIBAND is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -# CONFIG_REISERFS_PROC_INFO is not set -# CONFIG_REISERFS_FS_XATTR is not set -CONFIG_JFS_FS=m -# CONFIG_JFS_POSIX_ACL is not set -# CONFIG_JFS_SECURITY is not set -# CONFIG_JFS_DEBUG is not set -# CONFIG_JFS_STATISTICS is not set - -# -# XFS support -# -# CONFIG_XFS_FS is not set -CONFIG_MINIX_FS=m -CONFIG_ROMFS_FS=m -CONFIG_QUOTA=y -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_DNOTIFY=y -CONFIG_AUTOFS_FS=m -CONFIG_AUTOFS4_FS=m - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=y -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_ZISOFS_FS=y -CONFIG_UDF_FS=y -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -CONFIG_NTFS_FS=m -# CONFIG_NTFS_DEBUG is not set -CONFIG_NTFS_RW=y - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_SYSFS=y -CONFIG_DEVFS_FS=y -# CONFIG_DEVFS_MOUNT is not set -# CONFIG_DEVFS_DEBUG is not set -# CONFIG_DEVPTS_FS_XATTR is not set -CONFIG_TMPFS=y -# CONFIG_TMPFS_XATTR is not set -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y - -# -# Miscellaneous filesystems -# -CONFIG_ADFS_FS=m -# CONFIG_ADFS_FS_RW is not set -CONFIG_AFFS_FS=m -CONFIG_HFS_FS=m -CONFIG_HFSPLUS_FS=m -CONFIG_BEFS_FS=m -# CONFIG_BEFS_DEBUG is not set -CONFIG_BFS_FS=m -CONFIG_EFS_FS=m -CONFIG_JFFS_FS=m -CONFIG_JFFS_FS_VERBOSE=0 -# CONFIG_JFFS_PROC_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_JFFS2_FS_NAND is not set -# CONFIG_JFFS2_FS_NOR_ECC is not set -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -CONFIG_CRAMFS=y -CONFIG_VXFS_FS=m -CONFIG_HPFS_FS=m -CONFIG_QNX4FS_FS=m -CONFIG_SYSV_FS=m -CONFIG_UFS_FS=m -# CONFIG_UFS_FS_WRITE is not set - -# -# Network File Systems -# -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -# CONFIG_NFSD_V3 is not set -CONFIG_NFSD_TCP=y -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -CONFIG_RPCSEC_GSS_SPKM3=m -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set -CONFIG_CIFS=m -# CONFIG_CIFS_STATS is not set -# CONFIG_CIFS_XATTR is not set -# CONFIG_CIFS_EXPERIMENTAL is not set -CONFIG_NCP_FS=m -# CONFIG_NCPFS_PACKET_SIGNING is not set -# CONFIG_NCPFS_IOCTL_LOCKING is not set -# CONFIG_NCPFS_STRONG is not set -# CONFIG_NCPFS_NFS_NS is not set -# CONFIG_NCPFS_OS2_NS is not set -# CONFIG_NCPFS_SMALLDOS is not set -# CONFIG_NCPFS_NLS is not set -# CONFIG_NCPFS_EXTRAS is not set -CONFIG_CODA_FS=m -# CONFIG_CODA_FS_OLD_API is not set -CONFIG_AFS_FS=m -CONFIG_RXRPC=m - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -CONFIG_MAC_PARTITION=y -CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -# CONFIG_LDM_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_EFI_PARTITION is not set - -# -# Native Language Support -# -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_737=m -CONFIG_NLS_CODEPAGE_775=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_CODEPAGE_852=m -CONFIG_NLS_CODEPAGE_855=m -CONFIG_NLS_CODEPAGE_857=m -CONFIG_NLS_CODEPAGE_860=m -CONFIG_NLS_CODEPAGE_861=m -CONFIG_NLS_CODEPAGE_862=m -CONFIG_NLS_CODEPAGE_863=m -CONFIG_NLS_CODEPAGE_864=m -CONFIG_NLS_CODEPAGE_865=m -CONFIG_NLS_CODEPAGE_866=m -CONFIG_NLS_CODEPAGE_869=m -CONFIG_NLS_CODEPAGE_936=m -CONFIG_NLS_CODEPAGE_950=m -CONFIG_NLS_CODEPAGE_932=m -CONFIG_NLS_CODEPAGE_949=m -CONFIG_NLS_CODEPAGE_874=m -CONFIG_NLS_ISO8859_8=m -CONFIG_NLS_CODEPAGE_1250=m -CONFIG_NLS_CODEPAGE_1251=m -CONFIG_NLS_ASCII=m -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_ISO8859_2=m -CONFIG_NLS_ISO8859_3=m -CONFIG_NLS_ISO8859_4=m -CONFIG_NLS_ISO8859_5=m -CONFIG_NLS_ISO8859_6=m -CONFIG_NLS_ISO8859_7=m -CONFIG_NLS_ISO8859_9=m -CONFIG_NLS_ISO8859_13=m -CONFIG_NLS_ISO8859_14=m -CONFIG_NLS_ISO8859_15=m -CONFIG_NLS_KOI8_R=m -CONFIG_NLS_KOI8_U=m -CONFIG_NLS_UTF8=m - -# -# IBM 40x options -# - -# -# Library routines -# -CONFIG_CRC_CCITT=m -CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=m -CONFIG_REED_SOLOMON=m -CONFIG_REED_SOLOMON_DEC16=y - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -# CONFIG_DEBUG_KERNEL is not set -CONFIG_LOG_BUF_SHIFT=14 -# CONFIG_SERIAL_TEXT_DEBUG is not set -CONFIG_PPC_OCP=y - -# -# Security options -# -# CONFIG_KEYS is not set -CONFIG_SECURITY=y -CONFIG_SECURITY_NETWORK=y -CONFIG_SECURITY_CAPABILITIES=m -CONFIG_SECURITY_ROOTPLUG=m -CONFIG_SECURITY_SECLVL=m -# CONFIG_SECURITY_SELINUX is not set - -# -# Cryptographic options -# -CONFIG_CRYPTO=y -CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_SHA1=m -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_TGR192 is not set -CONFIG_CRYPTO_DES=m -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_AES is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set -CONFIG_CRYPTO_ARC4=m -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set -CONFIG_CRYPTO_DEFLATE=m -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_TEST is not set - -# -# Hardware crypto devices -# diff --git a/packages/linux/linux-dht-walnut-2.6.12/iw_we18-5.diff b/packages/linux/linux-dht-walnut-2.6.12/iw_we18-5.diff deleted file mode 100644 index 85fcdd1224..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12/iw_we18-5.diff +++ /dev/null @@ -1,462 +0,0 @@ -diff -upr linux-2.6.11/include/linux/wireless.h linux-2.6.11-WE18/include/linux/wireless.h ---- linux-2.6.11/include/linux/wireless.h 2004-12-24 13:35:01.000000000 -0800 -+++ linux-2.6.11-WE18/include/linux/wireless.h 2005-03-12 09:53:02.000000000 -0800 -@@ -1,10 +1,10 @@ - /* - * This file define a set of standard wireless extensions - * -- * Version : 17 21.6.04 -+ * Version : 18 12.3.05 - * - * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> -- * Copyright (c) 1997-2004 Jean Tourrilhes, All Rights Reserved. -+ * Copyright (c) 1997-2005 Jean Tourrilhes, All Rights Reserved. - */ - - #ifndef _LINUX_WIRELESS_H -@@ -82,7 +82,7 @@ - * (there is some stuff that will be added in the future...) - * I just plan to increment with each new version. - */ --#define WIRELESS_EXT 17 -+#define WIRELESS_EXT 18 - - /* - * Changes : -@@ -182,6 +182,21 @@ - * - Document (struct iw_quality *)->updated, add new flags (INVALID) - * - Wireless Event capability in struct iw_range - * - Add support for relative TxPower (yick !) -+ * -+ * V17 to V18 (From Jouni Malinen <jkmaline@cc.hut.fi>) -+ * ---------- -+ * - Add support for WPA/WPA2 -+ * - Add extended encoding configuration (SIOCSIWENCODEEXT and -+ * SIOCGIWENCODEEXT) -+ * - Add SIOCSIWGENIE/SIOCGIWGENIE -+ * - Add SIOCSIWMLME -+ * - Add SIOCSIWPMKSA -+ * - Add struct iw_range bit field for supported encoding capabilities -+ * - Add optional scan request parameters for SIOCSIWSCAN -+ * - Add SIOCSIWAUTH/SIOCGIWAUTH for setting authentication and WPA -+ * related parameters (extensible up to 4096 parameter values) -+ * - Add wireless events: IWEVGENIE, IWEVMICHAELMICFAILURE, -+ * IWEVASSOCREQIE, IWEVASSOCRESPIE, IWEVPMKIDCAND - */ - - /**************************** CONSTANTS ****************************/ -@@ -256,6 +271,30 @@ - #define SIOCSIWPOWER 0x8B2C /* set Power Management settings */ - #define SIOCGIWPOWER 0x8B2D /* get Power Management settings */ - -+/* WPA : Generic IEEE 802.11 informatiom element (e.g., for WPA/RSN/WMM). -+ * This ioctl uses struct iw_point and data buffer that includes IE id and len -+ * fields. More than one IE may be included in the request. Setting the generic -+ * IE to empty buffer (len=0) removes the generic IE from the driver. Drivers -+ * are allowed to generate their own WPA/RSN IEs, but in these cases, drivers -+ * are required to report the used IE as a wireless event, e.g., when -+ * associating with an AP. */ -+#define SIOCSIWGENIE 0x8B30 /* set generic IE */ -+#define SIOCGIWGENIE 0x8B31 /* get generic IE */ -+ -+/* WPA : IEEE 802.11 MLME requests */ -+#define SIOCSIWMLME 0x8B16 /* request MLME operation; uses -+ * struct iw_mlme */ -+/* WPA : Authentication mode parameters */ -+#define SIOCSIWAUTH 0x8B32 /* set authentication mode params */ -+#define SIOCGIWAUTH 0x8B33 /* get authentication mode params */ -+ -+/* WPA : Extended version of encoding configuration */ -+#define SIOCSIWENCODEEXT 0x8B34 /* set encoding token & mode */ -+#define SIOCGIWENCODEEXT 0x8B35 /* get encoding token & mode */ -+ -+/* WPA2 : PMKSA cache management */ -+#define SIOCSIWPMKSA 0x8B36 /* PMKSA cache operation */ -+ - /* -------------------- DEV PRIVATE IOCTL LIST -------------------- */ - - /* These 32 ioctl are wireless device private, for 16 commands. -@@ -297,6 +336,34 @@ - #define IWEVCUSTOM 0x8C02 /* Driver specific ascii string */ - #define IWEVREGISTERED 0x8C03 /* Discovered a new node (AP mode) */ - #define IWEVEXPIRED 0x8C04 /* Expired a node (AP mode) */ -+#define IWEVGENIE 0x8C05 /* Generic IE (WPA, RSN, WMM, ..) -+ * (scan results); This includes id and -+ * length fields. One IWEVGENIE may -+ * contain more than one IE. Scan -+ * results may contain one or more -+ * IWEVGENIE events. */ -+#define IWEVMICHAELMICFAILURE 0x8C06 /* Michael MIC failure -+ * (struct iw_michaelmicfailure) -+ */ -+#define IWEVASSOCREQIE 0x8C07 /* IEs used in (Re)Association Request. -+ * The data includes id and length -+ * fields and may contain more than one -+ * IE. This event is required in -+ * Managed mode if the driver -+ * generates its own WPA/RSN IE. This -+ * should be sent just before -+ * IWEVREGISTERED event for the -+ * association. */ -+#define IWEVASSOCRESPIE 0x8C08 /* IEs used in (Re)Association -+ * Response. The data includes id and -+ * length fields and may contain more -+ * than one IE. This may be sent -+ * between IWEVASSOCREQIE and -+ * IWEVREGISTERED events for the -+ * association. */ -+#define IWEVPMKIDCAND 0x8C09 /* PMKID candidate for RSN -+ * pre-authentication -+ * (struct iw_pmkid_cand) */ - - #define IWEVFIRST 0x8C00 - -@@ -432,12 +499,94 @@ - #define IW_SCAN_THIS_MODE 0x0020 /* Scan only this Mode */ - #define IW_SCAN_ALL_RATE 0x0040 /* Scan all Bit-Rates */ - #define IW_SCAN_THIS_RATE 0x0080 /* Scan only this Bit-Rate */ -+/* struct iw_scan_req scan_type */ -+#define IW_SCAN_TYPE_ACTIVE 0 -+#define IW_SCAN_TYPE_PASSIVE 1 - /* Maximum size of returned data */ - #define IW_SCAN_MAX_DATA 4096 /* In bytes */ - - /* Max number of char in custom event - use multiple of them if needed */ - #define IW_CUSTOM_MAX 256 /* In bytes */ - -+/* Generic information element */ -+#define IW_GENERIC_IE_MAX 1024 -+ -+/* MLME requests (SIOCSIWMLME / struct iw_mlme) */ -+#define IW_MLME_DEAUTH 0 -+#define IW_MLME_DISASSOC 1 -+ -+/* SIOCSIWAUTH/SIOCGIWAUTH struct iw_param flags */ -+#define IW_AUTH_INDEX 0x0FFF -+#define IW_AUTH_FLAGS 0xF000 -+/* SIOCSIWAUTH/SIOCGIWAUTH parameters (0 .. 4095) -+ * (IW_AUTH_INDEX mask in struct iw_param flags; this is the index of the -+ * parameter that is being set/get to; value will be read/written to -+ * struct iw_param value field) */ -+#define IW_AUTH_WPA_VERSION 0 -+#define IW_AUTH_CIPHER_PAIRWISE 1 -+#define IW_AUTH_CIPHER_GROUP 2 -+#define IW_AUTH_KEY_MGMT 3 -+#define IW_AUTH_TKIP_COUNTERMEASURES 4 -+#define IW_AUTH_DROP_UNENCRYPTED 5 -+#define IW_AUTH_80211_AUTH_ALG 6 -+#define IW_AUTH_WPA_ENABLED 7 -+#define IW_AUTH_RX_UNENCRYPTED_EAPOL 8 -+#define IW_AUTH_ROAMING_CONTROL 9 -+#define IW_AUTH_PRIVACY_INVOKED 10 -+ -+/* IW_AUTH_WPA_VERSION values (bit field) */ -+#define IW_AUTH_WPA_VERSION_DISABLED 0x00000001 -+#define IW_AUTH_WPA_VERSION_WPA 0x00000002 -+#define IW_AUTH_WPA_VERSION_WPA2 0x00000004 -+ -+/* IW_AUTH_PAIRWISE_CIPHER and IW_AUTH_GROUP_CIPHER values (bit field) */ -+#define IW_AUTH_CIPHER_NONE 0x00000001 -+#define IW_AUTH_CIPHER_WEP40 0x00000002 -+#define IW_AUTH_CIPHER_TKIP 0x00000004 -+#define IW_AUTH_CIPHER_CCMP 0x00000008 -+#define IW_AUTH_CIPHER_WEP104 0x00000010 -+ -+/* IW_AUTH_KEY_MGMT values (bit field) */ -+#define IW_AUTH_KEY_MGMT_802_1X 1 -+#define IW_AUTH_KEY_MGMT_PSK 2 -+ -+/* IW_AUTH_80211_AUTH_ALG values (bit field) */ -+#define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001 -+#define IW_AUTH_ALG_SHARED_KEY 0x00000002 -+#define IW_AUTH_ALG_LEAP 0x00000004 -+ -+/* IW_AUTH_ROAMING_CONTROL values */ -+#define IW_AUTH_ROAMING_ENABLE 0 /* driver/firmware based roaming */ -+#define IW_AUTH_ROAMING_DISABLE 1 /* user space program used for roaming -+ * control */ -+ -+/* SIOCSIWENCODEEXT definitions */ -+#define IW_ENCODE_SEQ_MAX_SIZE 8 -+/* struct iw_encode_ext ->alg */ -+#define IW_ENCODE_ALG_NONE 0 -+#define IW_ENCODE_ALG_WEP 1 -+#define IW_ENCODE_ALG_TKIP 2 -+#define IW_ENCODE_ALG_CCMP 3 -+/* struct iw_encode_ext ->ext_flags */ -+#define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001 -+#define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002 -+#define IW_ENCODE_EXT_GROUP_KEY 0x00000004 -+#define IW_ENCODE_EXT_SET_TX_KEY 0x00000008 -+ -+/* IWEVMICHAELMICFAILURE : struct iw_michaelmicfailure ->flags */ -+#define IW_MICFAILURE_KEY_ID 0x00000003 /* Key ID 0..3 */ -+#define IW_MICFAILURE_GROUP 0x00000004 -+#define IW_MICFAILURE_PAIRWISE 0x00000008 -+#define IW_MICFAILURE_STAKEY 0x00000010 -+#define IW_MICFAILURE_COUNT 0x00000060 /* 1 or 2 (0 = count not supported) -+ */ -+ -+/* Bit field values for enc_capa in struct iw_range */ -+#define IW_ENC_CAPA_WPA 0x00000001 -+#define IW_ENC_CAPA_WPA2 0x00000002 -+#define IW_ENC_CAPA_CIPHER_TKIP 0x00000004 -+#define IW_ENC_CAPA_CIPHER_CCMP 0x00000008 -+ - /* Event capability macros - in (struct iw_range *)->event_capa - * Because we have more than 32 possible events, we use an array of - * 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */ -@@ -546,6 +695,132 @@ struct iw_thrspy - struct iw_quality high; /* High threshold */ - }; - -+/* -+ * Optional data for scan request -+ * -+ * Note: these optional parameters are controlling parameters for the -+ * scanning behavior, these do not apply to getting scan results -+ * (SIOCGIWSCAN). Drivers are expected to keep a local BSS table and -+ * provide a merged results with all BSSes even if the previous scan -+ * request limited scanning to a subset, e.g., by specifying an SSID. -+ * Especially, scan results are required to include an entry for the -+ * current BSS if the driver is in Managed mode and associated with an AP. -+ */ -+struct iw_scan_req -+{ -+ __u8 scan_type; /* IW_SCAN_TYPE_{ACTIVE,PASSIVE} */ -+ __u8 essid_len; -+ __u8 num_channels; /* num entries in channel_list; -+ * 0 = scan all allowed channels */ -+ __u8 flags; /* reserved as padding; use zero, this may -+ * be used in the future for adding flags -+ * to request different scan behavior */ -+ struct sockaddr bssid; /* ff:ff:ff:ff:ff:ff for broadcast BSSID or -+ * individual address of a specific BSS */ -+ -+ /* -+ * Use this ESSID if IW_SCAN_THIS_ESSID flag is used instead of using -+ * the current ESSID. This allows scan requests for specific ESSID -+ * without having to change the current ESSID and potentially breaking -+ * the current association. -+ */ -+ __u8 essid[IW_ESSID_MAX_SIZE]; -+ -+ /* -+ * Optional parameters for changing the default scanning behavior. -+ * These are based on the MLME-SCAN.request from IEEE Std 802.11. -+ * TU is 1.024 ms. If these are set to 0, driver is expected to use -+ * reasonable default values. min_channel_time defines the time that -+ * will be used to wait for the first reply on each channel. If no -+ * replies are received, next channel will be scanned after this. If -+ * replies are received, total time waited on the channel is defined by -+ * max_channel_time. -+ */ -+ __u32 min_channel_time; /* in TU */ -+ __u32 max_channel_time; /* in TU */ -+ -+ struct iw_freq channel_list[IW_MAX_FREQUENCIES]; -+}; -+ -+/* ------------------------- WPA SUPPORT ------------------------- */ -+ -+/* -+ * Extended data structure for get/set encoding (this is used with -+ * SIOCSIWENCODEEXT/SIOCGIWENCODEEXT. struct iw_point and IW_ENCODE_* -+ * flags are used in the same way as with SIOCSIWENCODE/SIOCGIWENCODE and -+ * only the data contents changes (key data -> this structure, including -+ * key data). -+ * -+ * If the new key is the first group key, it will be set as the default -+ * TX key. Otherwise, default TX key index is only changed if -+ * IW_ENCODE_EXT_SET_TX_KEY flag is set. -+ * -+ * Key will be changed with SIOCSIWENCODEEXT in all cases except for -+ * special "change TX key index" operation which is indicated by setting -+ * key_len = 0 and ext_flags |= IW_ENCODE_EXT_SET_TX_KEY. -+ * -+ * tx_seq/rx_seq are only used when respective -+ * IW_ENCODE_EXT_{TX,RX}_SEQ_VALID flag is set in ext_flags. Normal -+ * TKIP/CCMP operation is to set RX seq with SIOCSIWENCODEEXT and start -+ * TX seq from zero whenever key is changed. SIOCGIWENCODEEXT is normally -+ * used only by an Authenticator (AP or an IBSS station) to get the -+ * current TX sequence number. Using TX_SEQ_VALID for SIOCSIWENCODEEXT and -+ * RX_SEQ_VALID for SIOCGIWENCODEEXT are optional, but can be useful for -+ * debugging/testing. -+ */ -+struct iw_encode_ext -+{ -+ __u32 ext_flags; /* IW_ENCODE_EXT_* */ -+ __u8 tx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -+ __u8 rx_seq[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -+ struct sockaddr addr; /* ff:ff:ff:ff:ff:ff for broadcast/multicast -+ * (group) keys or unicast address for -+ * individual keys */ -+ __u16 alg; /* IW_ENCODE_ALG_* */ -+ __u16 key_len; -+ __u8 key[0]; -+}; -+ -+/* SIOCSIWMLME data */ -+struct iw_mlme -+{ -+ __u16 cmd; /* IW_MLME_* */ -+ __u16 reason_code; -+ struct sockaddr addr; -+}; -+ -+/* SIOCSIWPMKSA data */ -+#define IW_PMKSA_ADD 1 -+#define IW_PMKSA_REMOVE 2 -+#define IW_PMKSA_FLUSH 3 -+ -+#define IW_PMKID_LEN 16 -+ -+struct iw_pmksa -+{ -+ __u32 cmd; /* IW_PMKSA_* */ -+ struct sockaddr bssid; -+ __u8 pmkid[IW_PMKID_LEN]; -+}; -+ -+/* IWEVMICHAELMICFAILURE data */ -+struct iw_michaelmicfailure -+{ -+ __u32 flags; -+ struct sockaddr src_addr; -+ __u8 tsc[IW_ENCODE_SEQ_MAX_SIZE]; /* LSB first */ -+}; -+ -+/* IWEVPMKIDCAND data */ -+#define IW_PMKID_CAND_PREAUTH 0x00000001 /* RNS pre-authentication enabled */ -+struct iw_pmkid_cand -+{ -+ __u32 flags; /* IW_PMKID_CAND_* */ -+ __u32 index; /* the smaller the index, the higher the -+ * priority */ -+ struct sockaddr bssid; -+}; -+ - /* ------------------------ WIRELESS STATS ------------------------ */ - /* - * Wireless statistics (used for /proc/net/wireless) -@@ -725,6 +1000,8 @@ struct iw_range - struct iw_freq freq[IW_MAX_FREQUENCIES]; /* list */ - /* Note : this frequency list doesn't need to fit channel numbers, - * because each entry contain its channel index */ -+ -+ __u32 enc_capa; /* IW_ENC_CAPA_* bit field */ - }; - - /* -diff -upr linux-2.6.11/net/core/wireless.c linux-2.6.11-WE18/net/core/wireless.c ---- linux-2.6.11/net/core/wireless.c 2005-03-04 15:55:29.000000000 -0800 -+++ linux-2.6.11-WE18/net/core/wireless.c 2005-03-12 09:11:24.000000000 -0800 -@@ -2,7 +2,7 @@ - * This file implement the Wireless Extensions APIs. - * - * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> -- * Copyright (c) 1997-2004 Jean Tourrilhes, All Rights Reserved. -+ * Copyright (c) 1997-2005 Jean Tourrilhes, All Rights Reserved. - * - * (As all part of the Linux kernel, this file is GPL) - */ -@@ -187,6 +187,12 @@ static const struct iw_ioctl_description - .header_type = IW_HEADER_TYPE_ADDR, - .flags = IW_DESCR_FLAG_DUMP, - }, -+ [SIOCSIWMLME - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_mlme), -+ .max_tokens = sizeof(struct iw_mlme), -+ }, - [SIOCGIWAPLIST - SIOCIWFIRST] = { - .header_type = IW_HEADER_TYPE_POINT, - .token_size = sizeof(struct sockaddr) + -@@ -195,7 +201,10 @@ static const struct iw_ioctl_description - .flags = IW_DESCR_FLAG_NOMAX, - }, - [SIOCSIWSCAN - SIOCIWFIRST] = { -- .header_type = IW_HEADER_TYPE_PARAM, -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = 0, -+ .max_tokens = sizeof(struct iw_scan_req), - }, - [SIOCGIWSCAN - SIOCIWFIRST] = { - .header_type = IW_HEADER_TYPE_POINT, -@@ -273,6 +282,42 @@ static const struct iw_ioctl_description - [SIOCGIWPOWER - SIOCIWFIRST] = { - .header_type = IW_HEADER_TYPE_PARAM, - }, -+ [SIOCSIWGENIE - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [SIOCGIWGENIE - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [SIOCSIWAUTH - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_PARAM, -+ }, -+ [SIOCGIWAUTH - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_PARAM, -+ }, -+ [SIOCSIWENCODEEXT - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_encode_ext), -+ .max_tokens = sizeof(struct iw_encode_ext) + -+ IW_ENCODING_TOKEN_MAX, -+ }, -+ [SIOCGIWENCODEEXT - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_encode_ext), -+ .max_tokens = sizeof(struct iw_encode_ext) + -+ IW_ENCODING_TOKEN_MAX, -+ }, -+ [SIOCSIWPMKSA - SIOCIWFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .min_tokens = sizeof(struct iw_pmksa), -+ .max_tokens = sizeof(struct iw_pmksa), -+ }, - }; - static const int standard_ioctl_num = (sizeof(standard_ioctl) / - sizeof(struct iw_ioctl_description)); -@@ -299,6 +344,31 @@ static const struct iw_ioctl_description - [IWEVEXPIRED - IWEVFIRST] = { - .header_type = IW_HEADER_TYPE_ADDR, - }, -+ [IWEVGENIE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [IWEVMICHAELMICFAILURE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = sizeof(struct iw_michaelmicfailure), -+ }, -+ [IWEVASSOCREQIE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [IWEVASSOCRESPIE - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = IW_GENERIC_IE_MAX, -+ }, -+ [IWEVPMKIDCAND - IWEVFIRST] = { -+ .header_type = IW_HEADER_TYPE_POINT, -+ .token_size = 1, -+ .max_tokens = sizeof(struct iw_pmkid_cand), -+ }, - }; - static const int standard_event_num = (sizeof(standard_event) / - sizeof(struct iw_ioctl_description)); diff --git a/packages/linux/linux-dht-walnut-2.6.12/linux-2.6.12-mppe-mppc-1.3.patch b/packages/linux/linux-dht-walnut-2.6.12/linux-2.6.12-mppe-mppc-1.3.patch deleted file mode 100644 index aa430252c7..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12/linux-2.6.12-mppe-mppc-1.3.patch +++ /dev/null @@ -1,1559 +0,0 @@ -diff -ruN linux-2.6.12.orig/drivers/net/Kconfig linux-2.6.12/drivers/net/Kconfig ---- linux-2.6.12.orig/drivers/net/Kconfig 2005-06-28 19:57:16.000000000 +0200 -+++ linux-2.6.12/drivers/net/Kconfig 2005-06-28 20:07:01.000000000 +0200 -@@ -2417,6 +2417,32 @@ - module; it is called bsd_comp and will show up in the directory - modules once you have said "make modules". If unsure, say N. - -+config PPP_MPPE_MPPC -+ tristate "Microsoft PPP compression/encryption (MPPC/MPPE)" -+ depends on PPP -+ select CRYPTO_SHA1 -+ select CRYPTO_ARC4 -+ ---help--- -+ Support for the Microsoft Point-To-Point Compression (RFC2118) and -+ Microsoft Point-To-Point Encryption (RFC3078). These protocols are -+ supported by Microsoft Windows and wide range of "hardware" access -+ servers. MPPE is common protocol in Virtual Private Networks. According -+ to RFC3078, MPPE supports 40, 56 and 128-bit key lengths. Depending on -+ PPP daemon configuration on both ends of the link, following scenarios -+ are possible: -+ - only compression (MPPC) is used, -+ - only encryption (MPPE) is used, -+ - compression and encryption (MPPC+MPPE) are used. -+ -+ Please note that Hi/Fn (http://www.hifn.com) holds patent on MPPC so -+ you should check if this patent is valid in your country in order to -+ avoid legal problems. -+ -+ For more information please visit http://free.polbox.pl/h/hs001 -+ -+ To compile this driver as a module, choose M here. The module will -+ be called ppp_mppe_mppc.ko. -+ - config PPPOE - tristate "PPP over Ethernet (EXPERIMENTAL)" - depends on EXPERIMENTAL && PPP -diff -ruN linux-2.6.12.orig/drivers/net/Makefile linux-2.6.12/drivers/net/Makefile ---- linux-2.6.12.orig/drivers/net/Makefile 2005-06-28 19:57:16.000000000 +0200 -+++ linux-2.6.12/drivers/net/Makefile 2005-06-28 20:07:01.000000000 +0200 -@@ -105,6 +105,7 @@ - obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o - obj-$(CONFIG_PPP_DEFLATE) += ppp_deflate.o - obj-$(CONFIG_PPP_BSDCOMP) += bsd_comp.o -+obj-$(CONFIG_PPP_MPPE_MPPC) += ppp_mppe_mppc.o - obj-$(CONFIG_PPPOE) += pppox.o pppoe.o - - obj-$(CONFIG_SLIP) += slip.o -diff -ruN linux-2.6.12.orig/drivers/net/ppp_generic.c linux-2.6.12/drivers/net/ppp_generic.c ---- linux-2.6.12.orig/drivers/net/ppp_generic.c 2005-06-28 19:57:20.000000000 +0200 -+++ linux-2.6.12/drivers/net/ppp_generic.c 2005-06-28 20:07:01.000000000 +0200 -@@ -19,7 +19,7 @@ - * PPP driver, written by Michael Callahan and Al Longyear, and - * subsequently hacked by Paul Mackerras. - * -- * ==FILEVERSION 20041108== -+ * ==FILEVERSION 20050110== - */ - - #include <linux/config.h> -@@ -105,6 +105,7 @@ - spinlock_t rlock; /* lock for receive side 58 */ - spinlock_t wlock; /* lock for transmit side 5c */ - int mru; /* max receive unit 60 */ -+ int mru_alloc; /* MAX(1500,MRU) for dev_alloc_skb() */ - unsigned int flags; /* control bits 64 */ - unsigned int xstate; /* transmit state bits 68 */ - unsigned int rstate; /* receive state bits 6c */ -@@ -632,7 +633,9 @@ - case PPPIOCSMRU: - if (get_user(val, p)) - break; -- ppp->mru = val; -+ ppp->mru_alloc = ppp->mru = val; -+ if (ppp->mru_alloc < PPP_MRU) -+ ppp->mru_alloc = PPP_MRU; /* increase for broken peers */ - err = 0; - break; - -@@ -1107,14 +1110,37 @@ - case PPP_CCP: - /* peek at outbound CCP frames */ - ppp_ccp_peek(ppp, skb, 0); -+ /* -+ * When LZS or MPPE/MPPC has been negotiated we don't send -+ * CCP_RESETACK after receiving CCP_RESETREQ; in fact pppd -+ * sends such a packet but we silently discard it here -+ */ -+ if (CCP_CODE(skb->data+2) == CCP_RESETACK -+ && (ppp->xcomp->compress_proto == CI_MPPE -+ || ppp->xcomp->compress_proto == CI_LZS)) { -+ --ppp->stats.tx_packets; -+ ppp->stats.tx_bytes -= skb->len - 2; -+ kfree_skb(skb); -+ return; -+ } - break; - } - - /* try to do packet compression */ - if ((ppp->xstate & SC_COMP_RUN) && ppp->xc_state != 0 - && proto != PPP_LCP && proto != PPP_CCP) { -- new_skb = alloc_skb(ppp->dev->mtu + ppp->dev->hard_header_len, -- GFP_ATOMIC); -+ int comp_ovhd = 0; -+ /* -+ * because of possible data expansion when MPPC or LZS -+ * is used, allocate compressor's buffer 12.5% bigger -+ * than MTU -+ */ -+ if (ppp->xcomp->compress_proto == CI_MPPE) -+ comp_ovhd = ((ppp->dev->mtu * 9) / 8) + 1 + MPPE_OVHD; -+ else if (ppp->xcomp->compress_proto == CI_LZS) -+ comp_ovhd = ((ppp->dev->mtu * 9) / 8) + 1 + LZS_OVHD; -+ new_skb = alloc_skb(ppp->dev->mtu + ppp->dev->hard_header_len -+ + comp_ovhd, GFP_ATOMIC); - if (new_skb == 0) { - printk(KERN_ERR "PPP: no memory (comp pkt)\n"); - goto drop; -@@ -1132,9 +1158,21 @@ - skb = new_skb; - skb_put(skb, len); - skb_pull(skb, 2); /* pull off A/C bytes */ -- } else { -+ } else if (len == 0) { - /* didn't compress, or CCP not up yet */ - kfree_skb(new_skb); -+ } else { -+ /* -+ * (len < 0) -+ * MPPE requires that we do not send unencrypted -+ * frames. The compressor will return -1 if we -+ * should drop the frame. We cannot simply test -+ * the compress_proto because MPPE and MPPC share -+ * the same number. -+ */ -+ printk(KERN_ERR "ppp: compressor dropped pkt\n"); -+ kfree_skb(new_skb); -+ goto drop; - } - } - -@@ -1640,14 +1678,15 @@ - goto err; - - if (proto == PPP_COMP) { -- ns = dev_alloc_skb(ppp->mru + PPP_HDRLEN); -+ ns = dev_alloc_skb(ppp->mru_alloc + PPP_HDRLEN); - if (ns == 0) { - printk(KERN_ERR "ppp_decompress_frame: no memory\n"); - goto err; - } - /* the decompressor still expects the A/C bytes in the hdr */ - len = ppp->rcomp->decompress(ppp->rc_state, skb->data - 2, -- skb->len + 2, ns->data, ppp->mru + PPP_HDRLEN); -+ skb->len + 2, ns->data, -+ ppp->mru_alloc + PPP_HDRLEN); - if (len < 0) { - /* Pass the compressed frame to pppd as an - error indication. */ -@@ -1673,7 +1712,14 @@ - return skb; - - err: -- ppp->rstate |= SC_DC_ERROR; -+ if (ppp->rcomp->compress_proto != CI_MPPE -+ && ppp->rcomp->compress_proto != CI_LZS) { -+ /* -+ * If decompression protocol isn't MPPE/MPPC or LZS, we set -+ * SC_DC_ERROR flag and wait for CCP_RESETACK -+ */ -+ ppp->rstate |= SC_DC_ERROR; -+ } - ppp_receive_error(ppp); - return skb; - } -@@ -2349,6 +2395,7 @@ - memset(ppp, 0, sizeof(struct ppp)); - - ppp->mru = PPP_MRU; -+ ppp->mru_alloc = PPP_MRU; - init_ppp_file(&ppp->file, INTERFACE); - ppp->file.hdrlen = PPP_HDRLEN - 2; /* don't count proto bytes */ - for (i = 0; i < NUM_NP; ++i) -diff -ruN linux-2.6.12.orig/drivers/net/ppp_mppe_mppc.c linux-2.6.12/drivers/net/ppp_mppe_mppc.c ---- linux-2.6.12.orig/drivers/net/ppp_mppe_mppc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.12/drivers/net/ppp_mppe_mppc.c 2005-06-28 20:07:01.000000000 +0200 -@@ -0,0 +1,1299 @@ -+/* -+ * ppp_mppe_mppc.c - MPPC/MPPE "compressor/decompressor" module. -+ * -+ * Copyright (c) 1994 rpd Magosnyi <mag@bunuel.tii.matav.hu> -+ * Copyright (c) 1999 Tim Hockin, Cobalt Networks Inc. <thockin@cobaltnet.com> -+ * Copyright (c) 2002-2004 Jan Dubiec <jdx@slackware.pl> -+ * -+ * Permission to use, copy, modify, and distribute this software and its -+ * documentation is hereby granted, provided that the above copyright -+ * notice appears in all copies. This software is provided without any -+ * warranty, express or implied. -+ * -+ * The code is based on MPPE kernel module written by rpd Magosnyi and -+ * Tim Hockin which can be found on http://planetmirror.com/pub/mppe/. -+ * I have added MPPC and 56 bit session keys support in MPPE. -+ * -+ * WARNING! Although this is open source code, its usage in some countries -+ * (in particular in the USA) may violate Stac Inc. patent for MPPC. -+ * -+ * ==FILEVERSION 20041123== -+ * -+ */ -+ -+#include <linux/init.h> -+#include <linux/module.h> -+#include <linux/mm.h> -+#include <linux/slab.h> -+#include <asm/scatterlist.h> -+#include <linux/vmalloc.h> -+#include <linux/crypto.h> -+ -+#include <linux/ppp_defs.h> -+#include <linux/ppp-comp.h> -+ -+/* -+ * State for a mppc/mppe "(de)compressor". -+ */ -+struct ppp_mppe_state { -+ struct crypto_tfm *arc4_tfm; -+ struct crypto_tfm *sha1_tfm; -+ u8 *sha1_digest; -+ u8 master_key[MPPE_MAX_KEY_LEN]; -+ u8 session_key[MPPE_MAX_KEY_LEN]; -+ u8 mppc; /* do we use compression (MPPC)? */ -+ u8 mppe; /* do we use encryption (MPPE)? */ -+ u8 keylen; /* key length in bytes */ -+ u8 bitkeylen; /* key length in bits */ -+ u16 ccount; /* coherency counter */ -+ u16 bits; /* MPPC/MPPE control bits */ -+ u8 stateless; /* do we use stateless mode? */ -+ u8 nextflushed; /* set A bit in the next outgoing packet; -+ used only by compressor*/ -+ u8 flushexpected; /* drop packets until A bit is received; -+ used only by decompressor*/ -+ u8 *hist; /* MPPC history */ -+ u16 *hash; /* Hash table; used only by compressor */ -+ u16 histptr; /* history "cursor" */ -+ int unit; -+ int debug; -+ int mru; -+ struct compstat stats; -+}; -+ -+#define MPPE_HIST_LEN 8192 /* MPPC history size */ -+#define MPPE_MAX_CCOUNT 0x0FFF /* max. coherency counter value */ -+ -+#define MPPE_BIT_FLUSHED 0x80 /* bit A */ -+#define MPPE_BIT_RESET 0x40 /* bit B */ -+#define MPPE_BIT_COMP 0x20 /* bit C */ -+#define MPPE_BIT_ENCRYPTED 0x10 /* bit D */ -+ -+#define MPPE_SALT0 0xD1 /* values used in MPPE key derivation */ -+#define MPPE_SALT1 0x26 /* according to RFC3079 */ -+#define MPPE_SALT2 0x9E -+ -+#define MPPE_CCOUNT(x) ((((x)[4] & 0x0f) << 8) + (x)[5]) -+#define MPPE_BITS(x) ((x)[4] & 0xf0) -+#define MPPE_CTRLHI(x) ((((x)->ccount & 0xf00)>>8)|((x)->bits)) -+#define MPPE_CTRLLO(x) ((x)->ccount & 0xff) -+ -+/* -+ * Kernel Crypto API needs its arguments to be in kmalloc'd memory, not in the -+ * module static data area. That means sha_pad needs to be kmalloc'd. It is done -+ * in mppe_module_init(). This has been pointed out on 30th July 2004 by Oleg -+ * Makarenko on pptpclient-devel mailing list. -+ */ -+#define SHA1_PAD_SIZE 40 -+struct sha_pad { -+ unsigned char sha_pad1[SHA1_PAD_SIZE]; -+ unsigned char sha_pad2[SHA1_PAD_SIZE]; -+}; -+static struct sha_pad *sha_pad; -+ -+static inline void -+setup_sg(struct scatterlist *sg, const void *address, unsigned int length) -+{ -+ sg[0].page = virt_to_page(address); -+ sg[0].offset = offset_in_page(address); -+ sg[0].length = length; -+} -+ -+static inline void -+arc4_setkey(struct ppp_mppe_state *state, const unsigned char *key, -+ const unsigned int keylen) -+{ -+ crypto_cipher_setkey(state->arc4_tfm, key, keylen); -+} -+ -+static inline void -+arc4_encrypt(struct ppp_mppe_state *state, const unsigned char *in, -+ const unsigned int len, unsigned char *out) -+{ -+ struct scatterlist sgin[4], sgout[4]; -+ -+ setup_sg(sgin, in, len); -+ setup_sg(sgout, out, len); -+ crypto_cipher_encrypt(state->arc4_tfm, sgout, sgin, len); -+} -+ -+#define arc4_decrypt arc4_encrypt -+ -+/* -+ * Key Derivation, from RFC 3078, RFC 3079. -+ * Equivalent to Get_Key() for MS-CHAP as described in RFC 3079. -+ */ -+static void -+get_new_key_from_sha(struct ppp_mppe_state *state, unsigned char *interim_key) -+{ -+ struct scatterlist sg[4]; -+ -+ setup_sg(&sg[0], state->master_key, state->keylen); -+ setup_sg(&sg[1], sha_pad->sha_pad1, sizeof(sha_pad->sha_pad1)); -+ setup_sg(&sg[2], state->session_key, state->keylen); -+ setup_sg(&sg[3], sha_pad->sha_pad2, sizeof(sha_pad->sha_pad2)); -+ -+ crypto_digest_digest (state->sha1_tfm, sg, 4, state->sha1_digest); -+ -+ memcpy(interim_key, state->sha1_digest, state->keylen); -+} -+ -+static void -+mppe_change_key(struct ppp_mppe_state *state, int initialize) -+{ -+ unsigned char interim_key[MPPE_MAX_KEY_LEN]; -+ -+ get_new_key_from_sha(state, interim_key); -+ if (initialize) { -+ memcpy(state->session_key, interim_key, state->keylen); -+ } else { -+ arc4_setkey(state, interim_key, state->keylen); -+ arc4_encrypt(state, interim_key, state->keylen, state->session_key); -+ } -+ if (state->keylen == 8) { -+ if (state->bitkeylen == 40) { -+ state->session_key[0] = MPPE_SALT0; -+ state->session_key[1] = MPPE_SALT1; -+ state->session_key[2] = MPPE_SALT2; -+ } else { -+ state->session_key[0] = MPPE_SALT0; -+ } -+ } -+ arc4_setkey(state, state->session_key, state->keylen); -+} -+ -+/* increase 12-bit coherency counter */ -+static inline void -+mppe_increase_ccount(struct ppp_mppe_state *state) -+{ -+ state->ccount = (state->ccount + 1) & MPPE_MAX_CCOUNT; -+ if (state->mppe) { -+ if (state->stateless) { -+ mppe_change_key(state, 0); -+ state->nextflushed = 1; -+ } else { -+ if ((state->ccount & 0xff) == 0xff) { -+ mppe_change_key(state, 0); -+ } -+ } -+ } -+} -+ -+/* allocate space for a MPPE/MPPC (de)compressor. */ -+/* comp != 0 -> init compressor */ -+/* comp = 0 -> init decompressor */ -+static void * -+mppe_alloc(unsigned char *options, int opt_len, int comp) -+{ -+ struct ppp_mppe_state *state; -+ unsigned int digestsize; -+ u8* fname; -+ -+ fname = comp ? "mppe_comp_alloc" : "mppe_decomp_alloc"; -+ -+ /* -+ * Hack warning - additionally to the standard MPPC/MPPE configuration -+ * options, pppd passes to the (de)copressor 8 or 16 byte session key. -+ * Therefore options[1] contains MPPC/MPPE configuration option length -+ * (CILEN_MPPE = 6), but the real options length, depending on the key -+ * length, is 6+8 or 6+16. -+ */ -+ if (opt_len < CILEN_MPPE) { -+ printk(KERN_WARNING "%s: wrong options length: %u\n", fname, opt_len); -+ return NULL; -+ } -+ -+ if (options[0] != CI_MPPE || options[1] != CILEN_MPPE || -+ (options[2] & ~MPPE_STATELESS) != 0 || -+ options[3] != 0 || options[4] != 0 || -+ (options[5] & ~(MPPE_128BIT|MPPE_56BIT|MPPE_40BIT|MPPE_MPPC)) != 0 || -+ (options[5] & (MPPE_128BIT|MPPE_56BIT|MPPE_40BIT|MPPE_MPPC)) == 0) { -+ printk(KERN_WARNING "%s: options rejected: o[0]=%02x, o[1]=%02x, " -+ "o[2]=%02x, o[3]=%02x, o[4]=%02x, o[5]=%02x\n", fname, options[0], -+ options[1], options[2], options[3], options[4], options[5]); -+ return NULL; -+ } -+ -+ state = (struct ppp_mppe_state *)kmalloc(sizeof(*state), GFP_KERNEL); -+ if (state == NULL) { -+ printk(KERN_ERR "%s: cannot allocate space for %scompressor\n", fname, -+ comp ? "" : "de"); -+ return NULL; -+ } -+ memset(state, 0, sizeof(struct ppp_mppe_state)); -+ -+ state->mppc = options[5] & MPPE_MPPC; /* Do we use MPPC? */ -+ state->mppe = options[5] & (MPPE_128BIT | MPPE_56BIT | -+ MPPE_40BIT); /* Do we use MPPE? */ -+ -+ if (state->mppc) { -+ /* allocate MPPC history */ -+ state->hist = (u8*)vmalloc(2*MPPE_HIST_LEN*sizeof(u8)); -+ if (state->hist == NULL) { -+ kfree(state); -+ printk(KERN_ERR "%s: cannot allocate space for MPPC history\n", -+ fname); -+ return NULL; -+ } -+ -+ /* allocate hashtable for MPPC compressor */ -+ if (comp) { -+ state->hash = (u16*)vmalloc(MPPE_HIST_LEN*sizeof(u16)); -+ if (state->hash == NULL) { -+ vfree(state->hist); -+ kfree(state); -+ printk(KERN_ERR "%s: cannot allocate space for MPPC history\n", -+ fname); -+ return NULL; -+ } -+ } -+ } -+ -+ if (state->mppe) { /* specific for MPPE */ -+ /* Load ARC4 algorithm */ -+ state->arc4_tfm = crypto_alloc_tfm("arc4", 0); -+ if (state->arc4_tfm == NULL) { -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: cannot load ARC4 module\n", fname); -+ return NULL; -+ } -+ -+ /* Load SHA1 algorithm */ -+ state->sha1_tfm = crypto_alloc_tfm("sha1", 0); -+ if (state->sha1_tfm == NULL) { -+ crypto_free_tfm(state->arc4_tfm); -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: cannot load SHA1 module\n", fname); -+ return NULL; -+ } -+ -+ digestsize = crypto_tfm_alg_digestsize(state->sha1_tfm); -+ if (digestsize < MPPE_MAX_KEY_LEN) { -+ crypto_free_tfm(state->sha1_tfm); -+ crypto_free_tfm(state->arc4_tfm); -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: CryptoAPI SHA1 digest size too small\n", fname); -+ } -+ -+ state->sha1_digest = kmalloc(digestsize, GFP_KERNEL); -+ if (!state->sha1_digest) { -+ crypto_free_tfm(state->sha1_tfm); -+ crypto_free_tfm(state->arc4_tfm); -+ if (state->mppc) { -+ vfree(state->hash); -+ if (comp) -+ vfree(state->hist); -+ } -+ kfree(state); -+ printk(KERN_ERR "%s: cannot allocate space for SHA1 digest\n", fname); -+ } -+ -+ memcpy(state->master_key, options+CILEN_MPPE, MPPE_MAX_KEY_LEN); -+ memcpy(state->session_key, state->master_key, MPPE_MAX_KEY_LEN); -+ /* initial key generation is done in mppe_init() */ -+ } -+ -+ return (void *) state; -+} -+ -+static void * -+mppe_comp_alloc(unsigned char *options, int opt_len) -+{ -+ return mppe_alloc(options, opt_len, 1); -+} -+ -+static void * -+mppe_decomp_alloc(unsigned char *options, int opt_len) -+{ -+ return mppe_alloc(options, opt_len, 0); -+} -+ -+/* cleanup the (de)compressor */ -+static void -+mppe_comp_free(void *arg) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg; -+ -+ if (state != NULL) { -+ if (state->mppe) { -+ if (state->sha1_digest != NULL) -+ kfree(state->sha1_digest); -+ if (state->sha1_tfm != NULL) -+ crypto_free_tfm(state->sha1_tfm); -+ if (state->arc4_tfm != NULL) -+ crypto_free_tfm(state->arc4_tfm); -+ } -+ if (state->hist != NULL) -+ vfree(state->hist); -+ if (state->hash != NULL) -+ vfree(state->hash); -+ kfree(state); -+ } -+} -+ -+/* init MPPC/MPPE (de)compresor */ -+/* comp != 0 -> init compressor */ -+/* comp = 0 -> init decompressor */ -+static int -+mppe_init(void *arg, unsigned char *options, int opt_len, int unit, -+ int hdrlen, int mru, int debug, int comp) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg; -+ u8* fname; -+ -+ fname = comp ? "mppe_comp_init" : "mppe_decomp_init"; -+ -+ if (opt_len < CILEN_MPPE) { -+ if (debug) -+ printk(KERN_WARNING "%s: wrong options length: %u\n", -+ fname, opt_len); -+ return 0; -+ } -+ -+ if (options[0] != CI_MPPE || options[1] != CILEN_MPPE || -+ (options[2] & ~MPPE_STATELESS) != 0 || -+ options[3] != 0 || options[4] != 0 || -+ (options[5] & ~(MPPE_56BIT|MPPE_128BIT|MPPE_40BIT|MPPE_MPPC)) != 0 || -+ (options[5] & (MPPE_56BIT|MPPE_128BIT|MPPE_40BIT|MPPE_MPPC)) == 0) { -+ if (debug) -+ printk(KERN_WARNING "%s: options rejected: o[0]=%02x, o[1]=%02x, " -+ "o[2]=%02x, o[3]=%02x, o[4]=%02x, o[5]=%02x\n", fname, -+ options[0], options[1], options[2], options[3], options[4], -+ options[5]); -+ return 0; -+ } -+ -+ if ((options[5] & ~MPPE_MPPC) != MPPE_128BIT && -+ (options[5] & ~MPPE_MPPC) != MPPE_56BIT && -+ (options[5] & ~MPPE_MPPC) != MPPE_40BIT && -+ (options[5] & MPPE_MPPC) != MPPE_MPPC) { -+ if (debug) -+ printk(KERN_WARNING "%s: don't know what to do: o[5]=%02x\n", -+ fname, options[5]); -+ return 0; -+ } -+ -+ state->mppc = options[5] & MPPE_MPPC; /* Do we use MPPC? */ -+ state->mppe = options[5] & (MPPE_128BIT | MPPE_56BIT | -+ MPPE_40BIT); /* Do we use MPPE? */ -+ state->stateless = options[2] & MPPE_STATELESS; /* Do we use stateless mode? */ -+ -+ switch (state->mppe) { -+ case MPPE_40BIT: /* 40 bit key */ -+ state->keylen = 8; -+ state->bitkeylen = 40; -+ break; -+ case MPPE_56BIT: /* 56 bit key */ -+ state->keylen = 8; -+ state->bitkeylen = 56; -+ break; -+ case MPPE_128BIT: /* 128 bit key */ -+ state->keylen = 16; -+ state->bitkeylen = 128; -+ break; -+ default: -+ state->keylen = 0; -+ state->bitkeylen = 0; -+ } -+ -+ state->ccount = MPPE_MAX_CCOUNT; -+ state->bits = 0; -+ state->unit = unit; -+ state->debug = debug; -+ state->histptr = MPPE_HIST_LEN; -+ if (state->mppc) { /* reset history if MPPC was negotiated */ -+ memset(state->hist, 0, 2*MPPE_HIST_LEN*sizeof(u8)); -+ } -+ -+ if (state->mppe) { /* generate initial session keys */ -+ mppe_change_key(state, 1); -+ } -+ -+ if (comp) { /* specific for compressor */ -+ state->nextflushed = 1; -+ } else { /* specific for decompressor */ -+ state->mru = mru; -+ state->flushexpected = 1; -+ } -+ -+ return 1; -+} -+ -+static int -+mppe_comp_init(void *arg, unsigned char *options, int opt_len, int unit, -+ int hdrlen, int debug) -+{ -+ return mppe_init(arg, options, opt_len, unit, hdrlen, 0, debug, 1); -+} -+ -+ -+static int -+mppe_decomp_init(void *arg, unsigned char *options, int opt_len, int unit, -+ int hdrlen, int mru, int debug) -+{ -+ return mppe_init(arg, options, opt_len, unit, hdrlen, mru, debug, 0); -+} -+ -+static void -+mppe_comp_reset(void *arg) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg; -+ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: resetting MPPC/MPPE compressor\n", -+ __FUNCTION__, state->unit); -+ -+ state->nextflushed = 1; -+ if (state->mppe) -+ arc4_setkey(state, state->session_key, state->keylen); -+} -+ -+static void -+mppe_decomp_reset(void *arg) -+{ -+ /* When MPPC/MPPE is in use, we shouldn't receive any CCP Reset-Ack. -+ But when we receive such a packet, we just ignore it. */ -+ return; -+} -+ -+static void -+mppe_stats(void *arg, struct compstat *stats) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg; -+ -+ *stats = state->stats; -+} -+ -+/***************************/ -+/**** Compression stuff ****/ -+/***************************/ -+/* inserts 1 to 8 bits into the output buffer */ -+static inline void putbits8(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l) -+{ -+ buf += *i; -+ if (*l >= n) { -+ *l = (*l) - n; -+ val <<= *l; -+ *buf = *buf | (val & 0xff); -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ *(++buf) = 0; -+ } -+ } else { -+ (*i)++; -+ *l = 8 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 8) & 0xff); -+ *(++buf) = val & 0xff; -+ } -+} -+ -+/* inserts 9 to 16 bits into the output buffer */ -+static inline void putbits16(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l) -+{ -+ buf += *i; -+ if (*l >= n - 8) { -+ (*i)++; -+ *l = 8 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 8) & 0xff); -+ *(++buf) = val & 0xff; -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ *(++buf) = 0; -+ } -+ } else { -+ (*i)++; (*i)++; -+ *l = 16 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 16) & 0xff); -+ *(++buf) = (val >> 8) & 0xff; -+ *(++buf) = val & 0xff; -+ } -+} -+ -+/* inserts 17 to 24 bits into the output buffer */ -+static inline void putbits24(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l) -+{ -+ buf += *i; -+ if (*l >= n - 16) { -+ (*i)++; (*i)++; -+ *l = 16 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 16) & 0xff); -+ *(++buf) = (val >> 8) & 0xff; -+ *(++buf) = val & 0xff; -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ *(++buf) = 0; -+ } -+ } else { -+ (*i)++; (*i)++; (*i)++; -+ *l = 24 - n + (*l); -+ val <<= *l; -+ *buf = *buf | ((val >> 24) & 0xff); -+ *(++buf) = (val >> 16) & 0xff; -+ *(++buf) = (val >> 8) & 0xff; -+ *(++buf) = val & 0xff; -+ } -+} -+ -+static int -+mppc_compress(struct ppp_mppe_state *state, unsigned char *ibuf, -+ unsigned char *obuf, int isize, int osize) -+{ -+ u32 olen, off, len, idx, i, l; -+ u8 *hist, *sbuf, *p, *q, *r, *s; -+ -+ /* -+ At this point, to avoid possible buffer overflow caused by packet -+ expansion during/after compression, we should make sure that -+ osize >= (((isize*9)/8)+1)+2, but we don't do that because in -+ ppp_generic.c we simply allocate bigger obuf. -+ -+ Maximum MPPC packet expansion is 12.5%. This is the worst case when -+ all octets in the input buffer are >= 0x80 and we cannot find any -+ repeated tokens. Additionally we have to reserve 2 bytes for MPPE/MPPC -+ status bits and coherency counter. -+ */ -+ -+ hist = state->hist + MPPE_HIST_LEN; -+ /* check if there is enough room at the end of the history */ -+ if (state->histptr + isize >= 2*MPPE_HIST_LEN) { -+ state->bits |= MPPE_BIT_RESET; -+ state->histptr = MPPE_HIST_LEN; -+ memcpy(state->hist, hist, MPPE_HIST_LEN); -+ } -+ /* add packet to the history; isize must be <= MPPE_HIST_LEN */ -+ sbuf = state->hist + state->histptr; -+ memcpy(sbuf, ibuf, isize); -+ state->histptr += isize; -+ -+ /* compress data */ -+ r = sbuf + isize; -+ *obuf = olen = i = 0; -+ l = 8; -+ while (i < isize - 2) { -+ s = q = sbuf + i; -+ idx = ((40543*((((s[0]<<4)^s[1])<<4)^s[2]))>>4) & 0x1fff; -+ p = hist + state->hash[idx]; -+ state->hash[idx] = (u16) (s - hist); -+ off = s - p; -+ if (off > MPPE_HIST_LEN - 1 || off < 1 || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++) { -+ /* no match found; encode literal byte */ -+ if (ibuf[i] < 0x80) { /* literal byte < 0x80 */ -+ putbits8(obuf, (u32) ibuf[i], 8, &olen, &l); -+ } else { /* literal byte >= 0x80 */ -+ putbits16(obuf, (u32) (0x100|(ibuf[i]&0x7f)), 9, &olen, &l); -+ } -+ ++i; -+ continue; -+ } -+ if (r - q >= 64) { -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || -+ *p++ != *s++; -+ if (s - q == 64) { -+ p--; s--; -+ while((*p++ == *s++) && (s < r) && (p < q)); -+ } -+ } else { -+ while((*p++ == *s++) && (s < r) && (p < q)); -+ } -+ len = s - q - 1; -+ i += len; -+ -+ /* at least 3 character match found; code data */ -+ /* encode offset */ -+ if (off < 64) { /* 10-bit offset; 0 <= offset < 64 */ -+ putbits16(obuf, 0x3c0|off, 10, &olen, &l); -+ } else if (off < 320) { /* 12-bit offset; 64 <= offset < 320 */ -+ putbits16(obuf, 0xe00|(off-64), 12, &olen, &l); -+ } else if (off < 8192) { /* 16-bit offset; 320 <= offset < 8192 */ -+ putbits16(obuf, 0xc000|(off-320), 16, &olen, &l); -+ } else { -+ /* This shouldn't happen; we return 0 what means "packet expands", -+ and we send packet uncompressed. */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: wrong offset value: %d\n", -+ __FUNCTION__, state->unit, off); -+ return 0; -+ } -+ /* encode length of match */ -+ if (len < 4) { /* length = 3 */ -+ putbits8(obuf, 0, 1, &olen, &l); -+ } else if (len < 8) { /* 4 <= length < 8 */ -+ putbits8(obuf, 0x08|(len&0x03), 4, &olen, &l); -+ } else if (len < 16) { /* 8 <= length < 16 */ -+ putbits8(obuf, 0x30|(len&0x07), 6, &olen, &l); -+ } else if (len < 32) { /* 16 <= length < 32 */ -+ putbits8(obuf, 0xe0|(len&0x0f), 8, &olen, &l); -+ } else if (len < 64) { /* 32 <= length < 64 */ -+ putbits16(obuf, 0x3c0|(len&0x1f), 10, &olen, &l); -+ } else if (len < 128) { /* 64 <= length < 128 */ -+ putbits16(obuf, 0xf80|(len&0x3f), 12, &olen, &l); -+ } else if (len < 256) { /* 128 <= length < 256 */ -+ putbits16(obuf, 0x3f00|(len&0x7f), 14, &olen, &l); -+ } else if (len < 512) { /* 256 <= length < 512 */ -+ putbits16(obuf, 0xfe00|(len&0xff), 16, &olen, &l); -+ } else if (len < 1024) { /* 512 <= length < 1024 */ -+ putbits24(obuf, 0x3fc00|(len&0x1ff), 18, &olen, &l); -+ } else if (len < 2048) { /* 1024 <= length < 2048 */ -+ putbits24(obuf, 0xff800|(len&0x3ff), 20, &olen, &l); -+ } else if (len < 4096) { /* 2048 <= length < 4096 */ -+ putbits24(obuf, 0x3ff000|(len&0x7ff), 22, &olen, &l); -+ } else if (len < 8192) { /* 4096 <= length < 8192 */ -+ putbits24(obuf, 0xffe000|(len&0xfff), 24, &olen, &l); -+ } else { -+ /* This shouldn't happen; we return 0 what means "packet expands", -+ and send packet uncompressed. */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: wrong length of match value: %d\n", -+ __FUNCTION__, state->unit, len); -+ return 0; -+ } -+ } -+ -+ /* Add remaining octets to the output */ -+ while(isize - i > 0) { -+ if (ibuf[i] < 0x80) { /* literal byte < 0x80 */ -+ putbits8(obuf, (u32) ibuf[i++], 8, &olen, &l); -+ } else { /* literal byte >= 0x80 */ -+ putbits16(obuf, (u32) (0x100|(ibuf[i++]&0x7f)), 9, &olen, &l); -+ } -+ } -+ /* Reset unused bits of the last output octet */ -+ if ((l != 0) && (l != 8)) { -+ putbits8(obuf, 0, l, &olen, &l); -+ } -+ -+ return (int) olen; -+} -+ -+int -+mppe_compress(void *arg, unsigned char *ibuf, unsigned char *obuf, -+ int isize, int osize) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg; -+ int proto, olen, complen, off; -+ unsigned char *wptr; -+ -+ /* Check that the protocol is in the range we handle. */ -+ proto = PPP_PROTOCOL(ibuf); -+ if (proto < 0x0021 || proto > 0x00fa) -+ return 0; -+ -+ wptr = obuf; -+ /* Copy over the PPP header */ -+ wptr[0] = PPP_ADDRESS(ibuf); -+ wptr[1] = PPP_CONTROL(ibuf); -+ wptr[2] = PPP_COMP >> 8; -+ wptr[3] = PPP_COMP; -+ wptr += PPP_HDRLEN + (MPPE_OVHD / 2); /* Leave two octets for MPPE/MPPC bits */ -+ -+ /* -+ * In ver. 0.99 protocol field was compressed. Deflate and BSD compress -+ * do PFC before actual compression, RCF2118 and RFC3078 are not precise -+ * on this topic so I decided to do PFC. Unfortunately this change caused -+ * incompatibility with older/other MPPE/MPPC modules. I have received -+ * a lot of complaints from unexperienced users so I have decided to revert -+ * to previous state, i.e. the protocol field is sent uncompressed now. -+ * Although this may be changed in the future. -+ * -+ * Receiving side (mppe_decompress()) still accepts packets with compressed -+ * and uncompressed protocol field so you shouldn't get "Unsupported protocol -+ * 0x2145 received" messages anymore. -+ */ -+ //off = (proto > 0xff) ? 2 : 3; /* PFC - skip first protocol byte if 0 */ -+ off = 2; -+ -+ ibuf += off; -+ -+ mppe_increase_ccount(state); -+ -+ if (state->nextflushed) { -+ state->bits |= MPPE_BIT_FLUSHED; -+ state->nextflushed = 0; -+ if (state->mppe && !state->stateless) { -+ /* -+ * If this is the flag packet, the key has been already changed in -+ * mppe_increase_ccount() so we dont't do it once again. -+ */ -+ if ((state->ccount & 0xff) != 0xff) { -+ arc4_setkey(state, state->session_key, state->keylen); -+ } -+ } -+ if (state->mppc) { /* reset history */ -+ state->bits |= MPPE_BIT_RESET; -+ state->histptr = MPPE_HIST_LEN; -+ memset(state->hist + MPPE_HIST_LEN, 0, MPPE_HIST_LEN*sizeof(u8)); -+ } -+ } -+ -+ if (state->mppc && !state->mppe) { /* Do only compression */ -+ complen = mppc_compress(state, ibuf, wptr, isize - off, -+ osize - PPP_HDRLEN - (MPPE_OVHD / 2)); -+ /* -+ * TODO: Implement an heuristics to handle packet expansion in a smart -+ * way. Now, when a packet expands, we send it as uncompressed and -+ * when next packet is sent we have to reset compressor's history. -+ * Maybe it would be better to send such packet as compressed in order -+ * to keep history's continuity. -+ */ -+ if ((complen > isize) || (complen > osize - PPP_HDRLEN) || -+ (complen == 0)) { -+ /* packet expands */ -+ state->nextflushed = 1; -+ memcpy(wptr, ibuf, isize - off); -+ olen = isize - (off - 2) + MPPE_OVHD; -+ (state->stats).inc_bytes += olen; -+ (state->stats).inc_packets++; -+ } else { -+ state->bits |= MPPE_BIT_COMP; -+ olen = complen + PPP_HDRLEN + (MPPE_OVHD / 2); -+ (state->stats).comp_bytes += olen; -+ (state->stats).comp_packets++; -+ } -+ } else { /* Do encryption with or without compression */ -+ state->bits |= MPPE_BIT_ENCRYPTED; -+ if (!state->mppc && state->mppe) { /* Do only encryption */ -+ /* read from ibuf, write to wptr, adjust for PPP_HDRLEN */ -+ arc4_encrypt(state, ibuf, isize - off, wptr); -+ olen = isize - (off - 2) + MPPE_OVHD; -+ (state->stats).inc_bytes += olen; -+ (state->stats).inc_packets++; -+ } else { /* Do compression and then encryption - RFC3078 */ -+ complen = mppc_compress(state, ibuf, wptr, isize - off, -+ osize - PPP_HDRLEN - (MPPE_OVHD / 2)); -+ /* -+ * TODO: Implement an heuristics to handle packet expansion in a smart -+ * way. Now, when a packet expands, we send it as uncompressed and -+ * when next packet is sent we have to reset compressor's history. -+ * Maybe it would be good to send such packet as compressed in order -+ * to keep history's continuity. -+ */ -+ if ((complen > isize) || (complen > osize - PPP_HDRLEN) || -+ (complen == 0)) { -+ /* packet expands */ -+ state->nextflushed = 1; -+ arc4_encrypt(state, ibuf, isize - off, wptr); -+ olen = isize - (off - 2) + MPPE_OVHD; -+ (state->stats).inc_bytes += olen; -+ (state->stats).inc_packets++; -+ } else { -+ state->bits |= MPPE_BIT_COMP; -+ /* Hack warning !!! RC4 implementation which we use does -+ encryption "in place" - it means that input and output -+ buffers can be *the same* memory area. Therefore we don't -+ need to use a temporary buffer. But be careful - other -+ implementations don't have to be so nice. -+ I used to use ibuf as temporary buffer here, but it led -+ packet sniffers into error. Thanks to Wilfried Weissmann -+ for pointing that. */ -+ arc4_encrypt(state, wptr, complen, wptr); -+ olen = complen + PPP_HDRLEN + (MPPE_OVHD / 2); -+ (state->stats).comp_bytes += olen; -+ (state->stats).comp_packets++; -+ } -+ } -+ } -+ -+ /* write status bits and coherency counter into the output buffer */ -+ wptr = obuf + PPP_HDRLEN; -+ wptr[0] = MPPE_CTRLHI(state); -+ wptr[1] = MPPE_CTRLLO(state); -+ -+ state->bits = 0; -+ -+ (state->stats).unc_bytes += isize; -+ (state->stats).unc_packets++; -+ -+ return olen; -+} -+ -+/***************************/ -+/*** Decompression stuff ***/ -+/***************************/ -+static inline u32 getbits(const u8 *buf, const u32 n, u32 *i, u32 *l) -+{ -+ static const u32 m[] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff}; -+ u32 res, ol; -+ -+ ol = *l; -+ if (*l >= n) { -+ *l = (*l) - n; -+ res = (buf[*i] & m[ol]) >> (*l); -+ if (*l == 0) { -+ *l = 8; -+ (*i)++; -+ } -+ } else { -+ *l = 8 - n + (*l); -+ res = (buf[(*i)++] & m[ol]) << 8; -+ res = (res | buf[*i]) >> (*l); -+ } -+ -+ return res; -+} -+ -+static inline u32 getbyte(const u8 *buf, const u32 i, const u32 l) -+{ -+ if (l == 8) { -+ return buf[i]; -+ } else { -+ return (((buf[i] << 8) | buf[i+1]) >> l) & 0xff; -+ } -+} -+ -+static inline void lamecopy(u8 *dst, u8 *src, u32 len) -+{ -+ while (len--) -+ *dst++ = *src++; -+} -+ -+static int -+mppc_decompress(struct ppp_mppe_state *state, unsigned char *ibuf, -+ unsigned char *obuf, int isize, int osize) -+{ -+ u32 olen, off, len, bits, val, sig, i, l; -+ u8 *history, *s; -+ -+ history = state->hist + state->histptr; -+ olen = len = i = 0; -+ l = 8; -+ bits = isize * 8; -+ while (bits >= 8) { -+ val = getbyte(ibuf, i++, l); -+ if (val < 0x80) { /* literal byte < 0x80 */ -+ if (state->histptr < 2*MPPE_HIST_LEN) { -+ /* copy uncompressed byte to the history */ -+ (state->hist)[(state->histptr)++] = (u8) val; -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: trying to write outside history " -+ "buffer\n", __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ olen++; -+ bits -= 8; -+ continue; -+ } -+ -+ sig = val & 0xc0; -+ if (sig == 0x80) { /* literal byte >= 0x80 */ -+ if (state->histptr < 2*MPPE_HIST_LEN) { -+ /* copy uncompressed byte to the history */ -+ (state->hist)[(state->histptr)++] = -+ (u8) (0x80|((val&0x3f)<<1)|getbits(ibuf, 1 , &i ,&l)); -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: trying to write outside history " -+ "buffer\n", __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ olen++; -+ bits -= 9; -+ continue; -+ } -+ -+ /* Not a literal byte so it must be an (offset,length) pair */ -+ /* decode offset */ -+ sig = val & 0xf0; -+ if (sig == 0xf0) { /* 10-bit offset; 0 <= offset < 64 */ -+ off = (((val&0x0f)<<2)|getbits(ibuf, 2 , &i ,&l)); -+ bits -= 10; -+ } else { -+ if (sig == 0xe0) { /* 12-bit offset; 64 <= offset < 320 */ -+ off = ((((val&0x0f)<<4)|getbits(ibuf, 4 , &i ,&l))+64); -+ bits -= 12; -+ } else { -+ if ((sig&0xe0) == 0xc0) {/* 16-bit offset; 320 <= offset < 8192 */ -+ off = ((((val&0x1f)<<8)|getbyte(ibuf, i++, l))+320); -+ bits -= 16; -+ if (off > MPPE_HIST_LEN - 1) { -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: too big offset value: %d\n", -+ __FUNCTION__, state->unit, off); -+ return DECOMP_ERROR; -+ } -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: cannot decode offset value\n", -+ __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ } -+ } -+ /* decode length of match */ -+ val = getbyte(ibuf, i, l); -+ if ((val & 0x80) == 0x00) { /* len = 3 */ -+ len = 3; -+ bits--; -+ getbits(ibuf, 1 , &i ,&l); -+ } else if ((val & 0xc0) == 0x80) { /* 4 <= len < 8 */ -+ len = 0x04 | ((val>>4) & 0x03); -+ bits -= 4; -+ getbits(ibuf, 4 , &i ,&l); -+ } else if ((val & 0xe0) == 0xc0) { /* 8 <= len < 16 */ -+ len = 0x08 | ((val>>2) & 0x07); -+ bits -= 6; -+ getbits(ibuf, 6 , &i ,&l); -+ } else if ((val & 0xf0) == 0xe0) { /* 16 <= len < 32 */ -+ len = 0x10 | (val & 0x0f); -+ bits -= 8; -+ i++; -+ } else { -+ bits -= 8; -+ val = (val << 8) | getbyte(ibuf, ++i, l); -+ if ((val & 0xf800) == 0xf000) { /* 32 <= len < 64 */ -+ len = 0x0020 | ((val >> 6) & 0x001f); -+ bits -= 2; -+ getbits(ibuf, 2 , &i ,&l); -+ } else if ((val & 0xfc00) == 0xf800) { /* 64 <= len < 128 */ -+ len = 0x0040 | ((val >> 4) & 0x003f); -+ bits -= 4; -+ getbits(ibuf, 4 , &i ,&l); -+ } else if ((val & 0xfe00) == 0xfc00) { /* 128 <= len < 256 */ -+ len = 0x0080 | ((val >> 2) & 0x007f); -+ bits -= 6; -+ getbits(ibuf, 6 , &i ,&l); -+ } else if ((val & 0xff00) == 0xfe00) { /* 256 <= len < 512 */ -+ len = 0x0100 | (val & 0x00ff); -+ bits -= 8; -+ i++; -+ } else { -+ bits -= 8; -+ val = (val << 8) | getbyte(ibuf, ++i, l); -+ if ((val & 0xff8000) == 0xff0000) { /* 512 <= len < 1024 */ -+ len = 0x000200 | ((val >> 6) & 0x0001ff); -+ bits -= 2; -+ getbits(ibuf, 2 , &i ,&l); -+ } else if ((val & 0xffc000) == 0xff8000) {/* 1024 <= len < 2048 */ -+ len = 0x000400 | ((val >> 4) & 0x0003ff); -+ bits -= 4; -+ getbits(ibuf, 4 , &i ,&l); -+ } else if ((val & 0xffe000) == 0xffc000) {/* 2048 <= len < 4096 */ -+ len = 0x000800 | ((val >> 2) & 0x0007ff); -+ bits -= 6; -+ getbits(ibuf, 6 , &i ,&l); -+ } else if ((val & 0xfff000) == 0xffe000) {/* 4096 <= len < 8192 */ -+ len = 0x001000 | (val & 0x000fff); -+ bits -= 8; -+ i++; -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: wrong length code: 0x%X\n", -+ __FUNCTION__, state->unit, val); -+ return DECOMP_ERROR; -+ } -+ } -+ } -+ s = state->hist + state->histptr; -+ state->histptr += len; -+ olen += len; -+ if (state->histptr < 2*MPPE_HIST_LEN) { -+ /* copy uncompressed bytes to the history */ -+ -+ /* In some cases len may be greater than off. It means that memory -+ * areas pointed by s and s-off overlap. I had used memmove() here -+ * because I thought that it acts as libc's version. Unfortunately, -+ * I was wrong. :-) I got strange errors sometimes. Wilfried suggested -+ * using of byte by byte copying here and strange errors disappeared. -+ */ -+ lamecopy(s, s - off, len); -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: trying to write outside history " -+ "buffer\n", __FUNCTION__, state->unit); -+ return DECOMP_ERROR; -+ } -+ } -+ -+ /* Do PFC decompression */ -+ len = olen; -+ if ((history[0] & 0x01) != 0) { -+ obuf[0] = 0; -+ obuf++; -+ len++; -+ } -+ -+ if (len <= osize) { -+ /* copy uncompressed packet to the output buffer */ -+ memcpy(obuf, history, olen); -+ } else { -+ /* buffer overflow; drop packet */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: too big uncompressed packet: %d\n", -+ __FUNCTION__, state->unit, len + (PPP_HDRLEN / 2)); -+ return DECOMP_ERROR; -+ } -+ -+ return (int) len; -+} -+ -+int -+mppe_decompress(void *arg, unsigned char *ibuf, int isize, -+ unsigned char *obuf, int osize) -+{ -+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg; -+ int seq, bits, uncomplen; -+ -+ if (isize <= PPP_HDRLEN + MPPE_OVHD) { -+ if (state->debug) { -+ printk(KERN_DEBUG "%s%d: short packet (len=%d)\n", __FUNCTION__, -+ state->unit, isize); -+ } -+ return DECOMP_ERROR; -+ } -+ -+ /* Get coherency counter and control bits from input buffer */ -+ seq = MPPE_CCOUNT(ibuf); -+ bits = MPPE_BITS(ibuf); -+ -+ if (state->stateless) { -+ /* RFC 3078, sec 8.1. */ -+ mppe_increase_ccount(state); -+ if ((seq != state->ccount) && state->debug) -+ printk(KERN_DEBUG "%s%d: bad sequence number: %d, expected: %d\n", -+ __FUNCTION__, state->unit, seq, state->ccount); -+ while (seq != state->ccount) -+ mppe_increase_ccount(state); -+ } else { -+ /* RFC 3078, sec 8.2. */ -+ if (state->flushexpected) { /* discard state */ -+ if ((bits & MPPE_BIT_FLUSHED)) { /* we received expected FLUSH bit */ -+ while (seq != state->ccount) -+ mppe_increase_ccount(state); -+ state->flushexpected = 0; -+ } else /* drop packet*/ -+ return DECOMP_ERROR; -+ } else { /* normal state */ -+ mppe_increase_ccount(state); -+ if (seq != state->ccount) { -+ /* Packet loss detected, enter the discard state. */ -+ if (state->debug) -+ printk(KERN_DEBUG "%s%d: bad sequence number: %d, expected: %d\n", -+ __FUNCTION__, state->unit, seq, state->ccount); -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ } -+ if (state->mppe && (bits & MPPE_BIT_FLUSHED)) { -+ arc4_setkey(state, state->session_key, state->keylen); -+ } -+ } -+ -+ if (state->mppc && (bits & (MPPE_BIT_FLUSHED | MPPE_BIT_RESET))) { -+ state->histptr = MPPE_HIST_LEN; -+ if ((bits & MPPE_BIT_FLUSHED)) { -+ memset(state->hist + MPPE_HIST_LEN, 0, MPPE_HIST_LEN*sizeof(u8)); -+ } else -+ if ((bits & MPPE_BIT_RESET)) { -+ memcpy(state->hist, state->hist + MPPE_HIST_LEN, MPPE_HIST_LEN); -+ } -+ } -+ -+ /* Fill in the first part of the PPP header. The protocol field -+ comes from the decompressed data. */ -+ obuf[0] = PPP_ADDRESS(ibuf); -+ obuf[1] = PPP_CONTROL(ibuf); -+ obuf += PPP_HDRLEN / 2; -+ -+ if (state->mppe) { /* process encrypted packet */ -+ if ((bits & MPPE_BIT_ENCRYPTED)) { -+ /* OK, packet encrypted, so decrypt it */ -+ if (state->mppc && (bits & MPPE_BIT_COMP)) { -+ /* Hack warning !!! RC4 implementation which we use does -+ decryption "in place" - it means that input and output -+ buffers can be *the same* memory area. Therefore we don't -+ need to use a temporary buffer. But be careful - other -+ implementations don't have to be so nice. */ -+ arc4_decrypt(state, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2), isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2), ibuf + PPP_HDRLEN + -+ (MPPE_OVHD / 2)); -+ uncomplen = mppc_decompress(state, ibuf + PPP_HDRLEN + -+ (MPPE_OVHD / 2), obuf, isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2), -+ osize - (PPP_HDRLEN / 2)); -+ if (uncomplen == DECOMP_ERROR) { -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ uncomplen += PPP_HDRLEN / 2; -+ (state->stats).comp_bytes += isize; -+ (state->stats).comp_packets++; -+ } else { -+ uncomplen = isize - MPPE_OVHD; -+ /* Decrypt the first byte in order to check if it is -+ compressed or uncompressed protocol field */ -+ arc4_decrypt(state, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2), 1, obuf); -+ /* Do PFC decompression */ -+ if ((obuf[0] & 0x01) != 0) { -+ obuf[1] = obuf[0]; -+ obuf[0] = 0; -+ obuf++; -+ uncomplen++; -+ } -+ /* And finally, decrypt the rest of the frame. */ -+ arc4_decrypt(state, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2) + 1, -+ isize - PPP_HDRLEN - (MPPE_OVHD / 2) - 1, obuf + 1); -+ (state->stats).inc_bytes += isize; -+ (state->stats).inc_packets++; -+ } -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: encryption negotiated but not an " -+ "encrypted packet received\n", __FUNCTION__, state->unit); -+ mppe_change_key(state, 0); -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ } else { -+ if (state->mppc) { /* no MPPE, only MPPC */ -+ if ((bits & MPPE_BIT_COMP)) { -+ uncomplen = mppc_decompress(state, ibuf + PPP_HDRLEN + -+ (MPPE_OVHD / 2), obuf, isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2), -+ osize - (PPP_HDRLEN / 2)); -+ if (uncomplen == DECOMP_ERROR) { -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ uncomplen += PPP_HDRLEN / 2; -+ (state->stats).comp_bytes += isize; -+ (state->stats).comp_packets++; -+ } else { -+ memcpy(obuf, ibuf + PPP_HDRLEN + (MPPE_OVHD / 2), isize - -+ PPP_HDRLEN - (MPPE_OVHD / 2)); -+ uncomplen = isize - MPPE_OVHD; -+ (state->stats).inc_bytes += isize; -+ (state->stats).inc_packets++; -+ } -+ } else { /* this shouldn't happen */ -+ if (state->debug) -+ printk(KERN_ERR "%s%d: error - not an MPPC or MPPE frame " -+ "received\n", __FUNCTION__, state->unit); -+ state->flushexpected = 1; -+ return DECOMP_ERROR; -+ } -+ } -+ -+ (state->stats).unc_bytes += uncomplen; -+ (state->stats).unc_packets++; -+ -+ return uncomplen; -+} -+ -+ -+/************************************************************ -+ * Module interface table -+ ************************************************************/ -+ -+/* These are in ppp_generic.c */ -+extern int ppp_register_compressor (struct compressor *cp); -+extern void ppp_unregister_compressor (struct compressor *cp); -+ -+/* -+ * Functions exported to ppp_generic.c. -+ * -+ * In case of MPPC/MPPE there is no need to process incompressible data -+ * because such a data is sent in MPPC/MPPE frame. Therefore the (*incomp) -+ * callback function isn't needed. -+ */ -+struct compressor ppp_mppe = { -+ .compress_proto = CI_MPPE, -+ .comp_alloc = mppe_comp_alloc, -+ .comp_free = mppe_comp_free, -+ .comp_init = mppe_comp_init, -+ .comp_reset = mppe_comp_reset, -+ .compress = mppe_compress, -+ .comp_stat = mppe_stats, -+ .decomp_alloc = mppe_decomp_alloc, -+ .decomp_free = mppe_comp_free, -+ .decomp_init = mppe_decomp_init, -+ .decomp_reset = mppe_decomp_reset, -+ .decompress = mppe_decompress, -+ .incomp = NULL, -+ .decomp_stat = mppe_stats, -+ .owner = THIS_MODULE -+}; -+ -+/************************************************************ -+ * Module support routines -+ ************************************************************/ -+ -+int __init mppe_module_init(void) -+{ -+ int answer; -+ -+ if (!(crypto_alg_available("arc4", 0) && crypto_alg_available("sha1", 0))) { -+ printk(KERN_ERR "Kernel doesn't provide ARC4 and/or SHA1 algorithms " -+ "required by MPPE/MPPC. Check CryptoAPI configuration.\n"); -+ return -ENODEV; -+ } -+ -+ /* Allocate space for SHAPad1, SHAPad2 and ... */ -+ sha_pad = kmalloc(sizeof(struct sha_pad), GFP_KERNEL); -+ if (sha_pad == NULL) -+ return -ENOMEM; -+ /* ... initialize them */ -+ memset(sha_pad->sha_pad1, 0x00, sizeof(sha_pad->sha_pad1)); -+ memset(sha_pad->sha_pad2, 0xf2, sizeof(sha_pad->sha_pad2)); -+ -+ answer = ppp_register_compressor(&ppp_mppe); -+ if (answer == 0) { -+ printk(KERN_INFO "MPPE/MPPC encryption/compression module registered\n"); -+ } -+ return answer; -+} -+ -+void __exit mppe_module_cleanup(void) -+{ -+ kfree(sha_pad); -+ ppp_unregister_compressor(&ppp_mppe); -+ printk(KERN_INFO "MPPE/MPPC encryption/compression module unregistered\n"); -+} -+ -+module_init(mppe_module_init); -+module_exit(mppe_module_cleanup); -+ -+MODULE_AUTHOR("Jan Dubiec <jdx@slackware.pl>"); -+MODULE_DESCRIPTION("MPPE/MPPC encryption/compression module for Linux"); -+MODULE_VERSION("1.2"); -+MODULE_LICENSE("Dual BSD/GPL"); -+MODULE_ALIAS("ppp-compress-" __stringify(CI_MPPE)); -diff -ruN linux-2.6.12.orig/include/linux/ppp-comp.h linux-2.6.12/include/linux/ppp-comp.h ---- linux-2.6.12.orig/include/linux/ppp-comp.h 2004-12-24 22:33:47.000000000 +0100 -+++ linux-2.6.12/include/linux/ppp-comp.h 2005-06-28 20:07:01.000000000 +0200 -@@ -28,7 +28,7 @@ - */ - - /* -- * ==FILEVERSION 980319== -+ * ==FILEVERSION 20040509== - * - * NOTE TO MAINTAINERS: - * If you modify this file at all, please set the above date. -@@ -80,7 +80,7 @@ - - /* Compress a packet */ - int (*compress) (void *state, unsigned char *rptr, -- unsigned char *obuf, int isize, int osize); -+ unsigned char *obuf, int isize, int osize); - - /* Return compression statistics */ - void (*comp_stat) (void *state, struct compstat *stats); -@@ -101,7 +101,7 @@ - - /* Decompress a packet. */ - int (*decompress) (void *state, unsigned char *ibuf, int isize, -- unsigned char *obuf, int osize); -+ unsigned char *obuf, int osize); - - /* Update state for an incompressible packet received */ - void (*incomp) (void *state, unsigned char *ibuf, int icnt); -@@ -191,6 +191,42 @@ - #define DEFLATE_CHK_SEQUENCE 0 - - /* -+ * Definitions for MPPE/MPPC. -+ */ -+ -+#define CI_MPPE 18 /* config option for MPPE */ -+#define CILEN_MPPE 6 /* length of config option */ -+ -+#define MPPE_OVHD 4 /* MPPE overhead */ -+#define MPPE_MAX_KEY_LEN 16 /* largest key length (128-bit) */ -+ -+#define MPPE_STATELESS 0x01 /* configuration bit H */ -+#define MPPE_40BIT 0x20 /* configuration bit L */ -+#define MPPE_56BIT 0x80 /* configuration bit M */ -+#define MPPE_128BIT 0x40 /* configuration bit S */ -+#define MPPE_MPPC 0x01 /* configuration bit C */ -+ -+/* -+ * Definitions for Stac LZS. -+ */ -+ -+#define CI_LZS 17 /* config option for Stac LZS */ -+#define CILEN_LZS 5 /* length of config option */ -+ -+#define LZS_OVHD 4 /* max. LZS overhead */ -+#define LZS_HIST_LEN 2048 /* LZS history size */ -+#define LZS_MAX_CCOUNT 0x0FFF /* max. coherency counter value */ -+ -+#define LZS_MODE_NONE 0 -+#define LZS_MODE_LCB 1 -+#define LZS_MODE_CRC 2 -+#define LZS_MODE_SEQ 3 -+#define LZS_MODE_EXT 4 -+ -+#define LZS_EXT_BIT_FLUSHED 0x80 /* bit A */ -+#define LZS_EXT_BIT_COMP 0x20 /* bit C */ -+ -+/* - * Definitions for other, as yet unsupported, compression methods. - */ - diff --git a/packages/linux/linux-dht-walnut-2.6.12/ppc_40x_uboot.patch b/packages/linux/linux-dht-walnut-2.6.12/ppc_40x_uboot.patch deleted file mode 100644 index fcb700c5b4..0000000000 --- a/packages/linux/linux-dht-walnut-2.6.12/ppc_40x_uboot.patch +++ /dev/null @@ -1,693 +0,0 @@ -diff-tree 3e9e7c1d0b7a36fb8affb973a054c5098e27baa8 (from 90eb2665841d7b444602736e2141a01c948f75b1)
-Author: Matt Porter <mporter@kernel.crashing.org>
-Date: Mon Nov 7 00:58:15 2005 -0800
-
- [PATCH] ppc32: cleanup AMCC PPC40x eval boards to support U-Boot
-
- Cleanup PPC40x eval boards (bubinga, walnut and sycamore) to support U-Boot
- as bootloader. The OpenBIOS bd_info struct is not used in the kernel
- anymore (only U-Boot now).
-
- uImage (U-Boot) tested on walnut, sycamore and bubinga
- zImage (OpenBIOS) tested on sycamore, bubinga and ebony
-
- Signed-off-by: Stefan Roese <sr@denx.de>
- Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
- Signed-off-by: Andrew Morton <akpm@osdl.org>
- Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
-diff --git a/arch/ppc/boot/simple/Makefile b/arch/ppc/boot/simple/Makefile
-index ff0904e..82df88b 100644
---- a/arch/ppc/boot/simple/Makefile
-+++ b/arch/ppc/boot/simple/Makefile
-@@ -67,6 +67,12 @@ zimageinitrd-$(CONFIG_BAMBOO) := zImage
- entrypoint-$(CONFIG_BAMBOO) := 0x01000000
- extra.o-$(CONFIG_BAMBOO) := pibs.o
-
-+ zimage-$(CONFIG_BUBINGA) := zImage-TREE
-+zimageinitrd-$(CONFIG_BUBINGA) := zImage.initrd-TREE
-+ end-$(CONFIG_BUBINGA) := bubinga
-+ entrypoint-$(CONFIG_BUBINGA) := 0x01000000
-+ extra.o-$(CONFIG_BUBINGA) := openbios.o
-+
- zimage-$(CONFIG_EBONY) := zImage-TREE
- zimageinitrd-$(CONFIG_EBONY) := zImage.initrd-TREE
- end-$(CONFIG_EBONY) := ebony
-@@ -91,6 +97,18 @@ zimageinitrd-$(CONFIG_OCOTEA) := zImage
- entrypoint-$(CONFIG_OCOTEA) := 0x01000000
- extra.o-$(CONFIG_OCOTEA) := pibs.o
-
-+ zimage-$(CONFIG_SYCAMORE) := zImage-TREE
-+zimageinitrd-$(CONFIG_SYCAMORE) := zImage.initrd-TREE
-+ end-$(CONFIG_SYCAMORE) := sycamore
-+ entrypoint-$(CONFIG_SYCAMORE) := 0x01000000
-+ extra.o-$(CONFIG_SYCAMORE) := openbios.o
-+
-+ zimage-$(CONFIG_WALNUT) := zImage-TREE
-+zimageinitrd-$(CONFIG_WALNUT) := zImage.initrd-TREE
-+ end-$(CONFIG_WALNUT) := walnut
-+ entrypoint-$(CONFIG_WALNUT) := 0x01000000
-+ extra.o-$(CONFIG_WALNUT) := openbios.o
-+
- extra.o-$(CONFIG_EV64260) := misc-ev64260.o
- end-$(CONFIG_EV64260) := ev64260
- cacheflag-$(CONFIG_EV64260) := -include $(clear_L2_L3)
-@@ -168,7 +186,8 @@ OBJCOPY_ARGS := -O elf32-powerpc
-
- # head.o and relocate.o must be at the start.
- boot-y := head.o relocate.o $(extra.o-y) $(misc-y)
--boot-$(CONFIG_40x) += embed_config.o
-+boot-$(CONFIG_REDWOOD_5) += embed_config.o
-+boot-$(CONFIG_REDWOOD_6) += embed_config.o
- boot-$(CONFIG_8xx) += embed_config.o
- boot-$(CONFIG_8260) += embed_config.o
- boot-$(CONFIG_BSEIP) += iic.o
-diff --git a/arch/ppc/boot/simple/misc.c b/arch/ppc/boot/simple/misc.c
-index e02de5b..f415d6c 100644
---- a/arch/ppc/boot/simple/misc.c
-+++ b/arch/ppc/boot/simple/misc.c
-@@ -23,7 +23,7 @@
- #include <asm/page.h>
- #include <asm/mmu.h>
- #include <asm/bootinfo.h>
--#ifdef CONFIG_44x
-+#ifdef CONFIG_4xx
- #include <asm/ibm4xx.h>
- #endif
- #include <asm/reg.h>
-@@ -88,6 +88,14 @@ get_mem_size(void)
- return 0;
- }
-
-+#if defined(CONFIG_40x)
-+#define PPC4xx_EMAC0_MR0 EMAC0_BASE
-+#endif
-+
-+#if defined(CONFIG_44x) && defined(PPC44x_EMAC0_MR0)
-+#define PPC4xx_EMAC0_MR0 PPC44x_EMAC0_MR0
-+#endif
-+
- struct bi_record *
- decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
- {
-@@ -103,13 +111,13 @@ decompress_kernel(unsigned long load_add
- com_port = serial_init(0, NULL);
- #endif
-
--#if defined(CONFIG_44x) && defined(PPC44x_EMAC0_MR0)
-+#if defined(PPC4xx_EMAC0_MR0)
- /* Reset MAL */
- mtdcr(DCRN_MALCR(DCRN_MAL_BASE), MALCR_MMSR);
- /* Wait for reset */
- while (mfdcr(DCRN_MALCR(DCRN_MAL_BASE)) & MALCR_MMSR) {};
- /* Reset EMAC */
-- *(volatile unsigned long *)PPC44x_EMAC0_MR0 = 0x20000000;
-+ *(volatile unsigned long *)PPC4xx_EMAC0_MR0 = 0x20000000;
- __asm__ __volatile__("eieio");
- #endif
-
-@@ -164,7 +172,9 @@ decompress_kernel(unsigned long load_add
- puts(" "); puthex((unsigned long)(&__ramdisk_end));puts("\n");
- }
-
-+#ifndef CONFIG_40x /* don't overwrite the 40x image located at 0x00400000! */
- avail_ram = (char *)0x00400000;
-+#endif
- end_avail = (char *)0x00800000;
- puts("avail ram: "); puthex((unsigned long)avail_ram); puts(" ");
- puthex((unsigned long)end_avail); puts("\n");
-diff --git a/arch/ppc/boot/simple/openbios.c b/arch/ppc/boot/simple/openbios.c
-index c732b6d..81f11d8 100644
---- a/arch/ppc/boot/simple/openbios.c
-+++ b/arch/ppc/boot/simple/openbios.c
-@@ -1,19 +1,43 @@
- /*
- * arch/ppc/boot/simple/openbios.c
- *
-- * 2005 (c) SYSGO AG - g.jaeger@sysgo.com
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
-+ *
-+ * Based on original work by
-+ * 2005 (c) SYSGO AG - g.jaeger@sysgo.com
-+ *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- *
-- * Derived from arch/ppc/boot/simple/pibs.c (from MontaVista)
- */
-
- #include <linux/types.h>
- #include <linux/config.h>
- #include <linux/string.h>
- #include <asm/ppcboot.h>
--#include <platforms/4xx/ebony.h>
-+#include <asm/ibm4xx.h>
-+#include <asm/reg.h>
-+#ifdef CONFIG_40x
-+#include <asm/io.h>
-+#endif
-+
-+#if defined(CONFIG_BUBINGA)
-+#define BOARD_INFO_VECTOR 0xFFF80B50 /* openbios 1.19 moved this vector down - armin */
-+#else
-+#define BOARD_INFO_VECTOR 0xFFFE0B50
-+#endif
-+
-+#ifdef CONFIG_40x
-+/* Supply a default Ethernet address for those eval boards that don't
-+ * ship with one. This is an address from the MBX board I have, so
-+ * it is unlikely you will find it on your network.
-+ */
-+static ushort def_enet_addr[] = { 0x0800, 0x3e26, 0x1559 };
-+
-+extern unsigned long timebase_period_ns;
-+#endif /* CONFIG_40x */
-
- extern unsigned long decompress_kernel(unsigned long load_addr, int num_words,
- unsigned long cksum);
-@@ -23,15 +47,85 @@ extern unsigned long decompress_kernel(u
- bd_t hold_resid_buf __attribute__ ((__section__ (".data.boot")));
- bd_t *hold_residual = &hold_resid_buf;
-
-+typedef struct openbios_board_info {
-+ unsigned char bi_s_version[4]; /* Version of this structure */
-+ unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-+ unsigned int bi_memsize; /* DRAM installed, in bytes */
-+#ifdef CONFIG_405EP
-+ unsigned char bi_enetaddr[2][6]; /* Local Ethernet MAC address */
-+#else /* CONFIG_405EP */
-+ unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */
-+#endif /* CONFIG_405EP */
-+ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-+ unsigned int bi_intfreq; /* Processor speed, in Hz */
-+ unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-+ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
-+#ifdef CONFIG_405EP
-+ unsigned int bi_opb_busfreq; /* OPB Bus speed, in Hz */
-+ unsigned int bi_pllouta_freq; /* PLL OUTA speed, in Hz */
-+#endif /* CONFIG_405EP */
-+} openbios_bd_t;
-+
- void *
- load_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
- void *ign1, void *ign2)
- {
-- decompress_kernel(load_addr, num_words, cksum);
-+#ifdef CONFIG_40x
-+ openbios_bd_t *openbios_bd = NULL;
-+ openbios_bd_t *(*get_board_info)(void) =
-+ (openbios_bd_t *(*)(void))(*(unsigned long *)BOARD_INFO_VECTOR);
-+
-+ /*
-+ * On 40x platforms we not only need the MAC-addresses, but also the
-+ * clocks and memsize. Now try to get all values using the OpenBIOS
-+ * "get_board_info()" callback.
-+ */
-+ if ((openbios_bd = get_board_info()) != NULL) {
-+ /*
-+ * Copy bd_info from OpenBIOS struct into U-Boot struct
-+ * used by kernel
-+ */
-+ hold_residual->bi_memsize = openbios_bd->bi_memsize;
-+ hold_residual->bi_intfreq = openbios_bd->bi_intfreq;
-+ hold_residual->bi_busfreq = openbios_bd->bi_busfreq;
-+ hold_residual->bi_pci_busfreq = openbios_bd->bi_pci_busfreq;
-+ memcpy(hold_residual->bi_pci_enetaddr, openbios_bd->bi_pci_enetaddr, 6);
-+#ifdef CONFIG_405EP
-+ memcpy(hold_residual->bi_enetaddr, openbios_bd->bi_enetaddr[0], 6);
-+ memcpy(hold_residual->bi_enet1addr, openbios_bd->bi_enetaddr[1], 6);
-+ hold_residual->bi_opbfreq = openbios_bd->bi_opb_busfreq;
-+ hold_residual->bi_procfreq = openbios_bd->bi_pllouta_freq;
-+#else /* CONFIG_405EP */
-+ memcpy(hold_residual->bi_enetaddr, openbios_bd->bi_enetaddr, 6);
-+#endif /* CONFIG_405EP */
-+ } else {
-+ /* Hmmm...better try to stuff some defaults.
-+ */
-+ hold_residual->bi_memsize = 16 * 1024 * 1024;
-+ hold_residual->bi_intfreq = 200000000;
-+ hold_residual->bi_busfreq = 100000000;
-+ hold_residual->bi_pci_busfreq = 66666666;
-+
-+ /*
-+ * Only supply one mac-address in this fallback
-+ */
-+ memcpy(hold_residual->bi_enetaddr, (void *)def_enet_addr, 6);
-+#ifdef CONFIG_405EP
-+ hold_residual->bi_opbfreq = 50000000;
-+ hold_residual->bi_procfreq = 200000000;
-+#endif /* CONFIG_405EP */
-+ }
-+
-+ timebase_period_ns = 1000000000 / hold_residual->bi_intfreq;
-+#endif /* CONFIG_40x */
-
-+#ifdef CONFIG_440GP
- /* simply copy the MAC addresses */
-- memcpy(hold_residual->bi_enetaddr, (char *)EBONY_OPENBIOS_MAC_BASE, 6);
-- memcpy(hold_residual->bi_enet1addr, (char *)(EBONY_OPENBIOS_MAC_BASE+EBONY_OPENBIOS_MAC_OFFSET), 6);
-+ memcpy(hold_residual->bi_enetaddr, (char *)OPENBIOS_MAC_BASE, 6);
-+ memcpy(hold_residual->bi_enet1addr, (char *)(OPENBIOS_MAC_BASE+OPENBIOS_MAC_OFFSET), 6);
-+#endif /* CONFIG_440GP */
-+
-+ decompress_kernel(load_addr, num_words, cksum);
-
- return (void *)hold_residual;
- }
-diff --git a/arch/ppc/platforms/4xx/Kconfig b/arch/ppc/platforms/4xx/Kconfig
-index e70e4c6..d883791 100644
---- a/arch/ppc/platforms/4xx/Kconfig
-+++ b/arch/ppc/platforms/4xx/Kconfig
-@@ -225,7 +225,7 @@ config EMBEDDEDBOOT
-
- config IBM_OPENBIOS
- bool
-- depends on ASH || BUBINGA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
-+ depends on ASH || REDWOOD_5 || REDWOOD_6
- default y
-
- config PPC4xx_DMA
-diff --git a/arch/ppc/platforms/4xx/bubinga.c b/arch/ppc/platforms/4xx/bubinga.c
-index 3678abf..8110f55 100644
---- a/arch/ppc/platforms/4xx/bubinga.c
-+++ b/arch/ppc/platforms/4xx/bubinga.c
-@@ -89,7 +89,7 @@ bubinga_early_serial_map(void)
- * by 16.
- */
- uart_div = (mfdcr(DCRN_CPC0_UCR_BASE) & DCRN_CPC0_UCR_U0DIV);
-- uart_clock = __res.bi_pllouta_freq / uart_div;
-+ uart_clock = __res.bi_procfreq / uart_div;
-
- /* Setup serial port access */
- memset(&port, 0, sizeof(port));
-diff --git a/arch/ppc/platforms/4xx/bubinga.h b/arch/ppc/platforms/4xx/bubinga.h
-index b1df856..b5380cf 100644
---- a/arch/ppc/platforms/4xx/bubinga.h
-+++ b/arch/ppc/platforms/4xx/bubinga.h
-@@ -1,52 +1,34 @@
- /*
-- * Support for IBM PPC 405EP evaluation board (Bubinga).
-+ * arch/ppc/platforms/4xx/bubinga.h
- *
-- * Author: SAW (IBM), derived from walnut.h.
-- * Maintained by MontaVista Software <source@mvista.com>
-+ * Bubinga board definitions
-+ *
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
-+ *
-+ * Based on original work by
-+ * SAW (IBM)
-+ * 2003 (c) MontaVista Softare Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
- *
-- * 2003 (c) MontaVista Softare Inc. This file is licensed under the
-- * terms of the GNU General Public License version 2. This program is
-- * licensed "as is" without any warranty of any kind, whether express
-- * or implied.
- */
-
- #ifdef __KERNEL__
- #ifndef __BUBINGA_H__
- #define __BUBINGA_H__
-
--/* 405EP */
-+#include <linux/config.h>
- #include <platforms/4xx/ibm405ep.h>
--
--#ifndef __ASSEMBLY__
--/*
-- * Data structure defining board information maintained by the boot
-- * ROM on IBM's evaluation board. An effort has been made to
-- * keep the field names consistent with the 8xx 'bd_t' board info
-- * structures.
-- */
--
--typedef struct board_info {
-- unsigned char bi_s_version[4]; /* Version of this structure */
-- unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-- unsigned int bi_memsize; /* DRAM installed, in bytes */
-- unsigned char bi_enetaddr[2][6]; /* Local Ethernet MAC address */ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-- unsigned int bi_intfreq; /* Processor speed, in Hz */
-- unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-- unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
-- unsigned int bi_opb_busfreq; /* OPB Bus speed, in Hz */
-- unsigned int bi_pllouta_freq; /* PLL OUTA speed, in Hz */
--} bd_t;
--
--/* Some 4xx parts use a different timebase frequency from the internal clock.
--*/
--#define bi_tbfreq bi_intfreq
--
-+#include <asm/ppcboot.h>
-
- /* Memory map for the Bubinga board.
- * Generic 4xx plus RTC.
- */
-
--extern void *bubinga_rtc_base;
- #define BUBINGA_RTC_PADDR ((uint)0xf0000000)
- #define BUBINGA_RTC_VADDR BUBINGA_RTC_PADDR
- #define BUBINGA_RTC_SIZE ((uint)8*1024)
-@@ -58,12 +40,18 @@ extern void *bubinga_rtc_base;
- * for typical configurations at various CPU speeds.
- * The base baud is calculated as (FWDA / EXT UART DIV / 16)
- */
--#define BASE_BAUD 0
-+#define BASE_BAUD 0
-
--#define BUBINGA_FPGA_BASE 0xF0300000
-+/* Flash */
-+#define PPC40x_FPGA_BASE 0xF0300000
-+#define PPC40x_FPGA_REG_OFFS 1 /* offset to flash map reg */
-+#define PPC40x_FLASH_ONBD_N(x) (x & 0x02)
-+#define PPC40x_FLASH_SRAM_SEL(x) (x & 0x01)
-+#define PPC40x_FLASH_LOW 0xFFF00000
-+#define PPC40x_FLASH_HIGH 0xFFF80000
-+#define PPC40x_FLASH_SIZE 0x80000
-
--#define PPC4xx_MACHINE_NAME "IBM Bubinga"
-+#define PPC4xx_MACHINE_NAME "IBM Bubinga"
-
--#endif /* !__ASSEMBLY__ */
- #endif /* __BUBINGA_H__ */
- #endif /* __KERNEL__ */
-diff --git a/arch/ppc/platforms/4xx/ebony.h b/arch/ppc/platforms/4xx/ebony.h
-index d08faa4..b91ad42 100644
---- a/arch/ppc/platforms/4xx/ebony.h
-+++ b/arch/ppc/platforms/4xx/ebony.h
-@@ -24,8 +24,8 @@
- #define PPC44x_EMAC0_MR0 0xE0000800
-
- /* Where to find the MAC info */
--#define EBONY_OPENBIOS_MAC_BASE 0xfffffe0c
--#define EBONY_OPENBIOS_MAC_OFFSET 0x0c
-+#define OPENBIOS_MAC_BASE 0xfffffe0c
-+#define OPENBIOS_MAC_OFFSET 0x0c
-
- /* Default clock rates for Rev. B and Rev. C silicon */
- #define EBONY_440GP_RB_SYSCLK 33000000
-diff --git a/arch/ppc/platforms/4xx/sycamore.c b/arch/ppc/platforms/4xx/sycamore.c
-index d8019ee..281b4a2 100644
---- a/arch/ppc/platforms/4xx/sycamore.c
-+++ b/arch/ppc/platforms/4xx/sycamore.c
-@@ -88,9 +88,6 @@ ppc405_map_irq(struct pci_dev *dev, unsi
- void __init
- sycamore_setup_arch(void)
- {
--#define SYCAMORE_PS2_BASE 0xF0100000
--#define SYCAMORE_FPGA_BASE 0xF0300000
--
- void *fpga_brdc;
- unsigned char fpga_brdc_data;
- void *fpga_enable;
-@@ -100,7 +97,7 @@ sycamore_setup_arch(void)
-
- ppc4xx_setup_arch();
-
-- ibm_ocp_set_emac(0, 1);
-+ ibm_ocp_set_emac(0, 0);
-
- kb_data = ioremap(SYCAMORE_PS2_BASE, 8);
- if (!kb_data) {
-@@ -111,7 +108,7 @@ sycamore_setup_arch(void)
-
- kb_cs = kb_data + 1;
-
-- fpga_status = ioremap(SYCAMORE_FPGA_BASE, 8);
-+ fpga_status = ioremap(PPC40x_FPGA_BASE, 8);
- if (!fpga_status) {
- printk(KERN_CRIT
- "sycamore_setup_arch() fpga_status ioremap failed\n");
-diff --git a/arch/ppc/platforms/4xx/sycamore.h b/arch/ppc/platforms/4xx/sycamore.h
-index 3e7b4e2..1cd6c82 100644
---- a/arch/ppc/platforms/4xx/sycamore.h
-+++ b/arch/ppc/platforms/4xx/sycamore.h
-@@ -1,67 +1,52 @@
- /*
- * arch/ppc/platforms/4xx/sycamore.h
- *
-- * Macros, definitions, and data structures specific to the IBM PowerPC
-- * 405GPr "Sycamore" evaluation board.
-+ * Sycamore board definitions
- *
-- * Author: Armin Kuster <akuster@mvista.com>
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
-+ *
-+ * Based on original work by
-+ * Armin Kuster <akuster@mvista.com>
-+ * 2000 (c) MontaVista, Software, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
- *
-- * 2000 (c) MontaVista, Software, Inc. This file is licensed under
-- * the terms of the GNU General Public License version 2. This program
-- * is licensed "as is" without any warranty of any kind, whether express
-- * or implied.
- */
-
- #ifdef __KERNEL__
- #ifndef __ASM_SYCAMORE_H__
- #define __ASM_SYCAMORE_H__
-
-+#include <linux/config.h>
- #include <platforms/4xx/ibm405gpr.h>
-+#include <asm/ppcboot.h>
-
--#ifndef __ASSEMBLY__
--/*
-- * Data structure defining board information maintained by the boot
-- * ROM on IBM's "Sycamore" evaluation board. An effort has been made to
-- * keep the field names consistent with the 8xx 'bd_t' board info
-- * structures.
-- */
--
--typedef struct board_info {
-- unsigned char bi_s_version[4]; /* Version of this structure */
-- unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-- unsigned int bi_memsize; /* DRAM installed, in bytes */
-- unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */
-- unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-- unsigned int bi_intfreq; /* Processor speed, in Hz */
-- unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-- unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
--} bd_t;
--
--/* Some 4xx parts use a different timebase frequency from the internal clock.
--*/
--#define bi_tbfreq bi_intfreq
--
--
--/* Memory map for the IBM "Sycamore" 405GP evaluation board.
-+/* Memory map for the IBM "Sycamore" 405GPr evaluation board.
- * Generic 4xx plus RTC.
- */
-
--extern void *sycamore_rtc_base;
- #define SYCAMORE_RTC_PADDR ((uint)0xf0000000)
- #define SYCAMORE_RTC_VADDR SYCAMORE_RTC_PADDR
--#define SYCAMORE_RTC_SIZE ((uint)8*1024)
-+#define SYCAMORE_RTC_SIZE ((uint)8*1024)
-
--#ifdef CONFIG_PPC405GP_INTERNAL_CLOCK
--#define BASE_BAUD 201600
--#else
- #define BASE_BAUD 691200
--#endif
-
--#define SYCAMORE_PS2_BASE 0xF0100000
--#define SYCAMORE_FPGA_BASE 0xF0300000
-+#define SYCAMORE_PS2_BASE 0xF0100000
-+
-+/* Flash */
-+#define PPC40x_FPGA_BASE 0xF0300000
-+#define PPC40x_FPGA_REG_OFFS 5 /* offset to flash map reg */
-+#define PPC40x_FLASH_ONBD_N(x) (x & 0x02)
-+#define PPC40x_FLASH_SRAM_SEL(x) (x & 0x01)
-+#define PPC40x_FLASH_LOW 0xFFF00000
-+#define PPC40x_FLASH_HIGH 0xFFF80000
-+#define PPC40x_FLASH_SIZE 0x80000
-
- #define PPC4xx_MACHINE_NAME "IBM Sycamore"
-
--#endif /* !__ASSEMBLY__ */
- #endif /* __ASM_SYCAMORE_H__ */
- #endif /* __KERNEL__ */
-diff --git a/arch/ppc/platforms/4xx/walnut.c b/arch/ppc/platforms/4xx/walnut.c
-index a33eda4..74cb331 100644
---- a/arch/ppc/platforms/4xx/walnut.c
-+++ b/arch/ppc/platforms/4xx/walnut.c
-@@ -90,7 +90,7 @@ walnut_setup_arch(void)
-
- kb_cs = kb_data + 1;
-
-- fpga_status = ioremap(WALNUT_FPGA_BASE, 8);
-+ fpga_status = ioremap(PPC40x_FPGA_BASE, 8);
- if (!fpga_status) {
- printk(KERN_CRIT
- "walnut_setup_arch() fpga_status ioremap failed\n");
-diff --git a/arch/ppc/platforms/4xx/walnut.h b/arch/ppc/platforms/4xx/walnut.h
-index 04cfbf3..dcf2691 100644
---- a/arch/ppc/platforms/4xx/walnut.h
-+++ b/arch/ppc/platforms/4xx/walnut.h
-@@ -1,72 +1,55 @@
- /*
- * arch/ppc/platforms/4xx/walnut.h
- *
-- * Macros, definitions, and data structures specific to the IBM PowerPC
-- * 405GP "Walnut" evaluation board.
-+ * Walnut board definitions
- *
-- * Authors: Grant Erickson <grant@lcse.umn.edu>, Frank Rowand
-- * <frank_rowand@mvista.com>, Debbie Chu <debbie_chu@mvista.com> or
-- * source@mvista.com
-+ * Copyright (c) 2005 DENX Software Engineering
-+ * Stefan Roese <sr@denx.de>
- *
-- * Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
-+ * Based on original work by
-+ * Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
-+ * Frank Rowand <frank_rowand@mvista.com>
-+ * Debbie Chu <debbie_chu@mvista.com>
-+ * 2000 (c) MontaVista, Software, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
- *
-- * 2000 (c) MontaVista, Software, Inc. This file is licensed under
-- * the terms of the GNU General Public License version 2. This program
-- * is licensed "as is" without any warranty of any kind, whether express
-- * or implied.
- */
-
- #ifdef __KERNEL__
- #ifndef __ASM_WALNUT_H__
- #define __ASM_WALNUT_H__
-
--/* We have a 405GP core */
-+#include <linux/config.h>
- #include <platforms/4xx/ibm405gp.h>
--
--#ifndef __ASSEMBLY__
--/*
-- * Data structure defining board information maintained by the boot
-- * ROM on IBM's "Walnut" evaluation board. An effort has been made to
-- * keep the field names consistent with the 8xx 'bd_t' board info
-- * structures.
-- */
--
--typedef struct board_info {
-- unsigned char bi_s_version[4]; /* Version of this structure */
-- unsigned char bi_r_version[30]; /* Version of the IBM ROM */
-- unsigned int bi_memsize; /* DRAM installed, in bytes */
-- unsigned char bi_enetaddr[6]; /* Local Ethernet MAC address */
-- unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
-- unsigned int bi_intfreq; /* Processor speed, in Hz */
-- unsigned int bi_busfreq; /* PLB Bus speed, in Hz */
-- unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
--} bd_t;
--
--/* Some 4xx parts use a different timebase frequency from the internal clock.
--*/
--#define bi_tbfreq bi_intfreq
--
-+#include <asm/ppcboot.h>
-
- /* Memory map for the IBM "Walnut" 405GP evaluation board.
- * Generic 4xx plus RTC.
- */
-
--extern void *walnut_rtc_base;
- #define WALNUT_RTC_PADDR ((uint)0xf0000000)
- #define WALNUT_RTC_VADDR WALNUT_RTC_PADDR
- #define WALNUT_RTC_SIZE ((uint)8*1024)
-
--#ifdef CONFIG_PPC405GP_INTERNAL_CLOCK
--#define BASE_BAUD 201600
--#else
- #define BASE_BAUD 691200
--#endif
-
- #define WALNUT_PS2_BASE 0xF0100000
--#define WALNUT_FPGA_BASE 0xF0300000
-+
-+/* Flash */
-+#define PPC40x_FPGA_BASE 0xF0300000
-+#define PPC40x_FPGA_REG_OFFS 5 /* offset to flash map reg */
-+#define PPC40x_FLASH_ONBD_N(x) (x & 0x02)
-+#define PPC40x_FLASH_SRAM_SEL(x) (x & 0x01)
-+#define PPC40x_FLASH_LOW 0xFFF00000
-+#define PPC40x_FLASH_HIGH 0xFFF80000
-+#define PPC40x_FLASH_SIZE 0x80000
-+#define WALNUT_FPGA_BASE PPC40x_FPGA_BASE
-
- #define PPC4xx_MACHINE_NAME "IBM Walnut"
-
--#endif /* !__ASSEMBLY__ */
- #endif /* __ASM_WALNUT_H__ */
- #endif /* __KERNEL__ */
-diff --git a/include/asm-ppc/ibm_ocp.h b/include/asm-ppc/ibm_ocp.h
-index 6f10a25..9c21de1 100644
---- a/include/asm-ppc/ibm_ocp.h
-+++ b/include/asm-ppc/ibm_ocp.h
-@@ -131,9 +131,22 @@ static inline void ibm_ocp_set_emac(int
- /* Copy MAC addresses to EMAC additions */
- for (i=start; i<=end; i++) {
- def = ocp_get_one_device(OCP_VENDOR_IBM, OCP_FUNC_EMAC, i);
-- memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-- &__res.bi_enetaddr[i],
-- 6);
-+ if (i == 0)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enetaddr, 6);
-+#if defined(CONFIG_405EP) || defined(CONFIG_44x)
-+ else if (i == 1)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enet1addr, 6);
-+#endif
-+#if defined(CONFIG_440GX)
-+ else if (i == 2)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enet2addr, 6);
-+ else if (i == 3)
-+ memcpy(((struct ocp_func_emac_data *)def->additions)->mac_addr,
-+ __res.bi_enet3addr, 6);
-+#endif
- }
- }
- #endif
-diff --git a/include/asm-ppc/ppcboot.h b/include/asm-ppc/ppcboot.h
-index fe24e45..6b7b63f 100644
---- a/include/asm-ppc/ppcboot.h
-+++ b/include/asm-ppc/ppcboot.h
-@@ -73,8 +73,8 @@ typedef struct bd_info {
- #if defined(CONFIG_HYMOD)
- hymod_conf_t bi_hymod_conf; /* hymod configuration information */
- #endif
--#if defined(CONFIG_EVB64260) || defined(CONFIG_44x) || defined(CONFIG_85xx) ||\
-- defined(CONFIG_83xx)
-+#if defined(CONFIG_EVB64260) || defined(CONFIG_405EP) || defined(CONFIG_44x) || \
-+ defined(CONFIG_85xx) || defined(CONFIG_83xx)
- /* second onboard ethernet port */
- unsigned char bi_enet1addr[6];
- #endif
-@@ -96,5 +96,7 @@ typedef struct bd_info {
- #endif
- } bd_t;
-
-+#define bi_tbfreq bi_intfreq
-+
- #endif /* __ASSEMBLY__ */
- #endif /* __ASM_PPCBOOT_H__ */
diff --git a/packages/linux/linux-dht-walnut_2.6.12.6.bb b/packages/linux/linux-dht-walnut_2.6.12.6.bb deleted file mode 100644 index 7c0f434477..0000000000 --- a/packages/linux/linux-dht-walnut_2.6.12.6.bb +++ /dev/null @@ -1,74 +0,0 @@ -SECTION = "kernel" -DESCRIPTION = "Linux kernel for DHT-Walnut (ppc) machine" -LICENSE = "GPL" -PR = "r2" -DEPENDS = "u-boot" - -KERNEL_CCSUFFIX = "-3.4.4" - -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ - file://ppc_40x_uboot.patch;patch=1 \ - file://iw_we18-5.diff;patch=1 \ - file://linux-2.6.12-mppe-mppc-1.3.patch;patch=1 \ - file://dht-walnut_defconfig" - - -S = "${WORKDIR}/linux-${PV}" - -inherit kernel - - -FILES_kernel-image = "/boot/zImage.elf" - -export OS = "Linux" -ARCH = "ppc" -KERNEL_IMAGETYPE = "zImage" -KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf" - - - - -do_configure_prepend() { - install -m 0644 ${WORKDIR}/dht-walnut_defconfig ${S}/.config -} - -do_stage_append () { -#need ppc platforms includes + friends in order for external kernel modules to compile - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms - install -m 0755 arch/ppc/platforms/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms/4xx - install -m 0755 arch/ppc/platforms/4xx/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms/4xx - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms/83xx - install -m 0755 arch/ppc/platforms/83xx/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms/83xx - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms/85xx - install -m 0755 arch/ppc/platforms/85xx/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms/85xx - - install -d ${STAGING_KERNEL_DIR}/include/asm-m68k - install -m 0755 include/asm-m68k/*.h ${STAGING_KERNEL_DIR}/include/asm-m68k -} - -do_install_append () { - install -d ${DEPLOY_DIR}/images - install -m 0755 arch/ppc/boot/images/zImage.elf ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.elf - install -m 0755 vmlinux ${DEPLOY_DIR}/images/ - powerpc-${TARGET_OS}-objcopy -O binary -R .note -R .comment -S ${DEPLOY_DIR}/images/vmlinux ${DEPLOY_DIR}/images/linux.bin - gzip -f -9 ${DEPLOY_DIR}/images/linux.bin - mkimage -A ppc -O linux -T kernel -C gzip -a 0 -e 0 -n "owmnr"+${PV}+"-ppc" -d ${DEPLOY_DIR}/images/linux.bin.gz ${DEPLOY_DIR}/images/uImage-${PV}-${MACHINE}-${DATETIME}.bin - rm ${DEPLOY_DIR}/images/vmlinux - rm ${DEPLOY_DIR}/images/linux.bin.gz - - -} - -pkg_postinst_kernel () { - true -} - -pkg_postrm_kernel () { - true -} - diff --git a/packages/linux/linux-dht-walnut_2.6.12.bb b/packages/linux/linux-dht-walnut_2.6.12.bb deleted file mode 100644 index 7d362ea659..0000000000 --- a/packages/linux/linux-dht-walnut_2.6.12.bb +++ /dev/null @@ -1,92 +0,0 @@ -SECTION = "kernel" -DESCRIPTION = "Linux kernel for DHT-Walnut (ppc) machine" -LICENSE = "GPL" -PR = "r0" -DEPENDS = "u-boot" - -KERNEL_CCSUFFIX = "-3.4.4" - -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ - file://ppc_40x_uboot.patch;patch=1 \ - file://iw_we18-5.diff;patch=1 \ - file://linux-2.6.12-mppe-mppc-1.3.patch;patch=1 \ - file://dht-walnut_defconfig" - - -S = "${WORKDIR}/linux-${PV}" - -inherit kernel - - -FILES_kernel-image = "/boot/zImage.elf" - -export OS = "Linux" -ARCH = "ppc" -KERNEL_IMAGETYPE = "zImage" -KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf" - - - - -do_configure_prepend() { - install -m 0644 ${WORKDIR}/dht-walnut_defconfig ${S}/.config -# oe_machinstall -m 0644 ${S}/arch/ppc/configs/dht-walnut_defconfig ${S}/.config || die "no default configuration for ${MACHINE} available." -# oe_runmake oldconfig -} - -do_stage_append () { -#need ppc platforms includes + friends in order for external kernel modules to compile - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms - install -m 0755 arch/ppc/platforms/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms/4xx - install -m 0755 arch/ppc/platforms/4xx/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms/4xx - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms/83xx - install -m 0755 arch/ppc/platforms/83xx/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms/83xx - - install -d ${STAGING_KERNEL_DIR}/arch/ppc/platforms/85xx - install -m 0755 arch/ppc/platforms/85xx/*.h ${STAGING_KERNEL_DIR}/arch/ppc/platforms/85xx - - install -d ${STAGING_KERNEL_DIR}/include/asm-m68k - install -m 0755 include/asm-m68k/*.h ${STAGING_KERNEL_DIR}/include/asm-m68k -} - -do_install_append () { - install -d ${DEPLOY_DIR}/images - install -m 0755 arch/ppc/boot/images/zImage.elf ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.elf - install -m 0755 vmlinux ${DEPLOY_DIR}/images/ - powerpc-linux-uclibc-objcopy -O binary -R .note -R .comment -S ${DEPLOY_DIR}/images/vmlinux ${DEPLOY_DIR}/images/linux.bin - gzip -f -9 ${DEPLOY_DIR}/images/linux.bin - mkimage -A ppc -O linux -T kernel -C gzip -a 0 -e 0 -n "owmnr-2.6.12-ppc" -d ${DEPLOY_DIR}/images/linux.bin.gz ${DEPLOY_DIR}/images/uImage-${PV}-${MACHINE}-${DATETIME}.bin - rm ${DEPLOY_DIR}/images/vmlinux - rm ${DEPLOY_DIR}/images/linux.bin.gz - - -} - -pkg_postinst_kernel () { - true -} - -pkg_postrm_kernel () { - true -} - - - - -#do_configure_prepend() { -# install -m 0644 ${WORKDIR}/dht-walnut_defconfig ${S}/.config -#} - - -#do_deploy() { -# install -d ${DEPLOY_DIR}/images -# install -m 0644 arch/${ARCH}/boot/images/zImage.elf ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin} - -#do_deploy[dirs] = "${S}" - -#addtask deploy before do_build after do_compile - diff --git a/packages/linux/linux-dht-walnut_2.6.20.bb b/packages/linux/linux-dht-walnut_2.6.20.bb index 4a93954dfe..bc876ebf34 100644 --- a/packages/linux/linux-dht-walnut_2.6.20.bb +++ b/packages/linux/linux-dht-walnut_2.6.20.bb @@ -1,10 +1,12 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) SECTION = "kernel" DESCRIPTION = "Linux kernel for DHT-Walnut (ppc) machine" LICENSE = "GPL" -PR = "r1" +PR = "r3" DEPENDS = "u-boot" -KERNEL_CCSUFFIX = "-3.4.4" +COMPATIBLE_MACHINE = "dht-walnut" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://dht-walnut_defconfig" @@ -46,14 +48,17 @@ do_stage_append () { do_install_append () { - install -d ${DEPLOY_DIR}/images - install -m 0755 arch/ppc/boot/images/zImage.elf ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.elf - install -m 0755 vmlinux ${DEPLOY_DIR}/images/ - powerpc-${TARGET_OS}-objcopy -O binary -R .note -R .comment -S ${DEPLOY_DIR}/images/vmlinux ${DEPLOY_DIR}/images/linux.bin - gzip -f -9 ${DEPLOY_DIR}/images/linux.bin - mkimage -A ppc -O linux -T kernel -C gzip -a 0 -e 0 -n "ppc405"+${PV} -d ${DEPLOY_DIR}/images/linux.bin.gz ${DEPLOY_DIR}/images/uImage-${PV}-${MACHINE}-${DATETIME}.bin - rm ${DEPLOY_DIR}/images/vmlinux - rm ${DEPLOY_DIR}/images/linux.bin.gz + install -d ${DEPLOY_DIR_IMAGE} + install -m 0755 arch/ppc/boot/images/zImage.elf \ + ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.elf + install -m 0755 vmlinux ${DEPLOY_DIR_IMAGE}/ + powerpc${TARGET_VENDOR}-${TARGET_OS}-objcopy -O binary -R .note -R .comment -S \ + ${DEPLOY_DIR_IMAGE}/vmlinux ${DEPLOY_DIR_IMAGE}/linux.bin + gzip -f -9 ${DEPLOY_DIR_IMAGE}/linux.bin + mkimage -A ppc -O linux -T kernel -C gzip -a 0 -e 0 -n "ppc405"+${PV} -d ${DEPLOY_DIR_IMAGE}/linux.bin.gz \ + ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${MACHINE}-${DATETIME}.bin + rm ${DEPLOY_DIR_IMAGE}/vmlinux + rm ${DEPLOY_DIR_IMAGE}/linux.bin.gz } diff --git a/packages/linux/linux-efika/defconfig b/packages/linux/linux-efika/defconfig index b8a39ffa05..de271da67a 100644 --- a/packages/linux/linux-efika/defconfig +++ b/packages/linux/linux-efika/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.19-rc6 -# Sun Dec 31 01:46:08 2006 +# Linux kernel version: 2.6.20 +# Sat May 19 17:43:26 2007 # # CONFIG_PPC64 is not set CONFIG_PPC32=y @@ -10,6 +10,7 @@ CONFIG_MMU=y CONFIG_GENERIC_HARDIRQS=y CONFIG_IRQ_PER_CPU=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_ARCH_HAS_ILOG2_U32=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_FIND_NEXT_BIT=y @@ -22,23 +23,25 @@ CONFIG_PPC_OF=y CONFIG_PPC_UDBG_16550=y # CONFIG_GENERIC_TBSYNC is not set CONFIG_AUDIT_ARCH=y +CONFIG_GENERIC_BUG=y # CONFIG_DEFAULT_UIMAGE is not set # # Processor support # CONFIG_CLASSIC32=y -# CONFIG_PPC_52xx is not set # CONFIG_PPC_82xx is not set # CONFIG_PPC_83xx is not set # CONFIG_PPC_85xx is not set # CONFIG_PPC_86xx is not set +# CONFIG_PPC_8xx is not set # CONFIG_40x is not set # CONFIG_44x is not set -# CONFIG_8xx is not set # CONFIG_E200 is not set CONFIG_6xx=y CONFIG_PPC_FPU=y +# CONFIG_PPC_DCR_NATIVE is not set +# CONFIG_PPC_DCR_MMIO is not set # CONFIG_ALTIVEC is not set CONFIG_PPC_STD_MMU=y CONFIG_PPC_STD_MMU_32=y @@ -50,26 +53,23 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y +CONFIG_LOCALVERSION="-efika" +# CONFIG_LOCALVERSION_AUTO is not set CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set CONFIG_POSIX_MQUEUE=y -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set -CONFIG_AUDIT=y -CONFIG_AUDITSYSCALL=y -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +# CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y @@ -98,8 +98,8 @@ CONFIG_BASE_SMALL=0 # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y @@ -107,22 +107,22 @@ CONFIG_KMOD=y # Block layer # CONFIG_BLOCK=y -CONFIG_LBD=y +# CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set -CONFIG_LSF=y +# CONFIG_LSF is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_AS is not set +# CONFIG_IOSCHED_DEADLINE is not set CONFIG_IOSCHED_CFQ=y -CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" +CONFIG_DEFAULT_IOSCHED="cfq" # # Platform support @@ -131,10 +131,16 @@ CONFIG_PPC_MULTIPLATFORM=y # CONFIG_EMBEDDED6xx is not set # CONFIG_APUS is not set CONFIG_PPC_CHRP=y +CONFIG_PPC_MPC52xx=y +CONFIG_PPC_MPC5200=y +CONFIG_PPC_MPC5200_BUGFIX=y +CONFIG_PPC_BESTCOMM=y CONFIG_PPC_EFIKA=y +CONFIG_PPC_LITE5200=y # CONFIG_PPC_PMAC is not set # CONFIG_PPC_CELL is not set # CONFIG_PPC_CELL_NATIVE is not set +CONFIG_PPC_NATIVE=y CONFIG_UDBG_RTAS_CONSOLE=y CONFIG_PPC_RTAS=y # CONFIG_RTAS_ERROR_LOGGING is not set @@ -142,12 +148,12 @@ CONFIG_RTAS_PROC=y # CONFIG_MMIO_NVRAM is not set CONFIG_PPC_MPC106=y # CONFIG_PPC_970_NAP is not set +# CONFIG_PPC_INDIRECT_IO is not set +# CONFIG_GENERIC_IOMAP is not set # CONFIG_CPU_FREQ is not set # CONFIG_TAU is not set -CONFIG_PPC_MPC52xx=y # CONFIG_WANT_EARLY_SERIAL is not set CONFIG_MPIC=y -CONFIG_USE_MDIO=y # # Kernel options @@ -155,12 +161,12 @@ CONFIG_USE_MDIO=y # CONFIG_HIGHMEM is not set # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 -# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set -CONFIG_PREEMPT=y -CONFIG_PREEMPT_BKL=y +# CONFIG_PREEMPT is not set CONFIG_BINFMT_ELF=y CONFIG_BINFMT_MISC=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y @@ -176,17 +182,23 @@ CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 CONFIG_PROC_DEVICETREE=y CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="root=/dev/sda1" -# CONFIG_PM is not set -# CONFIG_SECCOMP is not set +CONFIG_CMDLINE="console=ttyS0,9600 console=ttyPSC0,115200" +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set +# CONFIG_SOFTWARE_SUSPEND is not set +CONFIG_SECCOMP=y CONFIG_ISA_DMA_API=y # # Bus options # # CONFIG_ISA is not set +CONFIG_ZONE_DMA=y CONFIG_GENERIC_ISA_DMA=y # CONFIG_MPIC_WEIRD is not set CONFIG_PPC_I8259=y @@ -198,25 +210,7 @@ CONFIG_PCI_DOMAINS=y # # PCCARD (PCMCIA/CardBus) support # -CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=m +# CONFIG_PCCARD is not set # # PCI Hotplug Support @@ -247,211 +241,54 @@ CONFIG_NET=y # # CONFIG_NETDEBUG is not set CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y +# CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set -CONFIG_NET_KEY=y +# CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set +# CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_FWMARK=y -CONFIG_IP_ROUTE_MULTIPATH=y -# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set -CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y CONFIG_IP_PNP_RARP=y -CONFIG_NET_IPIP=y -CONFIG_NET_IPGRE=y -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=y -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" - -# -# IP: Virtual Server Configuration -# -CONFIG_IP_VS=m -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -CONFIG_IP_VS_PROTO_TCP=y -CONFIG_IP_VS_PROTO_UDP=y -CONFIG_IP_VS_PROTO_ESP=y -CONFIG_IP_VS_PROTO_AH=y - -# -# IPVS scheduler -# -CONFIG_IP_VS_RR=m -CONFIG_IP_VS_WRR=m -CONFIG_IP_VS_LC=m -CONFIG_IP_VS_WLC=m -CONFIG_IP_VS_LBLC=m -CONFIG_IP_VS_LBLCR=m -CONFIG_IP_VS_DH=m -CONFIG_IP_VS_SH=m -CONFIG_IP_VS_SED=m -CONFIG_IP_VS_NQ=m - -# -# IPVS application helper -# -CONFIG_IP_VS_FTP=m -CONFIG_IPV6=m -CONFIG_IPV6_PRIVACY=y +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +# CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set # CONFIG_IPV6_MIP6 is not set -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET6_XFRM_MODE_TUNNEL is not set +# CONFIG_INET6_XFRM_MODE_BEET is not set # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set -CONFIG_IPV6_SIT=m -CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_SIT is not set +# CONFIG_IPV6_TUNNEL is not set # CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_NETLABEL is not set -CONFIG_NETWORK_SECMARK=y -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set -CONFIG_NETFILTER_XT_TARGET_SECMARK=m -# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m - -# -# IP: Netfilter Configuration -# -CONFIG_IP_NF_CONNTRACK=m -CONFIG_IP_NF_CT_ACCT=y -CONFIG_IP_NF_CONNTRACK_MARK=y -CONFIG_IP_NF_CONNTRACK_SECMARK=y -CONFIG_IP_NF_CONNTRACK_EVENTS=y -CONFIG_IP_NF_CONNTRACK_NETLINK=m -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -CONFIG_IP_NF_NETBIOS_NS=m -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -CONFIG_IP_NF_PPTP=m -CONFIG_IP_NF_H323=m -CONFIG_IP_NF_SIP=m -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_TOS=m -CONFIG_IP_NF_MATCH_RECENT=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_HASHLIMIT=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_SAME=m -CONFIG_IP_NF_NAT_SNMP_BASIC=m -CONFIG_IP_NF_NAT_IRC=m -CONFIG_IP_NF_NAT_FTP=m -CONFIG_IP_NF_NAT_TFTP=m -CONFIG_IP_NF_NAT_AMANDA=m -CONFIG_IP_NF_NAT_PPTP=m -CONFIG_IP_NF_NAT_H323=m -CONFIG_IP_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m - -# -# IPv6: Netfilter Configuration (EXPERIMENTAL) -# -# CONFIG_IP6_NF_QUEUE is not set -# CONFIG_IP6_NF_IPTABLES is not set - -# -# Bridge: Netfilter Configuration -# -# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set # # DCCP Configuration (EXPERIMENTAL) @@ -461,25 +298,18 @@ CONFIG_IP_NF_ARP_MANGLE=m # # SCTP Configuration (EXPERIMENTAL) # -CONFIG_IP_SCTP=m -# CONFIG_SCTP_DBG_MSG is not set -# CONFIG_SCTP_DBG_OBJCNT is not set -# CONFIG_SCTP_HMAC_NONE is not set -# CONFIG_SCTP_HMAC_SHA1 is not set -CONFIG_SCTP_HMAC_MD5=y +# CONFIG_IP_SCTP is not set # # TIPC Configuration (EXPERIMENTAL) # # CONFIG_TIPC is not set # CONFIG_ATM is not set -CONFIG_BRIDGE=m -CONFIG_VLAN_8021Q=m +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set -CONFIG_LLC=m -CONFIG_LLC2=m -CONFIG_IPX=m -CONFIG_IPX_INTERN=y +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set @@ -490,48 +320,84 @@ CONFIG_IPX_INTERN=y # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set -CONFIG_NET_CLS_ROUTE=y # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIVHCI=m +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TOIM3232_DONGLE=m +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m + +# +# Old SIR device drivers +# +CONFIG_IRPORT_SIR=m + +# +# Old Serial dongle support +# +# CONFIG_DONGLE_OLD is not set + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_TOSHIBA_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +# CONFIG_BT is not set CONFIG_IEEE80211=m # CONFIG_IEEE80211_DEBUG is not set CONFIG_IEEE80211_CRYPT_WEP=m -CONFIG_IEEE80211_CRYPT_CCMP=m -CONFIG_IEEE80211_CRYPT_TKIP=m +# CONFIG_IEEE80211_CRYPT_CCMP is not set +# CONFIG_IEEE80211_CRYPT_TKIP is not set # CONFIG_IEEE80211_SOFTMAC is not set CONFIG_WIRELESS_EXT=y -CONFIG_FIB_RULES=y # # Device Drivers @@ -568,7 +434,6 @@ CONFIG_FW_LOADER=m # Block devices # # CONFIG_BLK_DEV_FD is not set -# CONFIG_BLK_DEV_MPC52XX_ATAPIO is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set @@ -584,10 +449,8 @@ CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_BLK_DEV_INITRD=y -CONFIG_CDROM_PKTCDVD=m -CONFIG_CDROM_PKTCDVD_BUFFERS=8 -# CONFIG_CDROM_PKTCDVD_WCACHE is not set -CONFIG_ATA_OVER_ETH=m +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set # # Misc devices @@ -598,14 +461,72 @@ CONFIG_ATA_OVER_ETH=m # # ATA/ATAPI/MFM/RLL support # -# CONFIG_IDE is not set +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECD=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEDMA_ONLYDISK is not set +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_HPT34X is not set +# CONFIG_BLK_DEV_HPT366 is not set +# CONFIG_BLK_DEV_JMICRON is not set +# CONFIG_BLK_DEV_SC1200 is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SL82C105 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_BLK_DEV_TC86C001 is not set +# CONFIG_IDE_ARM is not set +CONFIG_BLK_DEV_IDEDMA=y +CONFIG_IDEDMA_IVB=y +CONFIG_IDEDMA_AUTO=y +# CONFIG_BLK_DEV_HD is not set # # SCSI device support # -# CONFIG_RAID_ATTRS is not set +CONFIG_RAID_ATTRS=y CONFIG_SCSI=y -CONFIG_SCSI_NETLINK=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # @@ -617,30 +538,32 @@ CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=y -CONFIG_CHR_DEV_SCH=m +# CONFIG_CHR_DEV_SCH is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set -CONFIG_SCSI_LOGGING=y +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=y -CONFIG_SCSI_FC_ATTRS=m +# CONFIG_SCSI_FC_ATTRS is not set CONFIG_SCSI_ISCSI_ATTRS=m -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set # # SCSI low-level drivers # # CONFIG_ISCSI_TCP is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set -CONFIG_SCSI_3W_9XXX=m +# CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_AACRAID is not set # CONFIG_SCSI_AIC7XXX is not set @@ -662,49 +585,39 @@ CONFIG_SCSI_3W_9XXX=m # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_STEX is not set -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_QLA_ISCSI is not set # CONFIG_SCSI_LPFC is not set -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set - -# -# PCMCIA SCSI adapter support -# -# CONFIG_PCMCIA_AHA152X is not set -# CONFIG_PCMCIA_FDOMAIN is not set -# CONFIG_PCMCIA_NINJA_SCSI is not set -# CONFIG_PCMCIA_QLOGIC is not set -# CONFIG_PCMCIA_SYM53C500 is not set +# CONFIG_SCSI_SRP is not set # # Serial ATA (prod) and Parallel ATA (experimental) drivers # CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set # CONFIG_SATA_AHCI is not set # CONFIG_SATA_SVW is not set # CONFIG_ATA_PIIX is not set -CONFIG_SATA_MV=m +# CONFIG_SATA_MV is not set # CONFIG_SATA_NV is not set # CONFIG_PDC_ADMA is not set # CONFIG_SATA_QSTOR is not set -CONFIG_SATA_PROMISE=y -CONFIG_SATA_SX4=y -CONFIG_SATA_SIL=y -CONFIG_SATA_SIL24=y +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIL24 is not set # CONFIG_SATA_SIS is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set +# CONFIG_SATA_INIC162X is not set # CONFIG_PATA_ALI is not set # CONFIG_PATA_AMD is not set # CONFIG_PATA_ARTOP is not set @@ -714,14 +627,16 @@ CONFIG_SATA_SIL24=y # CONFIG_PATA_CS5530 is not set # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set -# CONFIG_ATA_GENERIC is not set +CONFIG_ATA_GENERIC=y # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT821X is not set +# CONFIG_PATA_IT8213 is not set # CONFIG_PATA_JMICRON is not set # CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_MARVELL is not set CONFIG_PATA_MPC52xx=y # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_OLDPIIX is not set @@ -729,7 +644,6 @@ CONFIG_PATA_MPC52xx=y # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PCMCIA is not set # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_RADISYS is not set # CONFIG_PATA_RZ1000 is not set @@ -757,31 +671,7 @@ CONFIG_PATA_MPC52xx=y # # IEEE 1394 (FireWire) support # -CONFIG_IEEE1394=m - -# -# Subsystem Options -# -# CONFIG_IEEE1394_VERBOSEDEBUG is not set -CONFIG_IEEE1394_OUI_DB=y -CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y -CONFIG_IEEE1394_CONFIG_ROM_IP1394=y -CONFIG_IEEE1394_EXPORT_FULL_API=y - -# -# Device Drivers -# -# CONFIG_IEEE1394_PCILYNX is not set -CONFIG_IEEE1394_OHCI1394=m - -# -# Protocol Drivers -# -CONFIG_IEEE1394_VIDEO1394=m -CONFIG_IEEE1394_SBP2=m -CONFIG_IEEE1394_ETH1394=m -CONFIG_IEEE1394_DV1394=m -CONFIG_IEEE1394_RAWIO=m +# CONFIG_IEEE1394 is not set # # I2O device support @@ -791,15 +681,16 @@ CONFIG_IEEE1394_RAWIO=m # # Macintosh device drivers # +# CONFIG_MAC_EMUMOUSEBTN is not set # CONFIG_WINDFARM is not set # # Network device support # CONFIG_NETDEVICES=y -CONFIG_DUMMY=m -CONFIG_BONDING=m -CONFIG_EQUALIZER=m +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # @@ -810,19 +701,22 @@ CONFIG_EQUALIZER=m # # PHY device support # -CONFIG_PHYLIB=m +CONFIG_PHYLIB=y # # MII PHY device drivers # -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -# CONFIG_FIXED_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_BROADCOM_PHY is not set +CONFIG_FIXED_PHY=m +CONFIG_FIXED_MII_10_FDX=y +CONFIG_FIXED_MII_100_FDX=y # # Ethernet (10 or 100Mbit) @@ -832,74 +726,54 @@ CONFIG_MII=y # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set # CONFIG_CASSINI is not set -# CONFIG_NET_VENDOR_3COM is not set +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m # # Tulip family network device support # # CONFIG_NET_TULIP is not set # CONFIG_HP100 is not set -CONFIG_NET_PCI=y -# CONFIG_PCNET32 is not set -# CONFIG_AMD8111_ETH is not set -# CONFIG_ADAPTEC_STARFIRE is not set -# CONFIG_B44 is not set -# CONFIG_FORCEDETH is not set -# CONFIG_DGRS is not set -# CONFIG_EEPRO100 is not set -# CONFIG_E100 is not set -# CONFIG_FEALNX is not set -# CONFIG_NATSEMI is not set -# CONFIG_NE2K_PCI is not set -CONFIG_8139CP=m -CONFIG_8139TOO=m -CONFIG_8139TOO_PIO=y -# CONFIG_8139TOO_TUNE_TWISTER is not set -CONFIG_8139TOO_8129=y -# CONFIG_8139_OLD_RX_RESET is not set -# CONFIG_SIS900 is not set -# CONFIG_EPIC100 is not set -# CONFIG_SUNDANCE is not set -# CONFIG_TLAN is not set -CONFIG_VIA_RHINE=m -CONFIG_VIA_RHINE_MMIO=y -# CONFIG_VIA_RHINE_NAPI is not set +# CONFIG_NET_PCI is not set # # MPC5200 Networking Options # CONFIG_FEC_MPC52xx=y +CONFIG_USE_MDIO=y # # Ethernet (1000 Mbit) # -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -# CONFIG_E1000 is not set -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +CONFIG_E1000=m +# CONFIG_E1000_NAPI is not set +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set CONFIG_R8169=m -CONFIG_R8169_NAPI=y -CONFIG_R8169_VLAN=y +# CONFIG_R8169_NAPI is not set CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set CONFIG_SK98LIN=m -CONFIG_VIA_VELOCITY=m CONFIG_TIGON3=m -CONFIG_BNX2=m +# CONFIG_BNX2 is not set # CONFIG_MV643XX_ETH is not set -CONFIG_QLA3XXX=m +# CONFIG_QLA3XXX is not set # # Ethernet (10000 Mbit) # # CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set # CONFIG_MYRI10GE is not set +# CONFIG_NETXEN_NIC is not set # # Token Ring devices @@ -915,14 +789,7 @@ CONFIG_NET_RADIO=y # # Obsolete Wireless cards support (pre-802.11) # -CONFIG_STRIP=m -CONFIG_PCMCIA_WAVELAN=m -CONFIG_PCMCIA_NETWAVE=m - -# -# Wireless 802.11 Frequency Hopping cards support -# -CONFIG_PCMCIA_RAYCS=m +# CONFIG_STRIP is not set # # Wireless 802.11b ISA/PCI cards support @@ -930,57 +797,41 @@ CONFIG_PCMCIA_RAYCS=m # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_AIRO is not set -CONFIG_HERMES=m -CONFIG_PLX_HERMES=m -CONFIG_TMD_HERMES=m -# CONFIG_NORTEL_HERMES is not set -CONFIG_PCI_HERMES=m +# CONFIG_HERMES is not set CONFIG_ATMEL=m # CONFIG_PCI_ATMEL is not set # -# Wireless 802.11b Pcmcia/Cardbus cards support -# -CONFIG_PCMCIA_HERMES=m -# CONFIG_PCMCIA_SPECTRUM is not set -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_PCMCIA_WL3501=m - -# # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support # CONFIG_PRISM54=m CONFIG_USB_ZD1201=m CONFIG_HOSTAP=m # CONFIG_HOSTAP_FIRMWARE is not set -# CONFIG_HOSTAP_PLX is not set -# CONFIG_HOSTAP_PCI is not set -# CONFIG_HOSTAP_CS is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m CONFIG_NET_WIRELESS=y # -# PCMCIA network device support -# -# CONFIG_NET_PCMCIA is not set - -# # Wan interfaces # # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m +# CONFIG_PPP_MPPE is not set CONFIG_PPPOE=m -# CONFIG_SLIP is not set +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y CONFIG_SLHC=m +# CONFIG_SLIP_SMART is not set +CONFIG_SLIP_MODE_SLIP6=y # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -1001,7 +852,7 @@ CONFIG_SLHC=m # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=y +# CONFIG_INPUT_FF_MEMLESS is not set # # Userland interfaces @@ -1012,36 +863,37 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set -CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_ATKBD is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set -CONFIG_KEYBOARD_XTKBD=m +# CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=y +# CONFIG_MOUSE_PS2 is not set # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_PCSPKR is not set +CONFIG_INPUT_UINPUT=m # # Hardware I/O ports # CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_I8042 is not set +CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_PCIPS2 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_RAW=m # CONFIG_GAMEPORT is not set # @@ -1050,27 +902,35 @@ CONFIG_SERIO_LIBPS2=y CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_VT_HW_CONSOLE_BINDING=y # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # -# CONFIG_SERIAL_8250 is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_NR_UARTS=16 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # +# CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_MPC52xx=y CONFIG_SERIAL_MPC52xx_CONSOLE=y CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 # CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_OF_PLATFORM is not set CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set # CONFIG_BRIQ_PANEL is not set -# CONFIG_HVC_RTAS is not set +CONFIG_HVC_DRIVER=y +CONFIG_HVC_RTAS=y # # IPMI @@ -1080,36 +940,35 @@ CONFIG_UNIX98_PTYS=y # # Watchdog Cards # -# CONFIG_WATCHDOG is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_WATCHDOG_RTAS=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m CONFIG_HW_RANDOM=y CONFIG_NVRAM=y CONFIG_GEN_RTC=y -CONFIG_GEN_RTC_X=y +# CONFIG_GEN_RTC_X is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set - -# -# Ftape, the floppy tape device driver -# CONFIG_AGP=m -# CONFIG_AGP_SIS is not set -# CONFIG_AGP_VIA is not set -CONFIG_DRM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m -CONFIG_DRM_RADEON=m -CONFIG_DRM_MGA=m -CONFIG_DRM_SIS=m -CONFIG_DRM_VIA=m -CONFIG_DRM_SAVAGE=m - -# -# PCMCIA character devices -# -# CONFIG_SYNCLINK_CS is not set -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set +# CONFIG_DRM is not set # CONFIG_RAW_DRIVER is not set # @@ -1121,14 +980,14 @@ CONFIG_DRM_SAVAGE=m # I2C support # CONFIG_I2C=y -# CONFIG_I2C_CHARDEV is not set +CONFIG_I2C_CHARDEV=y # # I2C Algorithms # CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support @@ -1142,32 +1001,33 @@ CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_I801 is not set # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_MPC is not set +CONFIG_I2C_MPC=y # CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PROSAVAGE is not set -# CONFIG_I2C_SAVAGE4 is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set +CONFIG_I2C_OCORES=y +CONFIG_I2C_PARPORT_LIGHT=y +# CONFIG_I2C_PASEMI is not set +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m # CONFIG_I2C_STUB is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_VOODOO3 is not set -# CONFIG_I2C_PCA_ISA is not set +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2C_PCA_ISA=m # # Miscellaneous I2C Chip support # -# CONFIG_SENSORS_DS1337 is not set -# CONFIG_SENSORS_DS1374 is not set -# CONFIG_SENSORS_EEPROM is not set -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_M41T00 is not set -# CONFIG_SENSORS_MAX6875 is not set +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_M41T00=m +CONFIG_SENSORS_MAX6875=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -1193,69 +1053,28 @@ CONFIG_I2C_ALGOBIT=y # # Multimedia devices # -CONFIG_VIDEO_DEV=m -# CONFIG_VIDEO_V4L1 is not set -# CONFIG_VIDEO_V4L1_COMPAT is not set -CONFIG_VIDEO_V4L2=y - -# -# Video Capture Adapters -# - -# -# Video Capture Adapters -# -# CONFIG_VIDEO_ADV_DEBUG is not set -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -CONFIG_VIDEO_WM8775=m -CONFIG_VIDEO_CX25840=m -CONFIG_VIDEO_CX2341X=m -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_CX88 is not set - -# -# V4L USB devices -# -CONFIG_VIDEO_PVRUSB2=m -# CONFIG_VIDEO_PVRUSB2_29XXX is not set -CONFIG_VIDEO_PVRUSB2_24XXX=y -CONFIG_VIDEO_PVRUSB2_SYSFS=y -# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set - -# -# Radio Adapters -# -# CONFIG_RADIO_GEMTEK_PCI is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set -# CONFIG_USB_DSBR is not set +# CONFIG_VIDEO_DEV is not set # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set -CONFIG_VIDEO_TUNER=m -CONFIG_VIDEO_TVEEPROM=m -CONFIG_USB_DABUSB=m +# CONFIG_USB_DABUSB is not set # # Graphics support # -# CONFIG_FIRMWARE_EDID is not set +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_DDC=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set CONFIG_FB_MACMODES=y # CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set @@ -1270,25 +1089,31 @@ CONFIG_FB_OF=y # CONFIG_FB_MATROX is not set CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_DEBUG=y +# CONFIG_FB_RADEON_DEBUG is not set CONFIG_FB_ATY128=y -# CONFIG_FB_ATY is not set +CONFIG_FB_ATY=y +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +# CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set CONFIG_FB_SIS=y CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set -CONFIG_FB_3DFX=y -# CONFIG_FB_3DFX_ACCEL is not set -CONFIG_FB_VOODOO1=y +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set # CONFIG_FB_TRIDENT is not set +# CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # # Console display driver support # -# CONFIG_VGA_CONSOLE is not set +CONFIG_VGA_CONSOLE=y +CONFIG_VGACON_SOFT_SCROLLBACK=y +CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y @@ -1302,137 +1127,19 @@ CONFIG_FONT_8x16=y CONFIG_LOGO=y # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=m -CONFIG_BACKLIGHT_DEVICE=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_DEVICE=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Sound # -CONFIG_SOUND=m - -# -# Advanced Linux Sound Architecture -# -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_SEQUENCER=m -# CONFIG_SND_SEQ_DUMMY is not set -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set - -# -# Generic devices -# -CONFIG_SND_MPU401_UART=m -CONFIG_SND_AC97_CODEC=m -CONFIG_SND_AC97_BUS=m -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set - -# -# PCI devices -# -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -CONFIG_SND_CA0106=m -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -CONFIG_SND_VIA82XX=m -CONFIG_SND_VIA82XX_MODEM=m -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set -# CONFIG_SND_AC97_POWER_SAVE is not set - -# -# ALSA PowerMac devices -# - -# -# ALSA PPC devices -# -CONFIG_SND_PPC_MPC52xx_AC97=m - -# -# USB devices -# -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_USX2Y=m - -# -# PCMCIA devices -# -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set - -# -# Open Sound System -# -# CONFIG_SOUND_PRIME is not set +# CONFIG_SOUND is not set + +# +# HID Devices +# +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set # # USB support @@ -1447,17 +1154,14 @@ CONFIG_USB=y # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y -CONFIG_USB_BANDWIDTH=y CONFIG_USB_DYNAMIC_MINORS=y +# CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_SPLIT_ISO=y -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_EHCI_HCD is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PPC_SOC=y @@ -1465,17 +1169,17 @@ CONFIG_USB_OHCI_HCD_PPC_OF=y CONFIG_USB_OHCI_HCD_PPC_OF_BE=y CONFIG_USB_OHCI_HCD_PPC_OF_LE=y CONFIG_USB_OHCI_HCD_PCI=y -CONFIG_USB_OHCI_BIG_ENDIAN=y +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=y -# CONFIG_USB_U132_HCD is not set +CONFIG_USB_UHCI_HCD=m # CONFIG_USB_SL811_HCD is not set # # USB Device Class drivers # -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' @@ -1486,73 +1190,54 @@ CONFIG_USB_PRINTER=m # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_DATAFAB=y -CONFIG_USB_STORAGE_FREECOM=y -CONFIG_USB_STORAGE_DPCM=y -CONFIG_USB_STORAGE_USBAT=y -CONFIG_USB_STORAGE_SDDR09=y -CONFIG_USB_STORAGE_SDDR55=y -CONFIG_USB_STORAGE_JUMPSHOT=y -CONFIG_USB_STORAGE_ALAUDA=y -CONFIG_USB_STORAGE_ONETOUCH=y -CONFIG_USB_STORAGE_KARMA=y +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_LIBUSUAL is not set # # USB Input Devices # CONFIG_USB_HID=y -CONFIG_USB_HIDINPUT=y # CONFIG_USB_HIDINPUT_POWERBOOK is not set -CONFIG_HID_FF=y -CONFIG_HID_PID=y -CONFIG_LOGITECH_FF=y -CONFIG_THRUSTMASTER_FF=y -# CONFIG_ZEROPLUS_FF is not set -CONFIG_USB_HIDDEV=y -CONFIG_USB_AIPTEK=m -CONFIG_USB_WACOM=m -CONFIG_USB_ACECAD=m -CONFIG_USB_KBTAB=m -CONFIG_USB_POWERMATE=m -CONFIG_USB_TOUCHSCREEN=m -CONFIG_USB_TOUCHSCREEN_EGALAX=y -CONFIG_USB_TOUCHSCREEN_PANJIT=y -CONFIG_USB_TOUCHSCREEN_3M=y -CONFIG_USB_TOUCHSCREEN_ITM=y -CONFIG_USB_TOUCHSCREEN_ETURBO=y -CONFIG_USB_TOUCHSCREEN_GUNZE=y -CONFIG_USB_YEALINK=m -CONFIG_USB_XPAD=m -CONFIG_USB_ATI_REMOTE=m -CONFIG_USB_ATI_REMOTE2=m -CONFIG_USB_KEYSPAN_REMOTE=m -CONFIG_USB_APPLETOUCH=m +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set +# CONFIG_USB_GTCO is not set # # USB Imaging devices # -CONFIG_USB_MDC800=m -CONFIG_USB_MICROTEK=m +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set # # USB Network Adapters # -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET_MII=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -# CONFIG_USB_NET_GL620A is not set -CONFIG_USB_NET_NET1080=m -# CONFIG_USB_NET_PLUSB is not set -# CONFIG_USB_NET_MCS7830 is not set -# CONFIG_USB_NET_RNDIS_HOST is not set -# CONFIG_USB_NET_CDC_SUBSET is not set -CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET_MII is not set +# CONFIG_USB_USBNET is not set # CONFIG_USB_MON is not set # @@ -1562,71 +1247,28 @@ CONFIG_USB_NET_ZAURUS=m # # USB Serial Converter support # -CONFIG_USB_SERIAL=m -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_AIRCABLE is not set -CONFIG_USB_SERIAL_AIRPRIME=m -# CONFIG_USB_SERIAL_ARK3116 is not set -CONFIG_USB_SERIAL_BELKIN=m -# CONFIG_USB_SERIAL_WHITEHEAT is not set -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP2101=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -CONFIG_USB_SERIAL_KLSI=m -CONFIG_USB_SERIAL_KOBIL_SCT=m -CONFIG_USB_SERIAL_MCT_U232=m -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -# CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -CONFIG_USB_SERIAL_SAFE_PADDED=y -# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set -CONFIG_USB_SERIAL_TI=m -CONFIG_USB_SERIAL_CYBERJACK=m -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_OPTION=m -CONFIG_USB_SERIAL_OMNINET=m -CONFIG_USB_EZUSB=y +# CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers # -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -CONFIG_USB_ADUTUX=m -CONFIG_USB_AUERSWALD=m -CONFIG_USB_RIO500=m -CONFIG_USB_LEGOTOWER=m -CONFIG_USB_LCD=m -CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -CONFIG_USB_PHIDGET=m -CONFIG_USB_PHIDGETKIT=m -CONFIG_USB_PHIDGETMOTORCONTROL=m -CONFIG_USB_PHIDGETSERVO=m -CONFIG_USB_IDMOUSE=m -CONFIG_USB_FTDI_ELAN=m -CONFIG_USB_APPLEDISPLAY=m -CONFIG_USB_SISUSBVGA=m -# CONFIG_USB_SISUSBVGA_CON is not set +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set -CONFIG_USB_TRANCEVIBRATOR=m -CONFIG_USB_TEST=m +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_TEST is not set # # USB DSL modem support @@ -1635,26 +1277,7 @@ CONFIG_USB_TEST=m # # USB Gadget Support # -CONFIG_USB_GADGET=m -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_SELECTED=y -CONFIG_USB_GADGET_NET2280=y -CONFIG_USB_NET2280=m -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_AT91 is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -CONFIG_USB_GADGET_DUALSPEED=y -CONFIG_USB_ZERO=m -CONFIG_USB_ETH=m -CONFIG_USB_ETH_RNDIS=y -CONFIG_USB_GADGETFS=m -CONFIG_USB_FILE_STORAGE=m -CONFIG_USB_FILE_STORAGE_TEST=y -CONFIG_USB_G_SERIAL=m -# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_GADGET is not set # # MMC/SD Card support @@ -1664,7 +1287,8 @@ CONFIG_USB_G_SERIAL=m # # LED devices # -# CONFIG_NEW_LEDS is not set +CONFIG_NEW_LEDS=y +# CONFIG_LEDS_CLASS is not set # # LED drivers @@ -1673,6 +1297,10 @@ CONFIG_USB_G_SERIAL=m # # LED Triggers # +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +CONFIG_LEDS_TRIGGER_IDE_DISK=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set # # InfiniBand support @@ -1686,33 +1314,71 @@ CONFIG_USB_G_SERIAL=m # # Real Time Clock # -# CONFIG_RTC_CLASS is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_DEV=m +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set + +# +# RTC drivers +# +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set # # DMA Engine support # -# CONFIG_DMA_ENGINE is not set +CONFIG_DMA_ENGINE=y # # DMA Clients # +CONFIG_NET_DMA=y # # DMA Devices # +# CONFIG_INTEL_IOATDMA is not set + +# +# Auxiliary Display support +# + +# +# Virtualization +# # # File systems # CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_POSIX_ACL is not set +# CONFIG_EXT2_FS_SECURITY is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set # CONFIG_EXT4DEV_FS is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set @@ -1720,32 +1386,30 @@ CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y +# CONFIG_REISERFS_FS_XATTR is not set +CONFIG_JFS_FS=y +# CONFIG_JFS_POSIX_ACL is not set # CONFIG_JFS_SECURITY is not set # CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y +# CONFIG_JFS_STATISTICS is not set CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=y -CONFIG_XFS_QUOTA=y -CONFIG_XFS_SECURITY=y -CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_SECURITY is not set +# CONFIG_XFS_POSIX_ACL is not set # CONFIG_XFS_RT is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set -CONFIG_MINIX_FS=m -# CONFIG_ROMFS_FS is not set +# CONFIG_MINIX_FS is not set +CONFIG_ROMFS_FS=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set -CONFIG_QUOTACTL=y CONFIG_DNOTIFY=y -CONFIG_AUTOFS_FS=m -CONFIG_AUTOFS4_FS=m +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set +CONFIG_GENERIC_ACL=y # # CD-ROM/DVD Filesystems @@ -1753,16 +1417,15 @@ CONFIG_AUTOFS4_FS=m CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y -CONFIG_ZISOFS_FS=y -CONFIG_UDF_FS=y +CONFIG_UDF_FS=m CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=y -# CONFIG_MSDOS_FS is not set -CONFIG_VFAT_FS=y +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=m @@ -1777,7 +1440,7 @@ CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_POSIX_ACL=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set @@ -1786,14 +1449,13 @@ CONFIG_RAMFS=y # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set -CONFIG_AFFS_FS=m -# CONFIG_ECRYPT_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_HFS_FS=y +CONFIG_HFSPLUS_FS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_CRAMFS=y +# CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1810,24 +1472,17 @@ CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -# CONFIG_NFSD_V3_ACL is not set -CONFIG_NFSD_V4=y -CONFIG_NFSD_TCP=y +# CONFIG_NFSD is not set CONFIG_ROOT_NFS=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y CONFIG_RPCSEC_GSS_KRB5=y -CONFIG_RPCSEC_GSS_SPKM3=m -CONFIG_SMB_FS=m -CONFIG_SMB_NLS_DEFAULT=y -CONFIG_SMB_NLS_REMOTE="iso8859-1" -CONFIG_CIFS=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -1843,7 +1498,7 @@ CONFIG_AMIGA_PARTITION=y # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -1859,44 +1514,44 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -CONFIG_NLS_CODEPAGE_737=m -CONFIG_NLS_CODEPAGE_775=m -CONFIG_NLS_CODEPAGE_850=m -CONFIG_NLS_CODEPAGE_852=m -CONFIG_NLS_CODEPAGE_855=m -CONFIG_NLS_CODEPAGE_857=m -CONFIG_NLS_CODEPAGE_860=m -CONFIG_NLS_CODEPAGE_861=m -CONFIG_NLS_CODEPAGE_862=m -CONFIG_NLS_CODEPAGE_863=m -CONFIG_NLS_CODEPAGE_864=m -CONFIG_NLS_CODEPAGE_865=m -CONFIG_NLS_CODEPAGE_866=m -CONFIG_NLS_CODEPAGE_869=m -CONFIG_NLS_CODEPAGE_936=m -CONFIG_NLS_CODEPAGE_950=m -CONFIG_NLS_CODEPAGE_932=m -CONFIG_NLS_CODEPAGE_949=m -CONFIG_NLS_CODEPAGE_874=m -CONFIG_NLS_ISO8859_8=m -CONFIG_NLS_CODEPAGE_1250=m -CONFIG_NLS_CODEPAGE_1251=m -CONFIG_NLS_ASCII=m -CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_ISO8859_2=m -CONFIG_NLS_ISO8859_3=m -CONFIG_NLS_ISO8859_4=m -CONFIG_NLS_ISO8859_5=m -CONFIG_NLS_ISO8859_6=m -CONFIG_NLS_ISO8859_7=m -CONFIG_NLS_ISO8859_9=m -CONFIG_NLS_ISO8859_13=m -CONFIG_NLS_ISO8859_14=m -CONFIG_NLS_ISO8859_15=m -CONFIG_NLS_KOI8_R=m -CONFIG_NLS_KOI8_U=m -CONFIG_NLS_UTF8=m +# CONFIG_NLS_CODEPAGE_437 is not set +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=m +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y # # Distributed Lock Manager @@ -1906,22 +1561,22 @@ CONFIG_NLS_UTF8=m # # Library routines # -CONFIG_CRC_CCITT=y -# CONFIG_CRC16 is not set +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m CONFIG_CRC32=y CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y # # Instrumentation Support # # CONFIG_PROFILING is not set +# CONFIG_KPROBES is not set # # Kernel hacking @@ -1930,39 +1585,20 @@ CONFIG_PLIST=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_KERNEL is not set -CONFIG_LOG_BUF_SHIFT=14 # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DEBUG_BUGVERBOSE=y CONFIG_BOOTX_TEXT=y -# CONFIG_SERIAL_TEXT_DEBUG is not set -CONFIG_PPC_EARLY_DEBUG=y -# CONFIG_PPC_EARLY_DEBUG_LPAR is not set -# CONFIG_PPC_EARLY_DEBUG_G5 is not set -# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set -CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE=y -# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set -# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set +CONFIG_SERIAL_TEXT_DEBUG=y +# CONFIG_PPC_EARLY_DEBUG is not set # # Security options # -CONFIG_KEYS=y -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -CONFIG_SECURITY=y -CONFIG_SECURITY_NETWORK=y -# CONFIG_SECURITY_NETWORK_XFRM is not set -CONFIG_SECURITY_CAPABILITIES=y -# CONFIG_SECURITY_ROOTPLUG is not set -CONFIG_SECURITY_SELINUX=y -CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 -CONFIG_SECURITY_SELINUX_DISABLE=y -CONFIG_SECURITY_SELINUX_DEVELOP=y -CONFIG_SECURITY_SELINUX_AVC_STATS=y -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 -# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set -# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set # # Cryptographic options @@ -1970,35 +1606,39 @@ CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_BLKCIPHER=y -CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_NULL=m -CONFIG_CRYPTO_MD4=m +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_SHA1=m +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_LRW is not set CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m -CONFIG_CRYPTO_SERPENT=m +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_ARC4=y -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_ANUBIS=m +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_MICHAEL_MIC=m +# CONFIG_CRYPTO_MICHAEL_MIC is not set CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_TEST=m +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set # # Hardware crypto devices diff --git a/packages/linux/linux-efika_2.6.21+git.bb b/packages/linux/linux-efika_2.6.21+git.bb index 9b01787b13..0dcc8b3304 100644 --- a/packages/linux/linux-efika_2.6.21+git.bb +++ b/packages/linux/linux-efika_2.6.21+git.bb @@ -2,6 +2,9 @@ DESCRIPTION = "Linux Kernel for the EFIKA dev platform" SECTION = "kernel" LICENSE = "GPL" PR = "r0" +PV = "2.6.21+git${SRCDATE}" + +DEFAULT_PREFERENCE = "-1" COMPATIBLE_MACHINE = "efika" diff --git a/packages/linux/linux-epia-2.6.19.2/epia_defconfig b/packages/linux/linux-epia-2.6.19.2/epia_defconfig index db84c236cb..4c681d54f5 100644 --- a/packages/linux/linux-epia-2.6.19.2/epia_defconfig +++ b/packages/linux/linux-epia-2.6.19.2/epia_defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.19.2 -# Fri Jan 26 11:55:32 2007 +# Sun May 27 11:25:48 2007 # CONFIG_X86_32=y CONFIG_GENERIC_TIME=y @@ -464,7 +464,14 @@ CONFIG_BT_HCIUSB_SCO=y # CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set -# CONFIG_IEEE80211 is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +# CONFIG_IEEE80211_CRYPT_TKIP is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -850,7 +857,57 @@ CONFIG_VIA_RHINE=y # # Wireless LAN (non-hamradio) # -# CONFIG_NET_RADIO is not set +CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set + +# +# Obsolete Wireless cards support (pre-802.11) +# +CONFIG_STRIP=m +CONFIG_ARLAN=m +CONFIG_WAVELAN=m + +# +# Wireless 802.11b ISA/PCI cards support +# +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +# CONFIG_IPW2200_RADIOTAP is not set +# CONFIG_IPW2200_PROMISCUOUS is not set +# CONFIG_IPW2200_QOS is not set +# CONFIG_IPW2200_DEBUG is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_ATMEL=m +# CONFIG_PCI_ATMEL is not set + +# +# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support +# +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_BCM43XX=m +CONFIG_BCM43XX_DEBUG=y +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_PIO=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +# CONFIG_BCM43XX_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_NET_WIRELESS=y # # Wan interfaces @@ -972,7 +1029,11 @@ CONFIG_PPDEV=m # Watchdog Cards # # CONFIG_WATCHDOG is not set -# CONFIG_HW_RANDOM is not set +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_GEODE=y +CONFIG_HW_RANDOM_VIA=y # CONFIG_NVRAM is not set # CONFIG_RTC is not set # CONFIG_GEN_RTC is not set @@ -1858,7 +1919,45 @@ CONFIG_DOUBLEFAULT=y # # Cryptographic options # -# CONFIG_CRYPTO is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=m +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_MANAGER=m +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_TWOFISH_586 is not set +# CONFIG_CRYPTO_SERPENT is not set +CONFIG_CRYPTO_AES=m +# CONFIG_CRYPTO_AES_586 is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# +CONFIG_CRYPTO_DEV_PADLOCK=m +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m # # Library routines 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/pptp-linux/pptp-linux/.mtn2git_empty b/packages/linux/linux-handhelds-2.6/h2200/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/pptp-linux/pptp-linux/.mtn2git_empty +++ b/packages/linux/linux-handhelds-2.6/h2200/.mtn2git_empty diff --git a/packages/linux/linux-handhelds-2.6/h2200/defconfig b/packages/linux/linux-handhelds-2.6/h2200/defconfig new file mode 100644 index 0000000000..a1340a6b66 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/h2200/defconfig @@ -0,0 +1,1437 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:16 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +# CONFIG_UID16 is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_BOARD_IRQ_MAP_SMALL is not set +CONFIG_BOARD_IRQ_MAP_BIG=y +CONFIG_DMABOUNCE=y + +# +# Intel PXA2xx Implementations +# +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +# CONFIG_TOSHIBA_TMIO_OHCI is not set +# CONFIG_ARCH_ESERIES is not set +# CONFIG_MACH_A620 is not set +# CONFIG_MACH_A716 is not set +# CONFIG_MACH_A730 is not set +# CONFIG_ARCH_H1900 is not set +CONFIG_ARCH_H2200=y +# CONFIG_MACH_H3900 is not set +# CONFIG_MACH_H4000 is not set +# CONFIG_MACH_H4700 is not set +# CONFIG_MACH_HX2750 is not set +# CONFIG_ARCH_H5400 is not set +# CONFIG_MACH_HIMALAYA is not set +# CONFIG_MACH_HTCUNIVERSAL is not set +# CONFIG_MACH_HTCALPINE is not set +# CONFIG_MACH_MAGICIAN is not set +# CONFIG_MACH_HTCAPACHE is not set +# CONFIG_MACH_BLUEANGEL is not set +# CONFIG_MACH_HTCBEETLES is not set +# CONFIG_MACH_HW6900 is not set +# CONFIG_MACH_HTCATHENA is not set +# CONFIG_ARCH_AXIMX3 is not set +# CONFIG_ARCH_AXIMX5 is not set +# CONFIG_MACH_X50 is not set +# CONFIG_ARCH_ROVERP1 is not set +# CONFIG_ARCH_ROVERP5P is not set +# CONFIG_MACH_XSCALE_PALMLD is not set +# CONFIG_MACH_T3XSCALE is not set +# CONFIG_MACH_RECON is not set +# CONFIG_PXA_SHARPSL is not set +# CONFIG_MACH_TRIZEPS4 is not set +CONFIG_PXA25x=y + +# +# Linux As Bootloader +# +# CONFIG_LAB is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +# CONFIG_IWMMXT is not set +CONFIG_XSCALE_PMU=y + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=y +CONFIG_PCMCIA_DEBUG=y +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +CONFIG_PCMCIA_PXA2XX=y +CONFIG_PCMCIA_H2200=y + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="keepinitrd" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_PXA=y +CONFIG_PXA25x_ALTERNATE_FREQS=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_DPM_DEBUG=y +CONFIG_PM_SYSFS_DEPRECATED=y +CONFIG_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_IP_NF_QUEUE is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=y + +# +# IrDA protocols +# +CONFIG_IRLAN=y +# CONFIG_IRNET is not set +CONFIG_IRCOMM=y +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=y + +# +# Dongle support +# +# CONFIG_DONGLE is not set + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +CONFIG_PXA_FICP=y +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIDTL1 is not set +# CONFIG_BT_HCIBT3C is not set +# CONFIG_BT_HCIBLUECARD is not set +# CONFIG_BT_HCIBTUART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_CHAR is not set +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_SHARP_SL is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_H1900 is not set +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_NAND_HAMCOP=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_SHARPSL is not set +# CONFIG_MTD_NAND_NANDSIM is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECS=y +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# PCMCIA network device support +# +# CONFIG_NET_PCMCIA is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_GPIODEV_KEYS is not set +# CONFIG_GPIODEV_DIAGONAL is not set +CONFIG_KEYBOARD_H2200=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_NAVPOINT is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_ADC is not set +CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y +# CONFIG_TOUCHSCREEN_UCB1400 is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_PXA_COUNT=4 +CONFIG_SERIAL_PXA_IR=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_RS232_SERIAL is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=32 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_SA1100_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_TIHTC is not set + +# +# PCMCIA character devices +# +# CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +CONFIG_I2C=m +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +CONFIG_I2C_PXA=m +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCA9535 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +CONFIG_W1=y + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_DS2482 is not set +CONFIG_W1_MASTER_DS1WM=y + +# +# 1-wire Slaves +# +# CONFIG_W1_SLAVE_THERM is not set +# CONFIG_W1_SLAVE_SMEM is not set +# CONFIG_W1_SLAVE_DS2433 is not set +CONFIG_W1_DS2760=y + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Hardware Monitoring - external power and batteries +# +CONFIG_EXTERNAL_POWER=y +CONFIG_BATTERY=y +CONFIG_PDA_POWER=y +# CONFIG_H2200_BATTERY is not set +CONFIG_DS2760_BATTERY=y +# CONFIG_ADC_BATTERY is not set +CONFIG_APM_POWER=y + +# +# L3 serial bus support +# +# CONFIG_L3 is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# +CONFIG_ADC=y +# CONFIG_ADC_ADS7846_SSP is not set +# CONFIG_ADC_TSC2200_SSP is not set +# CONFIG_ADC_AD7877 is not set +CONFIG_ADC_SAMCOP=y + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +# CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +CONFIG_SOC_HAMCOP=y +CONFIG_SOC_SAMCOP_DMA=y +# CONFIG_SOC_SAMCOP_DMA_DEBUG is not set +CONFIG_SOC_MQ11XX=y +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_H2200 is not set +CONFIG_LEDS_HAMCOP=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HWTIMER=y +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +CONFIG_LEDS_TRIGGER_SHARED=y + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=y +CONFIG_BACKLIGHT_H2200=y +CONFIG_LCD_H2200=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_IMAGEON is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_PXA is not set +# CONFIG_FB_MBX is not set +CONFIG_FB_MQ1100=y +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_VSFB is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +CONFIG_FONT_MINI_4x6=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +CONFIG_SND_H2200=m +CONFIG_SND_PXA2xx_I2SOUND=m +# CONFIG_SND_PXA2XX_AC97 is not set +# CONFIG_SND_RECON is not set + +# +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# +# SoC audio support +# +# CONFIG_SND_SOC is not set +CONFIG_SND_UDA1380=m + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +CONFIG_USB_GADGET_PXA2XX=y +CONFIG_USB_PXA2XX=y +# CONFIG_USB_PXA2XX_SMALL is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_MQ11XX is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=y +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_CHAR is not set +CONFIG_USB_PXA2XX_GPIO=y + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_PXA is not set +# CONFIG_MMC_TMIO is not set +CONFIG_MMC_SAMCOP=y + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_DEBUG=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set + +# +# RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_VM=y +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_CBC is not set +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/vera-fonts/.mtn2git_empty b/packages/linux/linux-handhelds-2.6/h3600/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/vera-fonts/.mtn2git_empty +++ b/packages/linux/linux-handhelds-2.6/h3600/.mtn2git_empty diff --git a/packages/linux/linux-handhelds-2.6/h3600/defconfig b/packages/linux/linux-handhelds-2.6/h3600/defconfig new file mode 100644 index 0000000000..fc4f42fd3c --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/h3600/defconfig @@ -0,0 +1,1267 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:18 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +# CONFIG_GENERIC_TIME is not set +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +# CONFIG_UID16 is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +CONFIG_ARCH_SA1100=y +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_BOARD_IRQ_MAP_SMALL is not set +# CONFIG_BOARD_IRQ_MAP_BIG is not set + +# +# SA11x0 Implementations +# +# CONFIG_SA1100_ASSABET is not set +# CONFIG_SA1100_CERF is not set +# CONFIG_SA1100_COLLIE is not set +# CONFIG_SA1100_H3100 is not set +CONFIG_SA1100_H3600=y +# CONFIG_SA1100_H3800 is not set +CONFIG_SA1100_H3XXX=y +# CONFIG_SA1100_BADGE4 is not set +# CONFIG_SA1100_JORNADA56X is not set +# CONFIG_SA1100_JORNADA720 is not set +# CONFIG_SA1100_XDA is not set +# CONFIG_SA1100_HACKKIT is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_SHANNON is not set +# CONFIG_SA1100_SIMPAD is not set +# CONFIG_SA1100_SSP is not set +# CONFIG_H3600_SLEEVE is not set +CONFIG_SA1100_USB=y +# CONFIG_SA1100_USB_NETLINK is not set +# CONFIG_SA1100_USB_CHAR is not set +CONFIG_IPAQ_H3600_LCD=y + +# +# Linux As Bootloader +# +# CONFIG_LAB is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_SA1100=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4=y +CONFIG_CPU_CACHE_V4WB=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WB=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set + +# +# Bus support +# +CONFIG_ISA=y + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_NODES_SHIFT=2 +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_DISCONTIGMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_NEED_MULTIPLE_NODES=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="keepinitrd" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_SA1110=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_DPM_DEBUG=y +CONFIG_PM_SYSFS_DEPRECATED=y +CONFIG_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_IP_NF_QUEUE is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=y + +# +# IrDA protocols +# +CONFIG_IRLAN=y +# CONFIG_IRNET is not set +CONFIG_IRCOMM=y +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=y + +# +# Dongle support +# +# CONFIG_DONGLE is not set + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_SA1100_FIR is not set +CONFIG_BT=y +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_CHAR is not set +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNP is not set +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_GPIODEV_KEYS is not set +# CONFIG_GPIODEV_DIAGONAL is not set +CONFIG_KEYBOARD_MICRO=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +# CONFIG_MOUSE_NAVPOINT is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +CONFIG_TOUCHSCREEN_IPAQ_MICRO=y +# CONFIG_TOUCHSCREEN_ADC is not set +# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set +# CONFIG_TOUCHSCREEN_UCB1400 is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_RS232_SERIAL is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=32 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_SA1100_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_TIHTC is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Hardware Monitoring - external power and batteries +# +# CONFIG_EXTERNAL_POWER is not set +# CONFIG_BATTERY is not set + +# +# L3 serial bus support +# +# CONFIG_L3 is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# +CONFIG_ADC=y +# CONFIG_ADC_ADS7846_SSP is not set +# CONFIG_ADC_TSC2200_SSP is not set +# CONFIG_ADC_AD7877 is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +CONFIG_IPAQ_MICRO=y +# CONFIG_HTC_ASIC2 is not set +# CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set + +# +# Multimedia Capabilities Port drivers +# +# CONFIG_MCP_SA11X0 is not set + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HWTIMER=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +CONFIG_LEDS_TRIGGER_SHARED=y + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +CONFIG_FB_SA1100=y +# CONFIG_FB_IMAGEON is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_VSFB is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +CONFIG_FONT_MINI_4x6=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +# CONFIG_SND is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_MQ11XX is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_TMIO is not set +# CONFIG_MMC_SAMCOP is not set + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_DEBUG=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set + +# +# RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_VM=y +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_CBC is not set +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-handhelds-2.6/h3800/.mtn2git_empty b/packages/linux/linux-handhelds-2.6/h3800/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/h3800/.mtn2git_empty diff --git a/packages/linux/linux-handhelds-2.6/h3800/defconfig b/packages/linux/linux-handhelds-2.6/h3800/defconfig new file mode 100644 index 0000000000..78796cba28 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/h3800/defconfig @@ -0,0 +1,1268 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:21 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +# CONFIG_GENERIC_TIME is not set +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +# CONFIG_UID16 is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +CONFIG_ARCH_SA1100=y +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_BOARD_IRQ_MAP_SMALL is not set +# CONFIG_BOARD_IRQ_MAP_BIG is not set + +# +# SA11x0 Implementations +# +# CONFIG_SA1100_ASSABET is not set +# CONFIG_SA1100_CERF is not set +# CONFIG_SA1100_COLLIE is not set +# CONFIG_SA1100_H3100 is not set +CONFIG_SA1100_H3600=y +# CONFIG_SA1100_H3800 is not set +CONFIG_SA1100_H3XXX=y +# CONFIG_SA1100_BADGE4 is not set +# CONFIG_SA1100_JORNADA56X is not set +# CONFIG_SA1100_JORNADA720 is not set +# CONFIG_SA1100_XDA is not set +# CONFIG_SA1100_HACKKIT is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_SHANNON is not set +# CONFIG_SA1100_SIMPAD is not set +# CONFIG_SA1100_SSP is not set +# CONFIG_H3600_SLEEVE is not set +CONFIG_SA1100_USB=y +# CONFIG_SA1100_USB_NETLINK is not set +# CONFIG_SA1100_USB_CHAR is not set +# CONFIG_IPAQ_H3600_LCD is not set + +# +# Linux As Bootloader +# +# CONFIG_LAB is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_SA1100=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4=y +CONFIG_CPU_CACHE_V4WB=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WB=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set + +# +# Bus support +# +CONFIG_ISA=y + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_NODES_SHIFT=2 +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_DISCONTIGMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_NEED_MULTIPLE_NODES=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="keepinitrd" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_SA1110=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_DPM_DEBUG=y +CONFIG_PM_SYSFS_DEPRECATED=y +CONFIG_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_IP_NF_QUEUE is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=y + +# +# IrDA protocols +# +CONFIG_IRLAN=y +# CONFIG_IRNET is not set +CONFIG_IRCOMM=y +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=y + +# +# Dongle support +# +# CONFIG_DONGLE is not set + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_SA1100_FIR is not set +CONFIG_BT=y +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_CHAR is not set +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNP is not set +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_GPIODEV_KEYS is not set +# CONFIG_GPIODEV_DIAGONAL is not set +CONFIG_KEYBOARD_ASIC2=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +# CONFIG_MOUSE_NAVPOINT is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +CONFIG_TOUCHSCREEN_ASIC2=y +# CONFIG_TOUCHSCREEN_ADC is not set +# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set +# CONFIG_TOUCHSCREEN_UCB1400 is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_RS232_SERIAL is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=32 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_SA1100_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_TIHTC is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Hardware Monitoring - external power and batteries +# +# CONFIG_EXTERNAL_POWER is not set +# CONFIG_BATTERY is not set + +# +# L3 serial bus support +# +# CONFIG_L3 is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# +CONFIG_ADC=y +# CONFIG_ADC_ADS7846_SSP is not set +# CONFIG_ADC_TSC2200_SSP is not set +# CONFIG_ADC_AD7877 is not set +CONFIG_ADC_ASIC2=y + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +# CONFIG_IPAQ_MICRO is not set +CONFIG_HTC_ASIC2=y +# CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set + +# +# Multimedia Capabilities Port drivers +# +# CONFIG_MCP_SA11X0 is not set + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HWTIMER=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +CONFIG_LEDS_TRIGGER_SHARED=y + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +CONFIG_FB_SA1100=y +# CONFIG_FB_IMAGEON is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_VSFB is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +CONFIG_FONT_MINI_4x6=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +# CONFIG_SND is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_MQ11XX is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_TMIO is not set +# CONFIG_MMC_SAMCOP is not set + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_DEBUG=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set + +# +# RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_VM=y +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_CBC is not set +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-handhelds-2.6/h3900/defconfig b/packages/linux/linux-handhelds-2.6/h3900/defconfig index 297be698cb..9fcc2a00bc 100644 --- a/packages/linux/linux-handhelds-2.6/h3900/defconfig +++ b/packages/linux/linux-handhelds-2.6/h3900/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh2 -# Thu May 17 14:41:30 2007 +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:23 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -248,6 +248,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set # # CPU Frequency scaling @@ -402,14 +403,15 @@ CONFIG_IRDA=y # IrDA protocols # CONFIG_IRLAN=y +# CONFIG_IRNET is not set CONFIG_IRCOMM=y -# CONFIG_IRDA_ULTRA is not set +CONFIG_IRDA_ULTRA=y # # IrDA options # -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y CONFIG_IRDA_DEBUG=y # @@ -479,7 +481,8 @@ CONFIG_FW_LOADER=y # Memory Technology Devices (MTD) # CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 # CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set @@ -609,7 +612,55 @@ CONFIG_MTD_CFI_I2=y # # Network device support # -# CONFIG_NETDEVICES is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set @@ -659,9 +710,6 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_WM9705 is not set -# CONFIG_TOUCHSCREEN_WM9712 is not set -# CONFIG_TOUCHSCREEN_WM9713 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set @@ -797,21 +845,6 @@ CONFIG_I2C_PXA=m # CONFIG_L3 is not set # -# SoC drivers -# -# CONFIG_SOC_MQ11XX is not set -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6387XB is not set -# CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_SAMCOP is not set -# CONFIG_SOC_HAMCOP is not set -CONFIG_HTC_ASIC2=y -CONFIG_HTC_ASIC3=y -# CONFIG_HTC_ASIC3_DS1WM is not set -# CONFIG_SOC_TSC2101 is not set -# CONFIG_SOC_TSC2200 is not set - -# # Misc devices # @@ -828,6 +861,17 @@ CONFIG_ADC_ASIC2=y # Multifunction device drivers # # CONFIG_MFD_SM501 is not set +CONFIG_HTC_ASIC2=y +CONFIG_HTC_ASIC3=y +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set # # LED devices @@ -1117,8 +1161,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1209,7 +1252,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set CONFIG_DEBUG_VM=y # CONFIG_DEBUG_LIST is not set @@ -1247,7 +1290,7 @@ CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_ECB is not set +CONFIG_CRYPTO_ECB=m # CONFIG_CRYPTO_CBC is not set CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set @@ -1260,7 +1303,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_ARC4 is not set +CONFIG_CRYPTO_ARC4=m # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_DEFLATE=y diff --git a/packages/linux/linux-handhelds-2.6/h4000/defconfig b/packages/linux/linux-handhelds-2.6/h4000/defconfig index 3662bc062d..c5f719ffdc 100644 --- a/packages/linux/linux-handhelds-2.6/h4000/defconfig +++ b/packages/linux/linux-handhelds-2.6/h4000/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh2 -# Thu May 17 14:41:32 2007 +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:25 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -254,6 +254,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set # # CPU Frequency scaling @@ -410,13 +411,13 @@ CONFIG_IRDA=y CONFIG_IRLAN=y # CONFIG_IRNET is not set CONFIG_IRCOMM=y -# CONFIG_IRDA_ULTRA is not set +CONFIG_IRDA_ULTRA=y # # IrDA options # -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y CONFIG_IRDA_DEBUG=y # @@ -489,7 +490,8 @@ CONFIG_FW_LOADER=y # Memory Technology Devices (MTD) # CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 # CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set @@ -736,9 +738,6 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_WM9705 is not set -# CONFIG_TOUCHSCREEN_WM9712 is not set -# CONFIG_TOUCHSCREEN_WM9713 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set @@ -876,21 +875,6 @@ CONFIG_APM_POWER=y # CONFIG_L3 is not set # -# SoC drivers -# -# CONFIG_SOC_MQ11XX is not set -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6387XB is not set -# CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_SAMCOP is not set -# CONFIG_SOC_HAMCOP is not set -# CONFIG_HTC_ASIC2 is not set -CONFIG_HTC_ASIC3=y -# CONFIG_HTC_ASIC3_DS1WM is not set -# CONFIG_SOC_TSC2101 is not set -# CONFIG_SOC_TSC2200 is not set - -# # Misc devices # @@ -906,6 +890,17 @@ CONFIG_ADC_ADS7846_SSP=y # Multifunction device drivers # # CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +CONFIG_HTC_ASIC3=y +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set # # LED devices @@ -1218,8 +1213,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1310,7 +1304,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set CONFIG_DEBUG_VM=y # CONFIG_DEBUG_LIST is not set diff --git a/packages/linux/linux-handhelds-2.6/h5000/defconfig b/packages/linux/linux-handhelds-2.6/h5000/defconfig index 20685be413..daf572fcd2 100644 --- a/packages/linux/linux-handhelds-2.6/h5000/defconfig +++ b/packages/linux/linux-handhelds-2.6/h5000/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh2 -# Thu May 17 14:41:35 2007 +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:28 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -250,6 +250,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set # # CPU Frequency scaling @@ -404,14 +405,15 @@ CONFIG_IRDA=y # IrDA protocols # CONFIG_IRLAN=y +# CONFIG_IRNET is not set CONFIG_IRCOMM=y -# CONFIG_IRDA_ULTRA is not set +CONFIG_IRDA_ULTRA=y # # IrDA options # -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y CONFIG_IRDA_DEBUG=y # @@ -481,11 +483,12 @@ CONFIG_FW_LOADER=y # Memory Technology Devices (MTD) # CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set # @@ -536,9 +539,12 @@ CONFIG_MTD_CFI_UTIL=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 # CONFIG_MTD_ARM_INTEGRATOR is not set -CONFIG_MTD_IPAQ=y +# CONFIG_MTD_IPAQ is not set # CONFIG_MTD_SHARP_SL is not set # CONFIG_MTD_PLATRAM is not set @@ -625,7 +631,55 @@ CONFIG_MTD_IPAQ=y # # Network device support # -# CONFIG_NETDEVICES is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set @@ -673,13 +727,9 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_WM9705 is not set -# CONFIG_TOUCHSCREEN_WM9712 is not set -# CONFIG_TOUCHSCREEN_WM9713 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set -CONFIG_TOUCHSCREEN_SAMCOP=y # CONFIG_TOUCHSCREEN_ADC is not set CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y # CONFIG_TOUCHSCREEN_UCB1400 is not set @@ -794,23 +844,6 @@ CONFIG_APM_POWER=y # CONFIG_L3 is not set # -# SoC drivers -# -CONFIG_SOC_MQ11XX=y -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6387XB is not set -# CONFIG_SOC_TC6393XB is not set -CONFIG_SOC_SAMCOP=y -# CONFIG_SOC_HAMCOP is not set -CONFIG_SOC_SAMCOP_DMA=y -# CONFIG_SOC_SAMCOP_DMA_DEBUG is not set -# CONFIG_HTC_ASIC2 is not set -# CONFIG_HTC_ASIC3 is not set -# CONFIG_HTC_ASIC3_DS1WM is not set -# CONFIG_SOC_TSC2101 is not set -# CONFIG_SOC_TSC2200 is not set - -# # Misc devices # @@ -827,6 +860,19 @@ CONFIG_ADC_SAMCOP=y # Multifunction device drivers # # CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +# CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_ASIC3_DS1WM is not set +CONFIG_SOC_SAMCOP=y +# CONFIG_SOC_HAMCOP is not set +CONFIG_SOC_SAMCOP_DMA=y +# CONFIG_SOC_SAMCOP_DMA_DEBUG is not set +CONFIG_SOC_MQ11XX=y +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set # # LED devices @@ -1109,8 +1155,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1201,7 +1246,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set CONFIG_DEBUG_VM=y # CONFIG_DEBUG_LIST is not set @@ -1239,7 +1284,7 @@ CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_ECB is not set +CONFIG_CRYPTO_ECB=m # CONFIG_CRYPTO_CBC is not set CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set @@ -1252,7 +1297,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_ARC4 is not set +CONFIG_CRYPTO_ARC4=m # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_DEFLATE=y diff --git a/packages/linux/linux-handhelds-2.6/htcblueangel/.mtn2git_empty b/packages/linux/linux-handhelds-2.6/htcblueangel/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/htcblueangel/.mtn2git_empty diff --git a/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig b/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig new file mode 100644 index 0000000000..138306de72 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig @@ -0,0 +1,1462 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:35 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +# CONFIG_UID16 is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_BOARD_IRQ_MAP_SMALL is not set +CONFIG_BOARD_IRQ_MAP_BIG=y + +# +# Intel PXA2xx Implementations +# +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +# CONFIG_TOSHIBA_TMIO_OHCI is not set +# CONFIG_ARCH_ESERIES is not set +# CONFIG_MACH_A620 is not set +# CONFIG_MACH_A716 is not set +# CONFIG_MACH_A730 is not set +# CONFIG_ARCH_H1900 is not set +# CONFIG_ARCH_H2200 is not set +# CONFIG_MACH_H3900 is not set +# CONFIG_MACH_H4000 is not set +# CONFIG_MACH_H4700 is not set +# CONFIG_MACH_HX2750 is not set +# CONFIG_ARCH_H5400 is not set +# CONFIG_MACH_HIMALAYA is not set +# CONFIG_MACH_HTCUNIVERSAL is not set +# CONFIG_MACH_HTCALPINE is not set +# CONFIG_MACH_MAGICIAN is not set +# CONFIG_MACH_HTCAPACHE is not set +CONFIG_MACH_BLUEANGEL=y +CONFIG_MACH_BLUEANGEL_LCD=y +CONFIG_MACH_BLUEANGEL_BACKLIGHT=y +CONFIG_MACH_BLUEANGEL_DS1WM=y +CONFIG_MACH_BLUEANGEL_PCMCIA=y +CONFIG_MACH_BLUEANGEL_SUSPEND=y +CONFIG_MACH_BLUEANGEL_LEDS=y +CONFIG_MACH_BLUEANGEL_ASIC3_LEDS=y +CONFIG_MACH_BLUEANGEL_KEYPAD=y +CONFIG_MACH_BLUEANGEL_POWER=y +CONFIG_MACH_BLUEANGEL_ROM=y +CONFIG_MACH_BLUEANGEL_DPRAM=y +CONFIG_MACH_BLUEANGEL_PHONE=m +# CONFIG_MACH_HTCBEETLES is not set +# CONFIG_MACH_HW6900 is not set +# CONFIG_MACH_HTCATHENA is not set +# CONFIG_ARCH_AXIMX3 is not set +# CONFIG_ARCH_AXIMX5 is not set +# CONFIG_MACH_X30 is not set +# CONFIG_MACH_X50 is not set +# CONFIG_ARCH_ROVERP1 is not set +# CONFIG_ARCH_ROVERP5P is not set +# CONFIG_MACH_XSCALE_PALMLD is not set +# CONFIG_MACH_T3XSCALE is not set +# CONFIG_MACH_RECON is not set +# CONFIG_PXA_SHARPSL is not set +# CONFIG_MACH_TRIZEPS4 is not set +CONFIG_PXA25x=y +CONFIG_PXA26x=y +CONFIG_PXA_SSP=y + +# +# Linux As Bootloader +# +# CONFIG_LAB is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +# CONFIG_IWMMXT is not set +CONFIG_XSCALE_PMU=y + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="keepinitrd" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_PXA=y +CONFIG_PXA25x_ALTERNATE_FREQS=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_DPM_DEBUG=y +CONFIG_PM_SYSFS_DEPRECATED=y +CONFIG_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_IP_NF_QUEUE is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=y + +# +# IrDA protocols +# +CONFIG_IRLAN=y +# CONFIG_IRNET is not set +CONFIG_IRCOMM=y +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=y + +# +# Dongle support +# +# CONFIG_DONGLE is not set + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +CONFIG_PXA_FICP=y +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set +CONFIG_WIRELESS_EXT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=m +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set +# CONFIG_MTD_XIP is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +# CONFIG_MTD_IPAQ is not set +# CONFIG_MTD_SHARP_SL is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP is not set +# CONFIG_HOSTAP is not set +CONFIG_ACX=m +CONFIG_ACX_MEM=y +CONFIG_ACX_HTCBLUEANGEL=m + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_GPIODEV_KEYS is not set +# CONFIG_GPIODEV_DIAGONAL is not set +CONFIG_KEYBOARD_ASIC3=y +CONFIG_KEYBOARD_TSC2200=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_NAVPOINT is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +CONFIG_TOUCHSCREEN_TSC2200=y +# CONFIG_TOUCHSCREEN_ADC is not set +CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=y +# CONFIG_TOUCHSCREEN_UCB1400 is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_PXA_COUNT=4 +CONFIG_SERIAL_PXA_IR=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_RS232_SERIAL is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=32 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_SA1100_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +CONFIG_TIHTC=m +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +CONFIG_I2C=m +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +CONFIG_I2C_PXA=m +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCA9535 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +CONFIG_W1=y + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_DS2482 is not set +CONFIG_W1_MASTER_DS1WM=y + +# +# 1-wire Slaves +# +# CONFIG_W1_SLAVE_THERM is not set +# CONFIG_W1_SLAVE_SMEM is not set +# CONFIG_W1_SLAVE_DS2433 is not set +CONFIG_W1_DS2760=y + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Hardware Monitoring - external power and batteries +# +CONFIG_EXTERNAL_POWER=y +CONFIG_BATTERY=y +CONFIG_PDA_POWER=y +CONFIG_DS2760_BATTERY=y +# CONFIG_ADC_BATTERY is not set +CONFIG_APM_POWER=y + +# +# L3 serial bus support +# +# CONFIG_L3 is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# +CONFIG_ADC=y +# CONFIG_ADC_ADS7846_SSP is not set +CONFIG_ADC_TSC2200_SSP=y +# CONFIG_ADC_AD7877 is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +CONFIG_HTC_ASIC3=y +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +CONFIG_SOC_TSC2200=y + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_ASIC3=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HWTIMER=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +CONFIG_LEDS_TRIGGER_SHARED=y + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_IMAGEON is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_PXA is not set +# CONFIG_FB_MBX is not set +CONFIG_FB_W100=y +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_VSFB is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +CONFIG_FONT_MINI_4x6=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +# CONFIG_SND_PXA2XX_AC97 is not set +# CONFIG_SND_RECON is not set + +# +# SoC audio support +# +CONFIG_SND_SOC=m + +# +# SoC Platforms +# + +# +# SoC Audio for the Atmel AT91 +# + +# +# SoC Audio for the Intel PXA2xx +# +CONFIG_SND_PXA2XX_SOC=m +CONFIG_SND_PXA2XX_SOC_I2S=m +CONFIG_SND_PXA2XX_SOC_SSP=m +# CONFIG_SND_PXA2XX_SOC_MAGICIAN is not set +CONFIG_SND_PXA2XX_SOC_BLUEANGEL=m +# CONFIG_SND_PXA2XX_SOC_H5000 is not set + +# +# SoC Audio for the Freescale i.MX +# + +# +# SoC Audio for the Samsung S3C24XX +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8772 is not set +# CONFIG_SND_SOC_WM8971 is not set +# CONFIG_SND_SOC_WM8956 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8976 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8980 is not set +# CONFIG_SND_SOC_WM9713 is not set +# CONFIG_SND_SOC_WM9712 is not set +CONFIG_SND_SOC_UDA1380=m +# CONFIG_SND_SOC_AK4535 is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +CONFIG_USB_GADGET_PXA2XX=y +CONFIG_USB_PXA2XX=y +# CONFIG_USB_PXA2XX_SMALL is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_MQ11XX is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=y +CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_CHAR is not set +CONFIG_USB_PXA2XX_GPIO=y + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_PXA is not set +# CONFIG_MMC_TMIO is not set +# CONFIG_MMC_SAMCOP is not set +CONFIG_MMC_ASIC3=y + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_DEBUG=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set + +# +# RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_VM=y +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_CBC is not set +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig b/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig index eaffec6517..843e9cca66 100644 --- a/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig +++ b/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh2 -# Thu May 17 14:41:38 2007 +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:37 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -257,6 +257,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set # # CPU Frequency scaling @@ -413,13 +414,13 @@ CONFIG_IRDA=y CONFIG_IRLAN=y # CONFIG_IRNET is not set CONFIG_IRCOMM=y -# CONFIG_IRDA_ULTRA is not set +CONFIG_IRDA_ULTRA=y # # IrDA options # -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y CONFIG_IRDA_DEBUG=y # @@ -492,7 +493,8 @@ CONFIG_FW_LOADER=y # Memory Technology Devices (MTD) # CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 # CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set @@ -730,9 +732,6 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_WM9705 is not set -# CONFIG_TOUCHSCREEN_WM9712 is not set -# CONFIG_TOUCHSCREEN_WM9713 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set @@ -885,21 +884,6 @@ CONFIG_APM_POWER=y # CONFIG_L3 is not set # -# SoC drivers -# -# CONFIG_SOC_MQ11XX is not set -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6387XB is not set -# CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_SAMCOP is not set -# CONFIG_SOC_HAMCOP is not set -# CONFIG_HTC_ASIC2 is not set -CONFIG_HTC_ASIC3=y -CONFIG_HTC_ASIC3_DS1WM=y -# CONFIG_SOC_TSC2101 is not set -# CONFIG_SOC_TSC2200 is not set - -# # Misc devices # @@ -915,6 +899,17 @@ CONFIG_ADC=y # Multifunction device drivers # # CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +CONFIG_HTC_ASIC3=y +CONFIG_HTC_ASIC3_DS1WM=y +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set # # LED devices @@ -1087,7 +1082,7 @@ CONFIG_USB_PXA27X=y # CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=y -# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_ETH_RNDIS=y # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FILE_STORAGE is not set # CONFIG_USB_G_SERIAL is not set @@ -1229,8 +1224,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1321,7 +1315,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set CONFIG_DEBUG_VM=y # CONFIG_DEBUG_LIST is not set diff --git a/packages/linux/linux-handhelds-2.6/htcwallaby/.mtn2git_empty b/packages/linux/linux-handhelds-2.6/htcwallaby/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/htcwallaby/.mtn2git_empty diff --git a/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig b/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig new file mode 100644 index 0000000000..7d67d90052 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig @@ -0,0 +1,1269 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:39 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +# CONFIG_GENERIC_TIME is not set +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +# CONFIG_UID16 is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +CONFIG_ARCH_SA1100=y +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_BOARD_IRQ_MAP_SMALL is not set +# CONFIG_BOARD_IRQ_MAP_BIG is not set + +# +# SA11x0 Implementations +# +# CONFIG_SA1100_ASSABET is not set +# CONFIG_SA1100_CERF is not set +# CONFIG_SA1100_COLLIE is not set +# CONFIG_SA1100_H3100 is not set +# CONFIG_SA1100_H3600 is not set +# CONFIG_SA1100_H3800 is not set +# CONFIG_SA1100_BADGE4 is not set +# CONFIG_SA1100_JORNADA56X is not set +# CONFIG_SA1100_JORNADA720 is not set +CONFIG_SA1100_XDA=y +# CONFIG_SA1100_HACKKIT is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_SHANNON is not set +# CONFIG_SA1100_SIMPAD is not set +# CONFIG_SA1100_SSP is not set +CONFIG_SA1100_USB=y +# CONFIG_SA1100_USB_NETLINK is not set +# CONFIG_SA1100_USB_CHAR is not set + +# +# Linux As Bootloader +# +# CONFIG_LAB is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_SA1100=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4=y +CONFIG_CPU_CACHE_V4WB=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WB=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set + +# +# Bus support +# +CONFIG_ISA=y + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_NODES_SHIFT=2 +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_DISCONTIGMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_NEED_MULTIPLE_NODES=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="keepinitrd" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_DPM_DEBUG=y +CONFIG_PM_SYSFS_DEPRECATED=y +CONFIG_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_IP_NF_QUEUE is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +CONFIG_IRDA=y + +# +# IrDA protocols +# +CONFIG_IRLAN=y +# CONFIG_IRNET is not set +CONFIG_IRCOMM=y +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=y + +# +# Dongle support +# +# CONFIG_DONGLE is not set + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_SA1100_FIR is not set +CONFIG_BT=y +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_CHAR is not set +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_CFI_INTELEXT is not set +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +CONFIG_MTD_SA1100=y +# CONFIG_MTD_IPAQ is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNP is not set +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_GPIODEV_KEYS is not set +# CONFIG_GPIODEV_DIAGONAL is not set +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +# CONFIG_MOUSE_NAVPOINT is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_ADC is not set +# CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set +# CONFIG_TOUCHSCREEN_UCB1400 is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_RS232_SERIAL is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=32 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_SA1100_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_TIHTC is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Hardware Monitoring - external power and batteries +# +# CONFIG_EXTERNAL_POWER is not set +# CONFIG_BATTERY is not set + +# +# L3 serial bus support +# +# CONFIG_L3 is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# +CONFIG_ADC=y +# CONFIG_ADC_ADS7846_SSP is not set +# CONFIG_ADC_TSC2200_SSP is not set +# CONFIG_ADC_AD7877 is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +# CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set + +# +# Multimedia Capabilities Port drivers +# +# CONFIG_MCP_SA11X0 is not set + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HWTIMER=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +CONFIG_LEDS_TRIGGER_SHARED=y + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +CONFIG_FB_SA1100=y +# CONFIG_FB_IMAGEON is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_VSFB is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +CONFIG_FONT_MINI_4x6=y +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +# CONFIG_SND is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_MQ11XX is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_TMIO is not set +# CONFIG_MMC_SAMCOP is not set + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_DEBUG=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set + +# +# RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_CODEPAGE_1251=y +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_VM=y +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +# CONFIG_CRYPTO_CBC is not set +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_ARC4=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-handhelds-2.6/hx4700/defconfig b/packages/linux/linux-handhelds-2.6/hx4700/defconfig index f17a7bc626..03266766ce 100644 --- a/packages/linux/linux-handhelds-2.6/hx4700/defconfig +++ b/packages/linux/linux-handhelds-2.6/hx4700/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh2 -# Thu May 17 14:41:33 2007 +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:30 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -263,6 +263,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set # # CPU Frequency scaling @@ -419,13 +420,13 @@ CONFIG_IRDA=y CONFIG_IRLAN=y # CONFIG_IRNET is not set CONFIG_IRCOMM=y -# CONFIG_IRDA_ULTRA is not set +CONFIG_IRDA_ULTRA=y # # IrDA options # -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y CONFIG_IRDA_DEBUG=y # @@ -502,7 +503,8 @@ CONFIG_FW_LOADER=y # Memory Technology Devices (MTD) # CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 CONFIG_MTD_CONCAT=y CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set @@ -801,9 +803,6 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_WM9705 is not set -# CONFIG_TOUCHSCREEN_WM9712 is not set -# CONFIG_TOUCHSCREEN_WM9713 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set @@ -963,21 +962,6 @@ CONFIG_APM_POWER=y # CONFIG_L3 is not set # -# SoC drivers -# -# CONFIG_SOC_MQ11XX is not set -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6387XB is not set -# CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_SAMCOP is not set -# CONFIG_SOC_HAMCOP is not set -# CONFIG_HTC_ASIC2 is not set -CONFIG_HTC_ASIC3=y -CONFIG_HTC_ASIC3_DS1WM=y -# CONFIG_SOC_TSC2101 is not set -# CONFIG_SOC_TSC2200 is not set - -# # Misc devices # @@ -993,6 +977,17 @@ CONFIG_ADC_ADS7846_SSP=y # Multifunction device drivers # # CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +CONFIG_HTC_ASIC3=y +CONFIG_HTC_ASIC3_DS1WM=y +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set # # LED devices @@ -1173,7 +1168,7 @@ CONFIG_USB_PXA27X=y # CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=y -# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_ETH_RNDIS=y # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FILE_STORAGE is not set # CONFIG_USB_G_SERIAL is not set @@ -1323,8 +1318,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1415,7 +1409,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set CONFIG_DEBUG_VM=y # CONFIG_DEBUG_LIST is not set diff --git a/packages/linux/linux-handhelds-2.6/magician/defconfig b/packages/linux/linux-handhelds-2.6/magician/defconfig index 3d25d76f83..745bba4712 100644 --- a/packages/linux/linux-handhelds-2.6/magician/defconfig +++ b/packages/linux/linux-handhelds-2.6/magician/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh2 -# Thu May 17 14:41:37 2007 +# Linux kernel version: 2.6.21-hh6 +# Mon Jun 11 09:57:32 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -164,12 +164,11 @@ CONFIG_BOARD_IRQ_MAP_SMALL=y # CONFIG_MACH_HTCALPINE is not set CONFIG_MACH_MAGICIAN=y CONFIG_MAGICIAN_PM=y -CONFIG_MAGICIAN_TS=y +CONFIG_MAGICIAN_TS=m CONFIG_MAGICIAN_LCD=y CONFIG_MAGICIAN_CPLD=y -# CONFIG_MAGICIAN_DS1WM is not set -# CONFIG_MAGICIAN_PHONE is not set -# CONFIG_MAGICIAN_FLASH is not set +CONFIG_MAGICIAN_DS1WM=m +CONFIG_MAGICIAN_PHONE=m # CONFIG_MACH_HTCAPACHE is not set # CONFIG_MACH_BLUEANGEL is not set # CONFIG_MACH_HTCBEETLES is not set @@ -186,6 +185,7 @@ CONFIG_MAGICIAN_CPLD=y # CONFIG_PXA_SHARPSL is not set # CONFIG_MACH_TRIZEPS4 is not set CONFIG_PXA27x=y +CONFIG_PXA_SSP=m CONFIG_PXA_SUSPEND_SAVE_EXTRA_REGS=y CONFIG_PXA27x_VOLTAGE=m CONFIG_PXA27x_VOLTAGE_MAX158xx=m @@ -254,6 +254,7 @@ CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set # # CPU Frequency scaling @@ -408,14 +409,15 @@ CONFIG_IRDA=y # IrDA protocols # CONFIG_IRLAN=y +# CONFIG_IRNET is not set CONFIG_IRCOMM=y -# CONFIG_IRDA_ULTRA is not set +CONFIG_IRDA_ULTRA=y # # IrDA options # -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y CONFIG_IRDA_DEBUG=y # @@ -444,7 +446,10 @@ CONFIG_IRTTY_SIR=y # # FIR device drivers # +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set CONFIG_PXA_FICP=y +# CONFIG_MCS_FIR is not set CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m @@ -458,7 +463,12 @@ CONFIG_BT_HIDP=m # # Bluetooth device drivers # +CONFIG_BT_HCIUSB=m +# CONFIG_BT_HCIUSB_SCO is not set # CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_IEEE80211 is not set @@ -485,8 +495,9 @@ CONFIG_FW_LOADER=y # Memory Technology Devices (MTD) # CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set CONFIG_MTD_CMDLINE_PARTS=y @@ -495,9 +506,10 @@ CONFIG_MTD_CMDLINE_PARTS=y # # User Modules And Translation Layers # -# CONFIG_MTD_CHAR is not set -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set @@ -507,14 +519,10 @@ CONFIG_MTD_BLOCK=y # # RAM/ROM/Flash chip drivers # -CONFIG_MTD_CFI=y +CONFIG_MTD_CFI=m # CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -CONFIG_MTD_CFI_ADV_OPTIONS=y -CONFIG_MTD_CFI_NOSWAP=y -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -CONFIG_MTD_CFI_GEOMETRY=y +CONFIG_MTD_GEN_PROBE=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y @@ -525,11 +533,10 @@ CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_OTP is not set -CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_INTELEXT=m # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=y +CONFIG_MTD_CFI_UTIL=m # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set @@ -540,9 +547,12 @@ CONFIG_MTD_CFI_UTIL=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 # CONFIG_MTD_ARM_INTEGRATOR is not set -CONFIG_MTD_IPAQ=y +# CONFIG_MTD_IPAQ is not set # CONFIG_MTD_SHARP_SL is not set # CONFIG_MTD_PLATRAM is not set @@ -587,6 +597,7 @@ CONFIG_MTD_IPAQ=y # CONFIG_BLK_DEV_COW_COMMON is not set # CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -629,7 +640,55 @@ CONFIG_MTD_IPAQ=y # # Network device support # -# CONFIG_NETDEVICES is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set @@ -673,7 +732,17 @@ CONFIG_INPUT_MOUSE=y # CONFIG_MOUSE_NAVPOINT is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_ADC is not set +CONFIG_TOUCHSCREEN_ADC_DEBOUNCE=m +# CONFIG_TOUCHSCREEN_UCB1400 is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=m @@ -701,11 +770,10 @@ CONFIG_HW_CONSOLE=y # Non-8250 serial port support # CONFIG_SERIAL_PXA=y -CONFIG_SERIAL_PXA_CONSOLE=y +# CONFIG_SERIAL_PXA_CONSOLE is not set CONFIG_SERIAL_PXA_COUNT=4 CONFIG_SERIAL_PXA_IR=y CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_RS232_SERIAL is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y @@ -725,7 +793,7 @@ CONFIG_LEGACY_PTY_COUNT=32 # CONFIG_SA1100_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set -# CONFIG_TIHTC is not set +CONFIG_TIHTC=m # CONFIG_RAW_DRIVER is not set # @@ -736,7 +804,42 @@ CONFIG_LEGACY_PTY_COUNT=32 # # I2C support # -# CONFIG_I2C is not set +CONFIG_I2C=m +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +CONFIG_I2C_PXA=m +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCA9535 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set # # SPI support @@ -752,6 +855,8 @@ CONFIG_W1=y # # 1-wire Bus Masters # +# CONFIG_W1_MASTER_DS2490 is not set +# CONFIG_W1_MASTER_DS2482 is not set CONFIG_W1_MASTER_DS1WM=y # @@ -784,21 +889,6 @@ CONFIG_APM_POWER=y # CONFIG_L3 is not set # -# SoC drivers -# -# CONFIG_SOC_MQ11XX is not set -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6387XB is not set -# CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_SAMCOP is not set -# CONFIG_SOC_HAMCOP is not set -# CONFIG_HTC_ASIC2 is not set -# CONFIG_HTC_ASIC3 is not set -# CONFIG_HTC_ASIC3_DS1WM is not set -# CONFIG_SOC_TSC2101 is not set -# CONFIG_SOC_TSC2200 is not set - -# # Misc devices # @@ -806,7 +896,7 @@ CONFIG_APM_POWER=y # Multimedia Capabilities Port drivers # CONFIG_ADC=y -# CONFIG_ADC_ADS7846_SSP is not set +CONFIG_ADC_ADS7846_SSP=m # CONFIG_ADC_TSC2200_SSP is not set # CONFIG_ADC_AD7877 is not set @@ -814,6 +904,17 @@ CONFIG_ADC=y # Multifunction device drivers # # CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +# CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2101 is not set +# CONFIG_SOC_TSC2200 is not set # # LED devices @@ -844,6 +945,7 @@ CONFIG_LEDS_TRIGGER_SHARED=y # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set # # Graphics support @@ -907,13 +1009,13 @@ CONFIG_SOUND=y # # Advanced Linux Sound Architecture # -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y # CONFIG_SND_SEQUENCER is not set CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y CONFIG_SND_PCM_OSS_PLUGINS=y # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y @@ -933,11 +1035,60 @@ CONFIG_SND_VERBOSE_PROCFS=y # ALSA ARM devices # # CONFIG_SND_PXA2XX_AC97 is not set +# CONFIG_SND_RECON is not set + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set # # SoC audio support # -# CONFIG_SND_SOC is not set +CONFIG_SND_SOC=m + +# +# SoC Platforms +# + +# +# SoC Audio for the Atmel AT91 +# + +# +# SoC Audio for the Intel PXA2xx +# +CONFIG_SND_PXA2XX_SOC=m +CONFIG_SND_PXA2XX_SOC_I2S=m +CONFIG_SND_PXA2XX_SOC_SSP=m +CONFIG_SND_PXA2XX_SOC_MAGICIAN=m +# CONFIG_SND_PXA2XX_SOC_BLUEANGEL is not set +# CONFIG_SND_PXA2XX_SOC_H5000 is not set + +# +# SoC Audio for the Freescale i.MX +# + +# +# SoC Audio for the Samsung S3C24XX +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8772 is not set +# CONFIG_SND_SOC_WM8971 is not set +# CONFIG_SND_SOC_WM8956 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8976 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8980 is not set +# CONFIG_SND_SOC_WM9713 is not set +# CONFIG_SND_SOC_WM9712 is not set +CONFIG_SND_SOC_UDA1380=m +# CONFIG_SND_SOC_AK4535 is not set # # Open Sound System @@ -956,13 +1107,121 @@ CONFIG_HID=m CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y # CONFIG_USB_ARCH_HAS_EHCI is not set -# CONFIG_USB is not set +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # # +# may also be needed; see USB_STORAGE Help for more information +# +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set +# CONFIG_USB_GTCO is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET_MII is not set +# CONFIG_USB_USBNET is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set + +# +# USB DSL modem support +# + +# # USB Gadget Support # CONFIG_USB_GADGET=y @@ -983,7 +1242,7 @@ CONFIG_USB_PXA27X=y # CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=y -# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_ETH_RNDIS=y # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FILE_STORAGE is not set # CONFIG_USB_G_SERIAL is not set @@ -1022,8 +1281,14 @@ CONFIG_RTC_INTF_DEV=y # RTC drivers # # CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set @@ -1091,7 +1356,7 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS=m CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y # CONFIG_JFFS2_SUMMARY is not set @@ -1126,8 +1391,7 @@ CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1218,7 +1482,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set CONFIG_DEBUG_VM=y # CONFIG_DEBUG_LIST is not set @@ -1256,7 +1520,7 @@ CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_ECB is not set +CONFIG_CRYPTO_ECB=m # CONFIG_CRYPTO_CBC is not set CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set @@ -1269,7 +1533,7 @@ CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_ARC4 is not set +CONFIG_CRYPTO_ARC4=m # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_DEFLATE=y diff --git a/packages/linux/linux-handhelds-2.6_2.6.21-hh2.bb b/packages/linux/linux-handhelds-2.6_2.6.21-hh5.bb index b34d4630a0..b34d4630a0 100644 --- a/packages/linux/linux-handhelds-2.6_2.6.21-hh2.bb +++ b/packages/linux/linux-handhelds-2.6_2.6.21-hh5.bb diff --git a/packages/linux/linux-handhelds-2.6_2.6.21-hh6.bb b/packages/linux/linux-handhelds-2.6_2.6.21-hh6.bb new file mode 100644 index 0000000000..b34d4630a0 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6_2.6.21-hh6.bb @@ -0,0 +1,11 @@ +SECTION = "kernel" +DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices." +LICENSE = "GPL" +PR = "r0" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \ + file://defconfig" + +require linux-handhelds-2.6.inc diff --git a/packages/linux/linux-magicbox_2.6.19.2.bb b/packages/linux/linux-magicbox_2.6.19.2.bb index f76d39156f..438eaac478 100644 --- a/packages/linux/linux-magicbox_2.6.19.2.bb +++ b/packages/linux/linux-magicbox_2.6.19.2.bb @@ -1,7 +1,9 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) SECTION = "kernel" DESCRIPTION = "Linux kernel for Magicbox ver 1.1 and 2.0 router boards" LICENSE = "GPL" -PR = "r1" +PR = "r3" DEPENDS = "u-boot" COMPATIBLE_MACHINE = "magicbox" @@ -86,16 +88,17 @@ do_stage_append () { do_install_append () { - install -d ${DEPLOY_DIR}/images - install -m 0755 arch/ppc/boot/images/zImage.elf ${DEPLOY_DIR}/images/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.elf - install -m 0755 vmlinux ${DEPLOY_DIR}/images/ - powerpc-${TARGET_OS}-objcopy -O binary -R .note -R .comment -S ${DEPLOY_DIR}/images/vmlinux ${DEPLOY_DIR}/images/linux.bin - gzip -f -9 ${DEPLOY_DIR}/images/linux.bin - cp -a ${DEPLOY_DIR}/images/linux.bin.gz ${DEPLOY_DIR}/images/linux-${PV}-${MACHINE}-${DATETIME}.bin.gz + install -d ${DEPLOY_DIR_IMAGE} + install -m 0755 arch/ppc/boot/images/zImage.elf ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.elf + install -m 0755 vmlinux ${DEPLOY_DIR_IMAGE}/ + powerpc${TARGET_VENDOR}-${TARGET_OS}-objcopy -O binary -R .note -R .comment -S ${DEPLOY_DIR_IMAGE}/vmlinux \ + ${DEPLOY_DIR_IMAGE}/linux.bin + gzip -f -9 ${DEPLOY_DIR_IMAGE}/linux.bin + cp -a ${DEPLOY_DIR_IMAGE}/linux.bin.gz ${DEPLOY_DIR_IMAGE}/linux-${PV}-${MACHINE}-${DATETIME}.bin.gz mkimage -A ppc -O linux -T kernel -C gzip -a 00000000 -e 00000000 -n "magicbox"-${PV} \ - -d ${DEPLOY_DIR}/images/linux.bin.gz ${DEPLOY_DIR}/images/uImage-${PV}-${MACHINE}-${DATETIME}.bin - rm ${DEPLOY_DIR}/images/vmlinux - rm ${DEPLOY_DIR}/images/linux.bin.gz + -d ${DEPLOY_DIR_IMAGE}/linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${MACHINE}-${DATETIME}.bin + rm ${DEPLOY_DIR_IMAGE}/vmlinux + rm ${DEPLOY_DIR_IMAGE}/linux.bin.gz } 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.4.bb b/packages/linux/linux-mtx-3_2.6.15.4.bb index fe523c879c..1bddcfdd3b 100644 --- a/packages/linux/linux-mtx-3_2.6.15.4.bb +++ b/packages/linux/linux-mtx-3_2.6.15.4.bb @@ -1,5 +1,4 @@ DESCRIPTION = "Linux kernel for MTX-3 (Surfbox3)" -MAINTAINER = "Bruno Randolf <bruno.randolf@4g-systems.biz>" HOMEPAGE = "http://meshcube.org/meshwiki/" LICENSE = "GPL" KV = "${PV}" diff --git a/packages/linux/linux-mtx-3_2.6.15.bb b/packages/linux/linux-mtx-3_2.6.15.bb index a5ea530425..3dba1fe6a0 100644 --- a/packages/linux/linux-mtx-3_2.6.15.bb +++ b/packages/linux/linux-mtx-3_2.6.15.bb @@ -1,5 +1,4 @@ DESCRIPTION = "Linux kernel for MTX-3 (Surfbox3)" -MAINTAINER = "Bruno Randolf <bruno.randolf@4g-systems.biz>" HOMEPAGE = "http://meshcube.org/meshwiki/" LICENSE = "GPL" KV = "${PV}" @@ -18,6 +17,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-omap1-2.6.20-omap1/defconfig.eabi b/packages/linux/linux-omap1-2.6.20-omap1/defconfig.eabi index a47a7b004d..640e5e349a 100644 --- a/packages/linux/linux-omap1-2.6.20-omap1/defconfig.eabi +++ b/packages/linux/linux-omap1-2.6.20-omap1/defconfig.eabi @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.20-omap1 -# Thu Mar 1 14:34:27 2007 +# Mon Apr 30 16:19:37 2007 # CONFIG_ARM=y CONFIG_GENERIC_TIME=y @@ -520,6 +520,7 @@ CONFIG_BLK_DEV_IDECS=m # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set # @@ -535,8 +536,52 @@ CONFIG_BLK_DEV_IDECS=m # SCSI device support # # CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set +CONFIG_SCSI=m +# CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_DEBUG is not set + +# +# PCMCIA SCSI adapter support +# +# CONFIG_PCMCIA_AHA152X is not set +# CONFIG_PCMCIA_FDOMAIN is not set +# CONFIG_PCMCIA_NINJA_SCSI is not set +# CONFIG_PCMCIA_QLOGIC is not set +# CONFIG_PCMCIA_SYM53C500 is not set # # Serial ATA (prod) and Parallel ATA (experimental) drivers @@ -1017,6 +1062,18 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # # may also be needed; see USB_STORAGE Help for more information # +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_LIBUSUAL is not set # @@ -1046,6 +1103,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # USB Imaging devices # # CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set # # USB Network Adapters @@ -1065,7 +1123,45 @@ CONFIG_USB_MON=y # # USB Serial Converter support # -# CONFIG_USB_SERIAL is not set +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +# CONFIG_USB_SERIAL_AIRPRIME is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_WHITEHEAT=m +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +CONFIG_USB_SERIAL_IR=m +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_DEBUG is not set +CONFIG_USB_EZUSB=y # # USB Miscellaneous drivers diff --git a/packages/linux/linux-rp-2.6.20/defconfig-collie b/packages/linux/linux-rp-2.6.20/defconfig-collie index 945f2fb39c..1c6c0be8cc 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-collie +++ b/packages/linux/linux-rp-2.6.20/defconfig-collie @@ -254,7 +254,7 @@ CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set # CONFIG_PM_SYSFS_DEPRECATED is not set -CONFIG_APM=m +CONFIG_APM=y # # Networking @@ -1394,7 +1394,7 @@ CONFIG_USB_EZUSB=y # # USB Gadget Support # -CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_NET2280 is not set # CONFIG_USB_GADGET_PXA2XX is not set diff --git a/packages/linux/linux-rp_2.6.20.bb b/packages/linux/linux-rp_2.6.20.bb index 8da37cbcd6..9ef9413641 100644 --- a/packages/linux/linux-rp_2.6.20.bb +++ b/packages/linux/linux-rp_2.6.20.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r16" +PR = "r17" # Handy URLs # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 @@ -80,7 +80,6 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2 \ SRC_URI_append_collie = "\ ${TKSRC}/mtd-sharp-flash-hack-r2.patch;patch=1 \ - ${TKSRC}/collie-r3.patch;patch=1 \ ${TKSRC}/ucb1x00-touch-audio-r1.patch;patch=1 \ ${TKSRC}/mcp-sa11x0-r0.patch;patch=1 \ ${TKSRC}/sa1100-udc-r2.patch;patch=1 \ @@ -88,6 +87,11 @@ SRC_URI_append_collie = "\ ${TKSRC}/locomo-r0.patch;patch=1 \ ${TKSRC}/collie-kexec.patch;patch=1 \ ${TKSRC}/locomo_spi-r3.patch;patch=1 \ + ${TKSRC}/sharpsl_pm.patch;patch=1 \ + ${TKSRC}/collie_pm-2.patch;patch=1 \ + ${TKSRC}/locomokeyb_suspendkey.patch;patch=1 \ + ${TKSRC}/pcmcia_suspend.patch;patch=1 \ + ${TKSRC}/ucb1x00_suspend.patch;patch=1 \ " SRC_URI_append_tosa = "\ diff --git a/packages/linux/linux-sequoia-2.6.21/.mtn2git_empty b/packages/linux/linux-sequoia-2.6.21/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux-sequoia-2.6.21/.mtn2git_empty diff --git a/packages/linux/linux-sequoia_2.6.21.bb b/packages/linux/linux-sequoia_2.6.21.bb new file mode 100644 index 0000000000..1fa520e914 --- /dev/null +++ b/packages/linux/linux-sequoia_2.6.21.bb @@ -0,0 +1,60 @@ +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) +SECTION = "kernel" +DESCRIPTION = "Linux kernel for AMCC's Sequoia dev board" +LICENSE = "GPL" +PR = "r0" +#DEPENDS = "u-boot" + +COMPATIBLE_MACHINE = "sequoia" + +#DENX git kernel +#Same as in AMCC's sequoia dev kit +SRC_URI ="git://www.denx.de/git/linux-2.6-denx.git;protocol=git;tag=78157a82fa20719f7e3307307755888e9af2c0e9 \ + file://sequoia_defconfig " + + +S = "${WORKDIR}/git" + +inherit kernel + +export ARCH="ppc" + +KERNEL_IMAGETYPE = "zImage.elf" + +do_configure() { + install -m 644 ${WORKDIR}/sequoia_defconfig ${S}/.config + make ARCH=${ARCH} oldconfig +} + +do_stage_append () { +#need ppc platforms includes + friends in order for external kernel modules to compile as headers a$ + + install -d ${STAGING_KERNEL_DIR}/arch/ + cp -a arch/ppc ${STAGING_KERNEL_DIR}/arch/ + cp -a arch/powerpc ${STAGING_KERNEL_DIR}/arch/ + + install -d ${STAGING_KERNEL_DIR}/include/asm + cp -a include/asm-powerpc ${STAGING_KERNEL_DIR}/include/ + cp -a include/asm-ppc ${STAGING_KERNEL_DIR}/include/ +} + + + +do_deploy() { + install -d ${DEPLOY_DIR_IMAGE} + install -m 0644 arch/${ARCH}/boot/images/${KERNEL_IMAGETYPE} \ + ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME} +} + +#seems like 2.6.21 kernel images have moved (or is this only for the Denx kernel ?) +#so we need to copy the kernel image where kernel.bbclass expects it to be +do_install_prepend() { + install -m 0644 arch/${ARCH}/boot/images/${KERNEL_IMAGETYPE} \ + arch/${ARCH}/boot/${KERNEL_IMAGETYPE} +} + +do_deploy[dirs] = "${S}" + +addtask deploy before do_build after do_compile + 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/linux/linux-x86-2.6.20/defconfig b/packages/linux/linux-x86-2.6.20/i486-defconfig index ed299d667d..2b7dc6a3f7 100644 --- a/packages/linux/linux-x86-2.6.20/defconfig +++ b/packages/linux/linux-x86-2.6.20/i486-defconfig @@ -702,7 +702,7 @@ CONFIG_S2IO=m # # Wireless LAN (non-hamradio) # -CONFIG_NET_RADIO=y +# CONFIG_NET_RADIO is not set # # Wan interfaces diff --git a/packages/linux/linux-x86-2.6.20/i586-defconfig b/packages/linux/linux-x86-2.6.20/i586-defconfig new file mode 100644 index 0000000000..b06f535e7b --- /dev/null +++ b/packages/linux/linux-x86-2.6.20/i586-defconfig @@ -0,0 +1,2705 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.20 +# Sat May 26 01:56:02 2007 +# +CONFIG_X86_32=y +CONFIG_GENERIC_TIME=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_X86=y +CONFIG_MMU=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_DMI=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_POSIX_MQUEUE=y +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +# CONFIG_IKCONFIG is not set +# CONFIG_CPUSETS is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y +CONFIG_STOP_MACHINE=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# Processor type and features +# +CONFIG_SMP=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_NUMAQ is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_ES7000 is not set +# CONFIG_PARAVIRT is not set +# CONFIG_M386 is not set +# CONFIG_M486 is not set +CONFIG_M586=y +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MCORE2 is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_X86_GENERIC is not set +CONFIG_X86_CMPXCHG=y +CONFIG_X86_XADD=y +CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_X86_PPRO_FENCE=y +CONFIG_X86_F00F_BUG=y +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_INVLPG=y +CONFIG_X86_BSWAP=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_ALIGNMENT_16=y +CONFIG_HPET_TIMER=y +CONFIG_NR_CPUS=8 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_BKL=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_MCE=y +# CONFIG_X86_MCE_NONFATAL is not set +# CONFIG_X86_MCE_P4THERMAL is not set +CONFIG_VM86=y +# CONFIG_TOSHIBA is not set +# CONFIG_I8K is not set +# CONFIG_X86_REBOOTFIXUPS is not set +# CONFIG_MICROCODE is not set +# CONFIG_X86_MSR is not set +# CONFIG_X86_CPUID is not set + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DCDBAS is not set +# CONFIG_NOHIGHMEM is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_HIGHMEM=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_SPARSEMEM_STATIC=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y +# CONFIG_HIGHPTE is not set +# CONFIG_MATH_EMULATION is not set +CONFIG_MTRR=y +# CONFIG_EFI is not set +CONFIG_IRQBALANCE=y +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x100000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x100000 +# CONFIG_HOTPLUG_CPU is not set +CONFIG_COMPAT_VDSO=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management options (ACPI, APM) +# +CONFIG_PM=y +CONFIG_PM_LEGACY=y +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set + +# +# ACPI (Advanced Configuration and Power Interface) Support +# +CONFIG_ACPI=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=m +# CONFIG_ACPI_HOTKEY is not set +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +# CONFIG_ACPI_ASUS is not set +CONFIG_ACPI_IBM=m +# CONFIG_ACPI_IBM_DOCK is not set +# CONFIG_ACPI_TOSHIBA is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_SBS=m + +# +# APM (Advanced Power Management) BIOS Support +# +CONFIG_APM=y +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_RTC_IS_GMT is not set +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_REAL_MODE_POWER_OFF is not set + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Bus options (PCI, PCMCIA, EISA, MCA, ISA) +# +CONFIG_PCI=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GODIRECT is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCIEPORTBUS=y +# CONFIG_HOTPLUG_PCI_PCIE is not set +CONFIG_PCIEAER=y +# CONFIG_PCI_MSI is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +# CONFIG_ISA is not set +# CONFIG_MCA is not set +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_K8_NB=y + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m + +# +# PCI Hotplug Support +# +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +CONFIG_HOTPLUG_PCI_SHPC=m +# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +CONFIG_BINFMT_MISC=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_QUEUE=y + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_CRYPT_CCMP is not set +# CONFIG_IEEE80211_CRYPT_TKIP is not set +# CONFIG_IEEE80211_SOFTMAC is not set +CONFIG_WIRELESS_EXT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +# CONFIG_MTD_PARTITIONS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_FTL=m +CONFIG_NFTL=m +# CONFIG_NFTL_RW is not set +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=y + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +CONFIG_MTD_RAM=y +CONFIG_MTD_ROM=y +CONFIG_MTD_ABSENT=y +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_SC520CDP is not set +# CONFIG_MTD_TS5500 is not set +# CONFIG_MTD_AMD76XROM is not set +# CONFIG_MTD_ICHXROM is not set +# CONFIG_MTD_ESB2ROM is not set +# CONFIG_MTD_CK804XROM is not set +# CONFIG_MTD_SCB2_FLASH is not set +# CONFIG_MTD_L440GX is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +# CONFIG_MTD_MTDRAM is not set +CONFIG_MTD_BLOCK2MTD=y + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_NAND_DISKONCHIP=y +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_CAFE=y +CONFIG_MTD_NAND_CS553X=y + +# +# OneNAND Flash Device Drivers +# +CONFIG_MTD_ONENAND=m +# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set +# CONFIG_MTD_ONENAND_OTP is not set + +# +# Parallel port support +# +CONFIG_PARPORT=y +CONFIG_PARPORT_PC=y +# CONFIG_PARPORT_SERIAL is not set +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +# CONFIG_PARPORT_PC_PCMCIA is not set +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_1284 is not set +CONFIG_PARPORT_NOT_PC=y + +# +# Plug and Play support +# +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +CONFIG_PNPACPI=y + +# +# Block devices +# +CONFIG_BLK_DEV_FD=y +CONFIG_PARIDE=m +CONFIG_PARIDE_PARPORT=y + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +# CONFIG_CISS_SCSI_TAPE is not set +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BLK_DEV_UB=m +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +CONFIG_BLK_DEV_INITRD=y +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m + +# +# Misc devices +# +# CONFIG_IBM_ASM is not set +# CONFIG_SGI_IOC4 is not set +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +# CONFIG_MSI_LAPTOP is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_IDEDISK=y +CONFIG_IDEDISK_MULTI_MODE=y +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDECD=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_IDEPNP is not set +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_BLK_DEV_AEC62XX=y +CONFIG_BLK_DEV_ALI15X3=y +# CONFIG_WDC_ALI15X3 is not set +CONFIG_BLK_DEV_AMD74XX=y +CONFIG_BLK_DEV_ATIIXP=y +CONFIG_BLK_DEV_CMD64X=y +CONFIG_BLK_DEV_TRIFLEX=y +CONFIG_BLK_DEV_CY82C693=y +CONFIG_BLK_DEV_CS5520=y +CONFIG_BLK_DEV_CS5530=y +CONFIG_BLK_DEV_CS5535=y +CONFIG_BLK_DEV_HPT34X=y +# CONFIG_HPT34X_AUTODMA is not set +CONFIG_BLK_DEV_HPT366=y +CONFIG_BLK_DEV_JMICRON=y +CONFIG_BLK_DEV_SC1200=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_BLK_DEV_IT821X=y +CONFIG_BLK_DEV_NS87415=y +CONFIG_BLK_DEV_PDC202XX_OLD=y +# CONFIG_PDC202XX_BURST is not set +CONFIG_BLK_DEV_PDC202XX_NEW=y +CONFIG_BLK_DEV_SVWKS=y +CONFIG_BLK_DEV_SIIMAGE=y +CONFIG_BLK_DEV_SIS5513=y +CONFIG_BLK_DEV_SLC90E66=y +CONFIG_BLK_DEV_TRM290=y +CONFIG_BLK_DEV_VIA82CXXX=y +# CONFIG_IDE_ARM is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_IVB is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_LIBSAS_DEBUG=y + +# +# SCSI low-level drivers +# +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +# CONFIG_AIC79XX_ENABLE_RD_STRM is not set +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +CONFIG_AIC94XX_DEBUG=y +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_MEGARAID_NEWGEN is not set +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCSI_IPR is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m + +# +# PCMCIA SCSI adapter support +# +# CONFIG_PCMCIA_AHA152X is not set +# CONFIG_PCMCIA_FDOMAIN is not set +# CONFIG_PCMCIA_NINJA_SCSI is not set +# CONFIG_PCMCIA_QLOGIC is not set +# CONFIG_PCMCIA_SYM53C500 is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_SATA_AHCI=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIL24=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INTEL_COMBINED=y +CONFIG_PATA_ALI=y +CONFIG_PATA_AMD=y +CONFIG_PATA_ARTOP=y +CONFIG_PATA_ATIIXP=y +CONFIG_PATA_CMD64X=y +CONFIG_PATA_CS5520=y +CONFIG_PATA_CS5530=y +CONFIG_PATA_CS5535=y +CONFIG_PATA_CYPRESS=y +CONFIG_PATA_EFAR=y +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=y +CONFIG_PATA_HPT37X=y +CONFIG_PATA_HPT3X2N=y +CONFIG_PATA_HPT3X3=y +CONFIG_PATA_IT821X=y +CONFIG_PATA_JMICRON=y +CONFIG_PATA_TRIFLEX=y +CONFIG_PATA_MARVELL=y +CONFIG_PATA_MPIIX=y +CONFIG_PATA_OLDPIIX=y +CONFIG_PATA_NETCELL=y +CONFIG_PATA_NS87410=y +CONFIG_PATA_OPTI=y +CONFIG_PATA_OPTIDMA=y +# CONFIG_PATA_PCMCIA is not set +CONFIG_PATA_PDC_OLD=y +CONFIG_PATA_RADISYS=y +CONFIG_PATA_RZ1000=y +CONFIG_PATA_SC1200=y +CONFIG_PATA_SERVERWORKS=y +CONFIG_PATA_PDC2027X=y +CONFIG_PATA_SIL680=y +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=y +CONFIG_PATA_WINBOND=y + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +CONFIG_IEEE1394=y + +# +# Subsystem Options +# +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +# CONFIG_IEEE1394_OUI_DB is not set +CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y +CONFIG_IEEE1394_CONFIG_ROM_IP1394=y +# CONFIG_IEEE1394_EXPORT_FULL_API is not set + +# +# Device Drivers +# +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_OHCI1394=y + +# +# Protocol Drivers +# +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_RAWIO=y + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_NET_SB1000=m + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_FIXED_PHY=m +# CONFIG_FIXED_MII_10_FDX is not set +# CONFIG_FIXED_MII_100_FDX is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +# +# Tulip family network device support +# +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +# CONFIG_PCMCIA_XIRCOM is not set +# CONFIG_HP100 is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +# CONFIG_PCNET32_NAPI is not set +CONFIG_AMD8111_ETH=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_B44=m +CONFIG_FORCEDETH=m +# CONFIG_FORCEDETH_NAPI is not set +CONFIG_DGRS=m +CONFIG_EEPRO100=m +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +# CONFIG_VIA_RHINE_NAPI is not set +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m + +# +# Ethernet (1000 Mbit) +# +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +# CONFIG_E1000_NAPI is not set +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_SIS190=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SK98LIN=m +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m + +# +# Ethernet (10000 Mbit) +# +# CONFIG_CHELSIO_T1 is not set +# CONFIG_IXGB is not set +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +# CONFIG_MYRI10GE is not set +# CONFIG_NETXEN_NIC is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP is not set +# CONFIG_PCMCIA_WAVELAN is not set +# CONFIG_PCMCIA_NETWAVE is not set + +# +# Wireless 802.11 Frequency Hopping cards support +# +# CONFIG_PCMCIA_RAYCS is not set + +# +# Wireless 802.11b ISA/PCI cards support +# +CONFIG_IPW2100=m +# CONFIG_IPW2100_MONITOR is not set +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +# CONFIG_IPW2200_MONITOR is not set +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_ATMEL=m +# CONFIG_PCI_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +# CONFIG_PCMCIA_HERMES is not set +# CONFIG_PCMCIA_SPECTRUM is not set +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_ATMEL is not set +# CONFIG_PCMCIA_WL3501 is not set + +# +# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support +# +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +# CONFIG_HOSTAP_CS is not set +CONFIG_NET_WIRELESS=y + +# +# PCMCIA network device support +# +# CONFIG_NET_PCMCIA is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +CONFIG_ISDN=m + +# +# Old ISDN4Linux +# +# CONFIG_ISDN_I4L is not set + +# +# CAPI subsystem +# +CONFIG_ISDN_CAPI=m +# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set +# CONFIG_ISDN_CAPI_MIDDLEWARE is not set +CONFIG_ISDN_CAPI_CAPI20=m + +# +# CAPI hardware drivers +# + +# +# Active AVM cards +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m + +# +# Active Eicon DIVA Server cards +# +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +# CONFIG_ISDN_DIVAS_BRIPCI is not set +# CONFIG_ISDN_DIVAS_PRIPCI is not set +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PARKBD is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_CONSOLE is not set +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_CS is not set +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=y +# CONFIG_LP_CONSOLE is not set +# CONFIG_PPDEV is not set +# CONFIG_TIPAR is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_VIA=m +# CONFIG_NVRAM is not set +CONFIG_RTC=m +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set +CONFIG_AGP=y +CONFIG_AGP_ALI=m +CONFIG_AGP_ATI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AGP_EFFICEON=m +CONFIG_DRM=y +# CONFIG_DRM_TDFX is not set +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m + +# +# PCMCIA character devices +# +# CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set +CONFIG_MWAVE=m +# CONFIG_SCx200_GPIO is not set +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +CONFIG_CS5535_GPIO=m +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +CONFIG_HANGCHECK_TIMER=m + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +CONFIG_TELCLOCK=m + +# +# I2C support +# +CONFIG_I2C=m +CONFIG_I2C_CHARDEV=m + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_ISA=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_SCx200_ACB=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_STUB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2C_PCA_ISA=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m + +# +# SPI Protocol Masters +# + +# +# Dallas's 1-wire bus +# +CONFIG_W1=m + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters +# +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +# CONFIG_VIDEO_BT848_DVB is not set +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +# CONFIG_VIDEO_SAA7134_OSS is not set +# CONFIG_VIDEO_SAA7134_DVB is not set +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +# CONFIG_VIDEO_CX88_DVB is not set +CONFIG_VIDEO_CAFE_CCIC=m + +# +# V4L USB devices +# +CONFIG_VIDEO_PVRUSB2=m +# CONFIG_VIDEO_PVRUSB2_29XXX is not set +# CONFIG_VIDEO_PVRUSB2_24XXX is not set +CONFIG_VIDEO_PVRUSB2_SYSFS=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set + +# +# Radio Adapters +# +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m + +# +# Digital Video Broadcasting Devices +# +CONFIG_DVB=y +CONFIG_DVB_CORE=m +# CONFIG_DVB_CORE_ATTACH is not set + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_CINERGYT2=m +# CONFIG_DVB_CINERGYT2_TUNING is not set + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_STV0299=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_MT312=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_TDA10086=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m + +# +# Tuners/PLL support +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUNER_MT2060=m +CONFIG_DVB_TUNER_LGH06XF=m + +# +# Miscellaneous devices +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_TUA6100=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_FIRMWARE_EDID=y +CONFIG_FB=y +CONFIG_FB_DDC=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=y +CONFIG_FB_VESA=y +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +# CONFIG_FB_NVIDIA_I2C is not set +CONFIG_FB_RIVA=m +# CONFIG_FB_RIVA_I2C is not set +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +# CONFIG_FB_MATROX_MILLENIUM is not set +# CONFIG_FB_MATROX_MYSTIQUE is not set +# CONFIG_FB_MATROX_G is not set +CONFIG_FB_MATROX_I2C=m +# CONFIG_FB_MATROX_MULTIHEAD is not set +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY=m +# CONFIG_FB_ATY_CT is not set +# CONFIG_FB_ATY_GX is not set +CONFIG_FB_SAVAGE=m +# CONFIG_FB_SAVAGE_I2C is not set +# CONFIG_FB_SAVAGE_ACCEL is not set +CONFIG_FB_SIS=m +# CONFIG_FB_SIS_300 is not set +# CONFIG_FB_SIS_315 is not set +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_CYBLA=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_GX=m +# CONFIG_FB_GEODE_GX_SET_FBSIZE is not set +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_VIRTUAL=m + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VIDEO_SELECT=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_RTCTIMER=m +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=y +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m + +# +# PCI devices +# +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +# CONFIG_SND_FM801_TEA575X_BOOL is not set +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=y +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +# CONFIG_SND_AC97_POWER_SAVE is not set + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m + +# +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# +# Open Sound System +# +CONFIG_SOUND_PRIME=y +CONFIG_SOUND_BT878=m +CONFIG_SOUND_ES1371=m +CONFIG_SOUND_ICH=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_MSNDCLAS=m +CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin" +CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin" +CONFIG_SOUND_MSNDPIN=m +CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin" +CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin" +CONFIG_SOUND_VIA82CXXX=m +# CONFIG_MIDI_VIA82CXXX is not set +CONFIG_SOUND_OSS=m +# CONFIG_SOUND_TRACEINIT is not set +# CONFIG_SOUND_DMAP is not set +CONFIG_SOUND_CS4232=m +CONFIG_SOUND_SSCAPE=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_MSS=m +CONFIG_SOUND_MPU401=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PSS=m +# CONFIG_PSS_MIXER is not set +CONFIG_SOUND_SB=m +CONFIG_SOUND_YM3812=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_AEDSP16=m +# CONFIG_SC6600 is not set +# CONFIG_AEDSP16_MSS is not set +# CONFIG_AEDSP16_SBPRO is not set +# CONFIG_AEDSP16_MPU401 is not set +CONFIG_SOUND_TVMIXER=m +CONFIG_SOUND_KAHLUA=m +CONFIG_AC97_BUS=y + +# +# HID Devices +# +CONFIG_HID=y + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_SPLIT_ISO is not set +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_ISP116X_HCD=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_U132_HCD is not set +CONFIG_USB_SL811_HCD=y +# CONFIG_USB_SL811_CS is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_USB_HIDINPUT_POWERBOOK=y +CONFIG_HID_FF=y +CONFIG_HID_PID=y +CONFIG_LOGITECH_FF=y +CONFIG_THRUSTMASTER_FF=y +CONFIG_ZEROPLUS_FF=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_AIPTEK=m +CONFIG_USB_WACOM=m +CONFIG_USB_ACECAD=m +CONFIG_USB_KBTAB=m +CONFIG_USB_POWERMATE=m +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_ETURBO=y +CONFIG_USB_TOUCHSCREEN_GUNZE=y +CONFIG_USB_TOUCHSCREEN_DMC_TSC10=y +CONFIG_USB_YEALINK=m +CONFIG_USB_XPAD=m +CONFIG_USB_ATI_REMOTE=m +CONFIG_USB_ATI_REMOTE2=m +CONFIG_USB_KEYSPAN_REMOTE=m +CONFIG_USB_APPLETOUCH=m + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_MON=y + +# +# USB port drivers +# +CONFIG_USB_USS720=m + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_AIRPRIME=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_TEST=m + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_NET2280=m +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +CONFIG_USB_MIDI_GADGET=m + +# +# MMC/SD Card support +# +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m + +# +# InfiniBand support +# +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m + +# +# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# +CONFIG_EDAC=m + +# +# Reporting subsystems +# +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_AMD76X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_POLL=y + +# +# Real Time Clock +# +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_DEV_UIE_EMUL=y + +# +# RTC drivers +# +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_V3020=m + +# +# DMA Engine support +# +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m + +# +# Virtualization +# +# CONFIG_KVM is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +CONFIG_CONFIGFS_FS=m + +# +# Miscellaneous filesystems +# +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_CRAMFS=m +CONFIG_VXFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=y +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +# CONFIG_NCPFS_PACKET_SIGNING is not set +# CONFIG_NCPFS_IOCTL_LOCKING is not set +# CONFIG_NCPFS_STRONG is not set +# CONFIG_NCPFS_NFS_NS is not set +# CONFIG_NCPFS_OS2_NS is not set +# CONFIG_NCPFS_SMALLDOS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_NCPFS_EXTRAS is not set +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_AFS_FS=m +CONFIG_RXRPC=m +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m + +# +# Distributed Lock Manager +# +CONFIG_DLM=m +CONFIG_DLM_TCP=y +# CONFIG_DLM_SCTP is not set +# CONFIG_DLM_DEBUG is not set + +# +# Instrumentation Support +# +# CONFIG_PROFILING is not set +# CONFIG_KPROBES is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_EARLY_PRINTK=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_DOUBLEFAULT=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_HASH=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_586=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_TEST=m + +# +# Hardware crypto devices +# +CONFIG_CRYPTO_DEV_PADLOCK=m +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_GEODE=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_REED_SOLOMON=y +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y diff --git a/packages/linux/linux-x86-2.6.20/i686-defconfig b/packages/linux/linux-x86-2.6.20/i686-defconfig new file mode 100644 index 0000000000..b06f535e7b --- /dev/null +++ b/packages/linux/linux-x86-2.6.20/i686-defconfig @@ -0,0 +1,2705 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.20 +# Sat May 26 01:56:02 2007 +# +CONFIG_X86_32=y +CONFIG_GENERIC_TIME=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_X86=y +CONFIG_MMU=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_DMI=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_POSIX_MQUEUE=y +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +# CONFIG_IKCONFIG is not set +# CONFIG_CPUSETS is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y +CONFIG_STOP_MACHINE=y + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# Processor type and features +# +CONFIG_SMP=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_NUMAQ is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_ES7000 is not set +# CONFIG_PARAVIRT is not set +# CONFIG_M386 is not set +# CONFIG_M486 is not set +CONFIG_M586=y +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MCORE2 is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_X86_GENERIC is not set +CONFIG_X86_CMPXCHG=y +CONFIG_X86_XADD=y +CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_X86_PPRO_FENCE=y +CONFIG_X86_F00F_BUG=y +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_INVLPG=y +CONFIG_X86_BSWAP=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_ALIGNMENT_16=y +CONFIG_HPET_TIMER=y +CONFIG_NR_CPUS=8 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_BKL=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_MCE=y +# CONFIG_X86_MCE_NONFATAL is not set +# CONFIG_X86_MCE_P4THERMAL is not set +CONFIG_VM86=y +# CONFIG_TOSHIBA is not set +# CONFIG_I8K is not set +# CONFIG_X86_REBOOTFIXUPS is not set +# CONFIG_MICROCODE is not set +# CONFIG_X86_MSR is not set +# CONFIG_X86_CPUID is not set + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DCDBAS is not set +# CONFIG_NOHIGHMEM is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_HIGHMEM=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_SPARSEMEM_STATIC=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y +# CONFIG_HIGHPTE is not set +# CONFIG_MATH_EMULATION is not set +CONFIG_MTRR=y +# CONFIG_EFI is not set +CONFIG_IRQBALANCE=y +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x100000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x100000 +# CONFIG_HOTPLUG_CPU is not set +CONFIG_COMPAT_VDSO=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management options (ACPI, APM) +# +CONFIG_PM=y +CONFIG_PM_LEGACY=y +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set + +# +# ACPI (Advanced Configuration and Power Interface) Support +# +CONFIG_ACPI=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=m +# CONFIG_ACPI_HOTKEY is not set +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +# CONFIG_ACPI_ASUS is not set +CONFIG_ACPI_IBM=m +# CONFIG_ACPI_IBM_DOCK is not set +# CONFIG_ACPI_TOSHIBA is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_SBS=m + +# +# APM (Advanced Power Management) BIOS Support +# +CONFIG_APM=y +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_RTC_IS_GMT is not set +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_REAL_MODE_POWER_OFF is not set + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Bus options (PCI, PCMCIA, EISA, MCA, ISA) +# +CONFIG_PCI=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GODIRECT is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCIEPORTBUS=y +# CONFIG_HOTPLUG_PCI_PCIE is not set +CONFIG_PCIEAER=y +# CONFIG_PCI_MSI is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +# CONFIG_ISA is not set +# CONFIG_MCA is not set +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_K8_NB=y + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m + +# +# PCI Hotplug Support +# +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +# CONFIG_HOTPLUG_PCI_CPCI is not set +CONFIG_HOTPLUG_PCI_SHPC=m +# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +CONFIG_BINFMT_MISC=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_QUEUE=y + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_CRYPT_CCMP is not set +# CONFIG_IEEE80211_CRYPT_TKIP is not set +# CONFIG_IEEE80211_SOFTMAC is not set +CONFIG_WIRELESS_EXT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +# CONFIG_MTD_PARTITIONS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_FTL=m +CONFIG_NFTL=m +# CONFIG_NFTL_RW is not set +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=y + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +CONFIG_MTD_RAM=y +CONFIG_MTD_ROM=y +CONFIG_MTD_ABSENT=y +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_SC520CDP is not set +# CONFIG_MTD_TS5500 is not set +# CONFIG_MTD_AMD76XROM is not set +# CONFIG_MTD_ICHXROM is not set +# CONFIG_MTD_ESB2ROM is not set +# CONFIG_MTD_CK804XROM is not set +# CONFIG_MTD_SCB2_FLASH is not set +# CONFIG_MTD_L440GX is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +# CONFIG_MTD_MTDRAM is not set +CONFIG_MTD_BLOCK2MTD=y + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_NAND_DISKONCHIP=y +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_CAFE=y +CONFIG_MTD_NAND_CS553X=y + +# +# OneNAND Flash Device Drivers +# +CONFIG_MTD_ONENAND=m +# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set +# CONFIG_MTD_ONENAND_OTP is not set + +# +# Parallel port support +# +CONFIG_PARPORT=y +CONFIG_PARPORT_PC=y +# CONFIG_PARPORT_SERIAL is not set +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +# CONFIG_PARPORT_PC_PCMCIA is not set +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_1284 is not set +CONFIG_PARPORT_NOT_PC=y + +# +# Plug and Play support +# +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +CONFIG_PNPACPI=y + +# +# Block devices +# +CONFIG_BLK_DEV_FD=y +CONFIG_PARIDE=m +CONFIG_PARIDE_PARPORT=y + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +# CONFIG_CISS_SCSI_TAPE is not set +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BLK_DEV_UB=m +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +CONFIG_BLK_DEV_INITRD=y +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m + +# +# Misc devices +# +# CONFIG_IBM_ASM is not set +# CONFIG_SGI_IOC4 is not set +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +# CONFIG_MSI_LAPTOP is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_IDEDISK=y +CONFIG_IDEDISK_MULTI_MODE=y +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDECD=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_IDEPNP is not set +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_BLK_DEV_AEC62XX=y +CONFIG_BLK_DEV_ALI15X3=y +# CONFIG_WDC_ALI15X3 is not set +CONFIG_BLK_DEV_AMD74XX=y +CONFIG_BLK_DEV_ATIIXP=y +CONFIG_BLK_DEV_CMD64X=y +CONFIG_BLK_DEV_TRIFLEX=y +CONFIG_BLK_DEV_CY82C693=y +CONFIG_BLK_DEV_CS5520=y +CONFIG_BLK_DEV_CS5530=y +CONFIG_BLK_DEV_CS5535=y +CONFIG_BLK_DEV_HPT34X=y +# CONFIG_HPT34X_AUTODMA is not set +CONFIG_BLK_DEV_HPT366=y +CONFIG_BLK_DEV_JMICRON=y +CONFIG_BLK_DEV_SC1200=y +CONFIG_BLK_DEV_PIIX=y +CONFIG_BLK_DEV_IT821X=y +CONFIG_BLK_DEV_NS87415=y +CONFIG_BLK_DEV_PDC202XX_OLD=y +# CONFIG_PDC202XX_BURST is not set +CONFIG_BLK_DEV_PDC202XX_NEW=y +CONFIG_BLK_DEV_SVWKS=y +CONFIG_BLK_DEV_SIIMAGE=y +CONFIG_BLK_DEV_SIS5513=y +CONFIG_BLK_DEV_SLC90E66=y +CONFIG_BLK_DEV_TRM290=y +CONFIG_BLK_DEV_VIA82CXXX=y +# CONFIG_IDE_ARM is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_IVB is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_LIBSAS_DEBUG=y + +# +# SCSI low-level drivers +# +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 +CONFIG_AIC7XXX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +# CONFIG_AIC79XX_ENABLE_RD_STRM is not set +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +CONFIG_AIC94XX_DEBUG=y +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_MEGARAID_NEWGEN is not set +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set +# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCSI_IPR is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m + +# +# PCMCIA SCSI adapter support +# +# CONFIG_PCMCIA_AHA152X is not set +# CONFIG_PCMCIA_FDOMAIN is not set +# CONFIG_PCMCIA_NINJA_SCSI is not set +# CONFIG_PCMCIA_QLOGIC is not set +# CONFIG_PCMCIA_SYM53C500 is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_SATA_AHCI=y +CONFIG_SATA_SVW=y +CONFIG_ATA_PIIX=y +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SX4=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIL24=y +CONFIG_SATA_SIS=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y +CONFIG_SATA_INTEL_COMBINED=y +CONFIG_PATA_ALI=y +CONFIG_PATA_AMD=y +CONFIG_PATA_ARTOP=y +CONFIG_PATA_ATIIXP=y +CONFIG_PATA_CMD64X=y +CONFIG_PATA_CS5520=y +CONFIG_PATA_CS5530=y +CONFIG_PATA_CS5535=y +CONFIG_PATA_CYPRESS=y +CONFIG_PATA_EFAR=y +CONFIG_ATA_GENERIC=y +CONFIG_PATA_HPT366=y +CONFIG_PATA_HPT37X=y +CONFIG_PATA_HPT3X2N=y +CONFIG_PATA_HPT3X3=y +CONFIG_PATA_IT821X=y +CONFIG_PATA_JMICRON=y +CONFIG_PATA_TRIFLEX=y +CONFIG_PATA_MARVELL=y +CONFIG_PATA_MPIIX=y +CONFIG_PATA_OLDPIIX=y +CONFIG_PATA_NETCELL=y +CONFIG_PATA_NS87410=y +CONFIG_PATA_OPTI=y +CONFIG_PATA_OPTIDMA=y +# CONFIG_PATA_PCMCIA is not set +CONFIG_PATA_PDC_OLD=y +CONFIG_PATA_RADISYS=y +CONFIG_PATA_RZ1000=y +CONFIG_PATA_SC1200=y +CONFIG_PATA_SERVERWORKS=y +CONFIG_PATA_PDC2027X=y +CONFIG_PATA_SIL680=y +CONFIG_PATA_SIS=y +CONFIG_PATA_VIA=y +CONFIG_PATA_WINBOND=y + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +CONFIG_IEEE1394=y + +# +# Subsystem Options +# +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +# CONFIG_IEEE1394_OUI_DB is not set +CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y +CONFIG_IEEE1394_CONFIG_ROM_IP1394=y +# CONFIG_IEEE1394_EXPORT_FULL_API is not set + +# +# Device Drivers +# +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_OHCI1394=y + +# +# Protocol Drivers +# +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_RAWIO=y + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_NET_SB1000=m + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# PHY device support +# +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_FIXED_PHY=m +# CONFIG_FIXED_MII_10_FDX is not set +# CONFIG_FIXED_MII_100_FDX is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m + +# +# Tulip family network device support +# +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +# CONFIG_PCMCIA_XIRCOM is not set +# CONFIG_HP100 is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +# CONFIG_PCNET32_NAPI is not set +CONFIG_AMD8111_ETH=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_B44=m +CONFIG_FORCEDETH=m +# CONFIG_FORCEDETH_NAPI is not set +CONFIG_DGRS=m +CONFIG_EEPRO100=m +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +# CONFIG_VIA_RHINE_NAPI is not set +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m + +# +# Ethernet (1000 Mbit) +# +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +# CONFIG_E1000_NAPI is not set +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_SIS190=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SK98LIN=m +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m + +# +# Ethernet (10000 Mbit) +# +# CONFIG_CHELSIO_T1 is not set +# CONFIG_IXGB is not set +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +# CONFIG_MYRI10GE is not set +# CONFIG_NETXEN_NIC is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP is not set +# CONFIG_PCMCIA_WAVELAN is not set +# CONFIG_PCMCIA_NETWAVE is not set + +# +# Wireless 802.11 Frequency Hopping cards support +# +# CONFIG_PCMCIA_RAYCS is not set + +# +# Wireless 802.11b ISA/PCI cards support +# +CONFIG_IPW2100=m +# CONFIG_IPW2100_MONITOR is not set +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +# CONFIG_IPW2200_MONITOR is not set +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +CONFIG_PLX_HERMES=m +CONFIG_TMD_HERMES=m +CONFIG_NORTEL_HERMES=m +CONFIG_PCI_HERMES=m +CONFIG_ATMEL=m +# CONFIG_PCI_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +# CONFIG_PCMCIA_HERMES is not set +# CONFIG_PCMCIA_SPECTRUM is not set +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_ATMEL is not set +# CONFIG_PCMCIA_WL3501 is not set + +# +# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support +# +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +# CONFIG_HOSTAP_CS is not set +CONFIG_NET_WIRELESS=y + +# +# PCMCIA network device support +# +# CONFIG_NET_PCMCIA is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +CONFIG_ISDN=m + +# +# Old ISDN4Linux +# +# CONFIG_ISDN_I4L is not set + +# +# CAPI subsystem +# +CONFIG_ISDN_CAPI=m +# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set +# CONFIG_ISDN_CAPI_MIDDLEWARE is not set +CONFIG_ISDN_CAPI_CAPI20=m + +# +# CAPI hardware drivers +# + +# +# Active AVM cards +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m + +# +# Active Eicon DIVA Server cards +# +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +# CONFIG_ISDN_DIVAS_BRIPCI is not set +# CONFIG_ISDN_DIVAS_PRIPCI is not set +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PARKBD is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_CONSOLE is not set +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_CS is not set +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=y +# CONFIG_LP_CONSOLE is not set +# CONFIG_PPDEV is not set +# CONFIG_TIPAR is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_VIA=m +# CONFIG_NVRAM is not set +CONFIG_RTC=m +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set +CONFIG_AGP=y +CONFIG_AGP_ALI=m +CONFIG_AGP_ATI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AGP_EFFICEON=m +CONFIG_DRM=y +# CONFIG_DRM_TDFX is not set +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m + +# +# PCMCIA character devices +# +# CONFIG_SYNCLINK_CS is not set +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set +CONFIG_MWAVE=m +# CONFIG_SCx200_GPIO is not set +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +CONFIG_CS5535_GPIO=m +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +CONFIG_HANGCHECK_TIMER=m + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +CONFIG_TELCLOCK=m + +# +# I2C support +# +CONFIG_I2C=m +CONFIG_I2C_CHARDEV=m + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_ISA=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_SCx200_ACB=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_STUB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2C_PCA_ISA=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m + +# +# SPI Protocol Masters +# + +# +# Dallas's 1-wire bus +# +CONFIG_W1=m + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set + +# +# Hardware Monitoring support +# +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters +# +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +# CONFIG_VIDEO_BT848_DVB is not set +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +# CONFIG_VIDEO_SAA7134_OSS is not set +# CONFIG_VIDEO_SAA7134_DVB is not set +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +# CONFIG_VIDEO_CX88_DVB is not set +CONFIG_VIDEO_CAFE_CCIC=m + +# +# V4L USB devices +# +CONFIG_VIDEO_PVRUSB2=m +# CONFIG_VIDEO_PVRUSB2_29XXX is not set +# CONFIG_VIDEO_PVRUSB2_24XXX is not set +CONFIG_VIDEO_PVRUSB2_SYSFS=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set + +# +# Radio Adapters +# +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m + +# +# Digital Video Broadcasting Devices +# +CONFIG_DVB=y +CONFIG_DVB_CORE=m +# CONFIG_DVB_CORE_ATTACH is not set + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_CINERGYT2=m +# CONFIG_DVB_CINERGYT2_TUNING is not set + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_FE_CUSTOMISE=y + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_STV0299=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_MT312=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_TDA10086=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m + +# +# Tuners/PLL support +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TUNER_MT2060=m +CONFIG_DVB_TUNER_LGH06XF=m + +# +# Miscellaneous devices +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_TUA6100=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_FIRMWARE_EDID=y +CONFIG_FB=y +CONFIG_FB_DDC=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=y +CONFIG_FB_VESA=y +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +# CONFIG_FB_NVIDIA_I2C is not set +CONFIG_FB_RIVA=m +# CONFIG_FB_RIVA_I2C is not set +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +# CONFIG_FB_MATROX_MILLENIUM is not set +# CONFIG_FB_MATROX_MYSTIQUE is not set +# CONFIG_FB_MATROX_G is not set +CONFIG_FB_MATROX_I2C=m +# CONFIG_FB_MATROX_MULTIHEAD is not set +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY=m +# CONFIG_FB_ATY_CT is not set +# CONFIG_FB_ATY_GX is not set +CONFIG_FB_SAVAGE=m +# CONFIG_FB_SAVAGE_I2C is not set +# CONFIG_FB_SAVAGE_ACCEL is not set +CONFIG_FB_SIS=m +# CONFIG_FB_SIS_300 is not set +# CONFIG_FB_SIS_315 is not set +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_CYBLA=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_GX=m +# CONFIG_FB_GEODE_GX_SET_FBSIZE is not set +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_VIRTUAL=m + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VIDEO_SELECT=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set + +# +# Logo configuration +# +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_RTCTIMER=m +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=y +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m + +# +# PCI devices +# +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +# CONFIG_SND_FM801_TEA575X_BOOL is not set +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=y +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +# CONFIG_SND_AC97_POWER_SAVE is not set + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m + +# +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# +# Open Sound System +# +CONFIG_SOUND_PRIME=y +CONFIG_SOUND_BT878=m +CONFIG_SOUND_ES1371=m +CONFIG_SOUND_ICH=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_MSNDCLAS=m +CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin" +CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin" +CONFIG_SOUND_MSNDPIN=m +CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin" +CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin" +CONFIG_SOUND_VIA82CXXX=m +# CONFIG_MIDI_VIA82CXXX is not set +CONFIG_SOUND_OSS=m +# CONFIG_SOUND_TRACEINIT is not set +# CONFIG_SOUND_DMAP is not set +CONFIG_SOUND_CS4232=m +CONFIG_SOUND_SSCAPE=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_MSS=m +CONFIG_SOUND_MPU401=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PSS=m +# CONFIG_PSS_MIXER is not set +CONFIG_SOUND_SB=m +CONFIG_SOUND_YM3812=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_AEDSP16=m +# CONFIG_SC6600 is not set +# CONFIG_AEDSP16_MSS is not set +# CONFIG_AEDSP16_SBPRO is not set +# CONFIG_AEDSP16_MPU401 is not set +CONFIG_SOUND_TVMIXER=m +CONFIG_SOUND_KAHLUA=m +CONFIG_AC97_BUS=y + +# +# HID Devices +# +CONFIG_HID=y + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_SPLIT_ISO is not set +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_ISP116X_HCD=y +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_U132_HCD is not set +CONFIG_USB_SL811_HCD=y +# CONFIG_USB_SL811_CS is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_USB_HIDINPUT_POWERBOOK=y +CONFIG_HID_FF=y +CONFIG_HID_PID=y +CONFIG_LOGITECH_FF=y +CONFIG_THRUSTMASTER_FF=y +CONFIG_ZEROPLUS_FF=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_AIPTEK=m +CONFIG_USB_WACOM=m +CONFIG_USB_ACECAD=m +CONFIG_USB_KBTAB=m +CONFIG_USB_POWERMATE=m +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_ETURBO=y +CONFIG_USB_TOUCHSCREEN_GUNZE=y +CONFIG_USB_TOUCHSCREEN_DMC_TSC10=y +CONFIG_USB_YEALINK=m +CONFIG_USB_XPAD=m +CONFIG_USB_ATI_REMOTE=m +CONFIG_USB_ATI_REMOTE2=m +CONFIG_USB_KEYSPAN_REMOTE=m +CONFIG_USB_APPLETOUCH=m + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_MON=y + +# +# USB port drivers +# +CONFIG_USB_USS720=m + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_AIRPRIME=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_TEST=m + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_NET2280=m +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +CONFIG_USB_MIDI_GADGET=m + +# +# MMC/SD Card support +# +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m + +# +# InfiniBand support +# +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m + +# +# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# +CONFIG_EDAC=m + +# +# Reporting subsystems +# +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_AMD76X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_POLL=y + +# +# Real Time Clock +# +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_DEV_UIE_EMUL=y + +# +# RTC drivers +# +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_V3020=m + +# +# DMA Engine support +# +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m + +# +# Virtualization +# +# CONFIG_KVM is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +CONFIG_CONFIGFS_FS=m + +# +# Miscellaneous filesystems +# +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_CRAMFS=m +CONFIG_VXFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=y +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +# CONFIG_NCPFS_PACKET_SIGNING is not set +# CONFIG_NCPFS_IOCTL_LOCKING is not set +# CONFIG_NCPFS_STRONG is not set +# CONFIG_NCPFS_NFS_NS is not set +# CONFIG_NCPFS_OS2_NS is not set +# CONFIG_NCPFS_SMALLDOS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_NCPFS_EXTRAS is not set +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_AFS_FS=m +CONFIG_RXRPC=m +CONFIG_9P_FS=m + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m + +# +# Distributed Lock Manager +# +CONFIG_DLM=m +CONFIG_DLM_TCP=y +# CONFIG_DLM_SCTP is not set +# CONFIG_DLM_DEBUG is not set + +# +# Instrumentation Support +# +# CONFIG_PROFILING is not set +# CONFIG_KPROBES is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_EARLY_PRINTK=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_DOUBLEFAULT=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_HASH=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_586=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_TEST=m + +# +# Hardware crypto devices +# +CONFIG_CRYPTO_DEV_PADLOCK=m +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_GEODE=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_REED_SOLOMON=y +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y diff --git a/packages/linux/linux-x86_2.6.20.bb b/packages/linux/linux-x86_2.6.20.bb index c73ee58d2f..ef5a451af0 100644 --- a/packages/linux/linux-x86_2.6.20.bb +++ b/packages/linux/linux-x86_2.6.20.bb @@ -1,10 +1,14 @@ DESCRIPTION = "Linux Kernel for x86 compatible machines" SECTION = "kernel" LICENSE = "GPL" -PR = "r2" +PR = "r0" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 " + +SRC_URI_append_x86 = "file://i486-defconfig" +SRC_URI_append_i586-generic = "file://i586-defconfig" +SRC_URI_append_i686-generic = "file://i686-defconfig" -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ - file://defconfig" S = "${WORKDIR}/linux-${PV}" @@ -13,15 +17,15 @@ inherit kernel COMPATIBLE_HOST = "i.86.*-linux" KERNEL_IMAGETYPE = "bzImage" -do_configure_prepend() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config +do_configure_prepend_x86() { + install -m 0644 ${WORKDIR}/i486-defconfig ${S}/.config } -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/i386/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME} -} +do_configure_prepend_i586-generic() { + install -m 0644 ${WORKDIR}/i586-defconfig ${S}/.config +} -do_deploy[dirs] = "${S}" +do_configure_prepend_i686() { + install -m 0644 ${WORKDIR}/i686-defconfig ${S}/.config +} -addtask deploy before do_populate_staging after do_compile diff --git a/packages/linux/linux/at32stk1000/.mtn2git_empty b/packages/linux/linux/at32stk1000/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux/at32stk1000/.mtn2git_empty diff --git a/packages/linux/linux/at32stk1000/defconfig b/packages/linux/linux/at32stk1000/defconfig new file mode 100644 index 0000000000..290dce50c5 --- /dev/null +++ b/packages/linux/linux/at32stk1000/defconfig @@ -0,0 +1,849 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21 +# Sat Jun 2 10:40:44 2007 +# +CONFIG_AVR32=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_TIME=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +# CONFIG_TASK_XACCT is not set +# CONFIG_UTS_NS is not set +CONFIG_AUDIT=y +# CONFIG_IKCONFIG is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +# CONFIG_BASE_FULL is not set +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=1 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_KMOD is not set + +# +# Block layer +# +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_AS is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_NOOP=y +CONFIG_DEFAULT_IOSCHED="noop" + +# +# System Type and features +# +CONFIG_SUBARCH_AVR32B=y +CONFIG_MMU=y +CONFIG_PERFORMANCE_COUNTERS=y +CONFIG_PLATFORM_AT32AP=y +CONFIG_CPU_AT32AP7000=y +CONFIG_BOARD_ATSTK1002=y +CONFIG_BOARD_ATSTK1000=y +CONFIG_LOADER_U_BOOT=y +CONFIG_LOAD_ADDRESS=0x10000000 +CONFIG_ENTRY_ADDRESS=0x90000000 +CONFIG_PHYS_OFFSET=0x10000000 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +# CONFIG_HAVE_ARCH_BOOTMEM_NODE is not set +# CONFIG_ARCH_HAVE_MEMORY_PRESENT is not set +# CONFIG_NEED_NODE_MEMMAP_SIZE is not set +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +# CONFIG_ARCH_SPARSEMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +# CONFIG_OWNERSHIP_TRACE is not set +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_CMDLINE="" + +# +# Bus options +# + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set + +# +# DCCP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_DCCP is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set + +# +# TIPC Configuration (EXPERIMENTAL) +# +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_IEEE80211 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_FW_LOADER is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_CFI_INTELEXT is not set +CONFIG_MTD_CFI_AMDSTD=y +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0x0 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_RAM=m +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# Misc devices +# + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m + +# +# PHY device support +# +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_MACB=y + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +# CONFIG_INPUT is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +# CONFIG_VT is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_ATMEL=y +CONFIG_SERIAL_ATMEL_CONSOLE=y +# CONFIG_SERIAL_ATMEL_TTYAT is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +# CONFIG_FB is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +# CONFIG_USB_ARCH_HAS_HCD is not set +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# +# LED devices +# +# CONFIG_NEW_LEDS is not set + +# +# LED drivers +# + +# +# LED Triggers +# + +# +# InfiniBand support +# + +# +# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# + +# +# Real Time Clock +# +# CONFIG_RTC_CLASS is not set + +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices +# + +# +# Auxiliary Display support +# + +# +# Virtualization +# + +# +# File systems +# +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_FS_POSIX_ACL is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_MINIX_FS=m +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_QUOTA is not set +# CONFIG_DNOTIFY is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +CONFIG_CONFIGFS_FS=m + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +# CONFIG_NFS_FS is not set +# CONFIG_NFSD is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=m +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=m +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=m +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=m + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_KPROBES is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux/kb9202/.mtn2git_empty b/packages/linux/linux/kb9202/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/linux/kb9202/.mtn2git_empty diff --git a/packages/linux/linux/kb9202/defconfig b/packages/linux/linux/kb9202/defconfig new file mode 100644 index 0000000000..c16537d9d6 --- /dev/null +++ b/packages/linux/linux/kb9202/defconfig @@ -0,0 +1,780 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.13-rc2 +# Sun Aug 14 19:26:59 2005 +# +CONFIG_ARM=y +CONFIG_MMU=y +CONFIG_UID16=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_CALIBRATE_DELAY=y + +# +# Code maturity level options +# +# CONFIG_EXPERIMENTAL is not set +CONFIG_CLEAN_COMPILE=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +# CONFIG_SWAP is not set +# CONFIG_SYSVIPC is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +CONFIG_HOTPLUG=y +# CONFIG_KOBJECT_UEVENT is not set +# CONFIG_IKCONFIG is not set +# CONFIG_EMBEDDED is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SHMEM=y +CONFIG_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_OBSOLETE_MODPARM=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# System Type +# +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set +CONFIG_ARCH_AT91=y +CONFIG_ARCH_AT91RM9200=y + +# +# AT91RM9200 Implementations +# +# CONFIG_ARCH_AT91RM9200DK is not set +# CONFIG_MACH_AT91RM9200EK is not set +# CONFIG_MACH_CSB337 is not set +# CONFIG_MACH_CSB637 is not set +# CONFIG_MACH_CARMEVA is not set +CONFIG_MACH_KB9200=y + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_ARM920T=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4T=y +CONFIG_CPU_CACHE_V4WT=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y +CONFIG_CPU_TLB_V4WBI=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set + +# +# Bus support +# +CONFIG_ISA_DMA_API=y + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_NO_IDLE_HZ is not set +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x10000000 +CONFIG_ZBOOT_ROM_BSS=0x20040000 +CONFIG_ZBOOT_ROM=y +CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/ram rw initrd=0x20210000,654933" + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=y +CONFIG_BINFMT_MISC=y +# CONFIG_ARTHUR is not set + +# +# Power management options +# +# CONFIG_PM is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set +CONFIG_DEBUG_DRIVER=y + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +CONFIG_BLK_DEV_NBD=y +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CDROM_PKTCDVD is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_ATA_OVER_ETH is not set + +# +# SCSI device support +# +CONFIG_SCSI=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +CONFIG_CHR_DEV_SG=y +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set + +# +# SCSI low-level drivers +# +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_DEBUG is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Networking support +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_IP_TCPDIAG is not set +# CONFIG_IP_TCPDIAG_IPV6 is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set +# CONFIG_NET_CLS_ROUTE is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_ARM_AT91_ETHER=y +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_ATMEL=y +CONFIG_SERIAL_ATMEL_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_AT91RM9200_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_AT91_SPI is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Misc devices +# + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +# CONFIG_FB is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB=y +CONFIG_USB_DEBUG=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_BLUETOOTH_TTY is not set +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DEBUG=y +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_DPCM is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set +# CONFIG_USB_EGALAX is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MICROTEK is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set + +# +# Video4Linux support is needed for USB Multimedia device support +# + +# +# USB Network Adapters +# +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# MMC/SD Card support +# +# CONFIG_MMC is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_POSIX_ACL is not set +# CONFIG_EXT2_FS_SECURITY is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set + +# +# XFS support +# +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +CONFIG_AUTOFS_FS=y +CONFIG_AUTOFS4_FS=y + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +CONFIG_DEVPTS_FS_XATTR=y +# CONFIG_DEVPTS_FS_SECURITY is not set +CONFIG_TMPFS=y +# CONFIG_TMPFS_XATTR is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y + +# +# Miscellaneous filesystems +# +# CONFIG_HFSPLUS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +# CONFIG_NLS_ISO8859_1 is not set +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_FS is not set +CONFIG_FRAME_POINTER=y +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +# CONFIG_CRC_CCITT is not set +CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set diff --git a/packages/linux/linux_2.6.21.bb b/packages/linux/linux_2.6.21.bb index d801f88507..c608fe3378 100644 --- a/packages/linux/linux_2.6.21.bb +++ b/packages/linux/linux_2.6.21.bb @@ -1,9 +1,12 @@ DESCRIPTION = "Linux Kernel" SECTION = "kernel" LICENSE = "GPL" +DEPENDS_kb9202 = "u-boot" +PR = "r3" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ - file://defconfig" + file://defconfig \ + " SRC_URI_append_simpad = "\ file://linux-2.6.21-SIMpad-cs3-simpad.patch;patch=1 \ @@ -12,12 +15,28 @@ SRC_URI_append_simpad = "\ file://linux-2.6.21-SIMpad-ucb1x00-switches.patch;patch=1 \ file://linux-2.6.21-pcmcia-device-to-platform-driver.patch;patch=1 \ " +SRC_URI_append_kb9202 = "http://maxim.org.za/AT91RM9200/2.6/2.6.21-at91.patch.gz;patch=1" inherit kernel +KERNEL_IMAGETYPE_progear = "bzImage" KERNEL_IMAGETYPE_simpad = "zImage" +KERNEL_IMAGETYPE_kb9202 = "uImage" +KERNEL_IMAGETYPE_at32stk1000 = "uImage" do_configure_prepend() { - install -m 0644 ${WORKDIR}/defconfig ${S}/.config + if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then + echo "CONFIG_AEABI=y" >> ${S}/.config + echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config + else + echo "# CONFIG_AEABI is not set" >> ${S}/.config + echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config + fi + + sed -e '/CONFIG_AEABI/d' \ + -e '/CONFIG_OABI_COMPAT=/d' \ + '${WORKDIR}/defconfig' >>'${S}/.config' + + yes '' | oe_runmake oldconfig } diff --git a/packages/linux/unslung-kernel/defconfig b/packages/linux/unslung-kernel/defconfig index a5ad6094ae..03247f74b5 100644 --- a/packages/linux/unslung-kernel/defconfig +++ b/packages/linux/unslung-kernel/defconfig @@ -758,11 +758,11 @@ CONFIG_SCSI_MULTI_LUN=y # # Input core support # -# CONFIG_INPUT is not set +CONFIG_INPUT=m # CONFIG_INPUT_KEYBDEV is not set # CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=m # # Character devices @@ -1126,13 +1126,13 @@ CONFIG_USB_PRINTER=m # # USB Human Interface Devices (HID) # -# CONFIG_USB_HID is not set +CONFIG_USB_HID=m # # Input core support is needed for USB HID input layer or HIDBP support # -# CONFIG_USB_HIDINPUT is not set -# CONFIG_USB_HIDDEV is not set +CONFIG_USB_HIDINPUT=y +CONFIG_USB_HIDDEV=y # CONFIG_USB_KBD is not set # CONFIG_USB_MOUSE is not set # CONFIG_USB_AIPTEK is not set diff --git a/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb b/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb index df3141725c..cb3f9be78b 100644 --- a/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb +++ b/packages/linux/unslung-kernel_2.4.22.l2.3r63.bb @@ -1,7 +1,7 @@ SECTION = "kernel" DESCRIPTION = "Vendor-compatible Linux kernel for the Linksys NSLU2 device" LICENSE = "GPL" -PR = "r18" +PR = "r19" COMPATIBLE_HOST = 'arm.*-linux' COMPATIBLE_MACHINE = "nslu2" diff --git a/packages/linux/xanadux-ba-2.6_2.6.12.bb b/packages/linux/xanadux-ba-2.6_2.6.12.bb index c7f73fb37b..ee58d36434 100644 --- a/packages/linux/xanadux-ba-2.6_2.6.12.bb +++ b/packages/linux/xanadux-ba-2.6_2.6.12.bb @@ -6,6 +6,7 @@ SRC_URI = "cvs://anonymous@xanadux.cvs.sourceforge.net/cvsroot/xanadux;method=ps S = "${WORKDIR}/linux-2.6-xda" COMPATIBLE_HOST = "arm.*-linux" +COMPATIBLE_MACHINE = "blueangel" inherit kernel diff --git a/packages/linux/xanadux-un-2.6_2.6.12.bb b/packages/linux/xanadux-un-2.6_2.6.12.bb index a82e0abd3e..4a0f5265f1 100644 --- a/packages/linux/xanadux-un-2.6_2.6.12.bb +++ b/packages/linux/xanadux-un-2.6_2.6.12.bb @@ -8,6 +8,8 @@ SRC_URI = "cvs://anonymous@xanadux.cvs.sourceforge.net/cvsroot/xanadux;method=ps S = "${WORKDIR}/linux-2.6-xda" COMPATIBLE_HOST = "arm.*-linux" +COMPATIBLE_MACHINE = "htc-universal" + inherit kernel diff --git a/packages/lirc/lirc-modules_0.8.1+cvs20070307.bb b/packages/lirc/lirc-modules_0.8.1+cvs20070307.bb index 5b11f32369..3ecfb76b3c 100644 --- a/packages/lirc/lirc-modules_0.8.1+cvs20070307.bb +++ b/packages/lirc/lirc-modules_0.8.1+cvs20070307.bb @@ -7,7 +7,8 @@ DEPENDS = "virtual/kernel fakeroot-native setserial" RDEPENDS_nslu2 = "setserial" PR = "r0" -DEFAULT_PREFERENCE = "-1" +# enable this bb file until the other packages compile again +#DEFAULT_PREFERENCE = "-1" SRCDATE=${@bb.data.getVar('PV', d, 1)[9:]} diff --git a/packages/lirc/lirc_0.8.1+cvs20070307.bb b/packages/lirc/lirc_0.8.1+cvs20070307.bb index e32477673e..61f7019b2e 100644 --- a/packages/lirc/lirc_0.8.1+cvs20070307.bb +++ b/packages/lirc/lirc_0.8.1+cvs20070307.bb @@ -17,7 +17,8 @@ RDEPENDS_lirc-nslu2example = "lirc lirc-exec" RRECOMMENDS_lirc = "lirc-exec" PR = "r1" -DEFAULT_PREFERENCE = "-1" +# enable cvs version since until compilation issues for other packages have been fixed (cf. bug 2284 et al). +#DEFAULT_PREFERENCE = "-1" SRCDATE=${@bb.data.getVar('PV', d, 1)[9:]} diff --git a/packages/llvm/llvm-native_2.0.bb b/packages/llvm/llvm-native_2.0.bb new file mode 100644 index 0000000000..9507c989cd --- /dev/null +++ b/packages/llvm/llvm-native_2.0.bb @@ -0,0 +1,12 @@ +require llvm.inc + +SRC_URI = "http://llvm.org/releases/2.0/llvm-${PV}.tar.gz" + + +inherit native + +S = "${WORKDIR}/llvm-${PV}" + +do_stage() { + install -m 755 ${S}/Release/bin/* ${STAGING_BINDIR_NATIVE}/ +} diff --git a/packages/lua/lua.inc b/packages/lua/lua.inc index a03bf8ff22..b713825f00 100644 --- a/packages/lua/lua.inc +++ b/packages/lua/lua.inc @@ -3,10 +3,16 @@ for extending applications." LICENSE = "MIT" HOMEPAGE = "http://www.lua.org/" -PACKAGES = "${PN} liblua ${PN}-doc liblua-dev \ - liblualib liblualib-dev" -FILES_${PN} = "${bindir}/lua ${bindir}/luac" -FILES_${PN}-doc = "${mandir}/man1/lua.1 ${mandir}/man1/luac.1" +PACKAGES = "liblua-dbg liblualib-dbg ${PN}-dbg \ +liblua-dev liblua liblualib-dev liblualib ${PN}-doc ${PN}" + +FILES_${PN}-dbg = "${bindir}/.debug" +FILES_liblua-dbg = "${libdir}/.debug/liblua.so.*" +FILES_liblualib-dbg = "${libdir}/.debug/liblualib.so.*" + +FILES_${PN} = "${bindir}" +FILES_${PN}-doc = "${mandir}" + FILES_liblua = "${libdir}/liblua.so.*" FILES_liblua-dev = "${libdir}/liblua.so ${libdir}/liblua.a \ ${includedir}/lua.h" diff --git a/packages/lua/lua_5.0.2.bb b/packages/lua/lua_5.0.2.bb index 6dbb656166..bb989c04d9 100644 --- a/packages/lua/lua_5.0.2.bb +++ b/packages/lua/lua_5.0.2.bb @@ -1,7 +1,7 @@ require lua.inc DEPENDS += "readline" -PR = "r3" +PR = "r4" SRC_URI = "http://www.lua.org/ftp/lua-${PV}.tar.gz \ file://debian.patch;patch=1 \ file://make.patch;patch=1 \ diff --git a/packages/m4/m4_1.4.8.bb b/packages/m4/m4_1.4.8.bb index 90f817d1f3..77d8e822b0 100644 --- a/packages/m4/m4_1.4.8.bb +++ b/packages/m4/m4_1.4.8.bb @@ -4,8 +4,6 @@ LICENSE = "GPL" SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz" S = "${WORKDIR}/m4-${PV}" -DEFAULT_PREFERENCE = "-1" - inherit autotools EXTRA_OEMAKE += "'infodir=${infodir}'" diff --git a/packages/mISDN/.mtn2git_empty b/packages/mISDN/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mISDN/.mtn2git_empty diff --git a/packages/mISDN/files/.mtn2git_empty b/packages/mISDN/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/mISDN/files/.mtn2git_empty diff --git a/packages/mISDN/files/Makefile b/packages/mISDN/files/Makefile new file mode 100644 index 0000000000..bed60110ea --- /dev/null +++ b/packages/mISDN/files/Makefile @@ -0,0 +1,4 @@ +PWD := $(shell pwd) +SELECTION := CONFIG_MISDN_DRV=m CONFIG_MISDN_DSP=m CONFIG_MISDN_HFCUSB=m +default modules: + $(MAKE) -C $(KDIR) SUBDIRS=${PWD}/drivers/isdn/hardware/mISDN/ EXTRA_CFLAGS=-I${PWD}/include modules ${SELECTION} diff --git a/packages/mISDN/files/hfcs_usb_endianchecks.diff b/packages/mISDN/files/hfcs_usb_endianchecks.diff new file mode 100644 index 0000000000..1f6ff3fcc8 --- /dev/null +++ b/packages/mISDN/files/hfcs_usb_endianchecks.diff @@ -0,0 +1,58 @@ +--- mISDN.org/drivers/isdn/hardware/mISDN/hfcs_usb.c 2005-06-23 18:43:36.000000000 +0200 ++++ mISDN/drivers/isdn/hardware/mISDN/hfcs_usb.c 2005-08-12 16:16:24.000000000 +0200 +@@ -2038,9 +2038,9 @@ + + vend_idx = 0xffff; + for (i = 0; hfcsusb_idtab[i].idVendor; i++) { +- if (dev->descriptor.idVendor == hfcsusb_idtab[i].idVendor ++ if (dev->descriptor.idVendor == le16_to_cpu(hfcsusb_idtab[i].idVendor) + && dev->descriptor.idProduct == +- hfcsusb_idtab[i].idProduct) { ++ le16_to_cpu(hfcsusb_idtab[i].idProduct)) { + vend_idx = i; + continue; + } +@@ -2160,8 +2160,8 @@ + usb_transfer_mode + = USB_INT; + packet_size = +- ep->desc. +- wMaxPacketSize; ++ le16_to_cpu(ep->desc. ++ wMaxPacketSize); + break; + case USB_ENDPOINT_XFER_BULK: + if (ep_addr & 0x80) +@@ -2189,8 +2189,8 @@ + usb_transfer_mode + = USB_BULK; + packet_size = +- ep->desc. +- wMaxPacketSize; ++ le16_to_cpu(ep->desc. ++ wMaxPacketSize); + break; + case USB_ENDPOINT_XFER_ISOC: + if (ep_addr & 0x80) +@@ -2218,8 +2218,8 @@ + usb_transfer_mode + = USB_ISOC; + iso_packet_size = +- ep->desc. +- wMaxPacketSize; ++ le16_to_cpu(ep->desc. ++ wMaxPacketSize); + break; + default: + card-> +@@ -2234,8 +2234,8 @@ + card; + card->fifos[cidx]. + usb_packet_maxlen = +- ep->desc. +- wMaxPacketSize; ++ le16_to_cpu(ep->desc. ++ wMaxPacketSize); + card->fifos[cidx]. + intervall = + ep->desc.bInterval; diff --git a/packages/mISDN/misdn_cvs.bb b/packages/mISDN/misdn_cvs.bb new file mode 100644 index 0000000000..865e41b2f9 --- /dev/null +++ b/packages/mISDN/misdn_cvs.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "mISDN kernel packages" +PRIORITY = "optional" +SECTION = "kernel/modules" +LICENSE = "GPL" +PR = "r0" + +DEFAULT_PREFERENCE = "-1" + +# hfcs_usb_endianchecks.diff does not apply cleanly anymore (cf. bug 240) +# without it the package at least compiles. no guarantees about functionality. +SRC_URI = "cvs://anonymous:readonly@cvs.isdn4linux.de/i4ldev;module=mISDN;method=pserver \ +# file://hfcs_usb_endianchecks.diff;patch=1 \ + file://Makefile" + +S = "${WORKDIR}/mISDN/" + +inherit module + +do_compile_prepend() { + cp -f ${WORKDIR}/Makefile ${S}/ + cp ${S}/drivers/isdn/hardware/mISDN/Makefile.v2.6 ${S}/drivers/isdn/hardware/mISDN/Makefile +} + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + oe_runmake 'KDIR=${STAGING_KERNEL_DIR}' \ + 'CC=${KERNEL_CC}' \ + 'LD=${KERNEL_LD}' +} + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/isdn/hardware/mISDN/ + install -m 0644 ${S}/drivers/isdn/hardware/mISDN/*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/isdn/hardware/mISDN +} + diff --git a/packages/madwifi/madwifi-ng_r.inc b/packages/madwifi/madwifi-ng_r.inc index 574a8b440a..73c585b0d8 100644 --- a/packages/madwifi/madwifi-ng_r.inc +++ b/packages/madwifi/madwifi-ng_r.inc @@ -4,7 +4,7 @@ PRIORITY = "optional" LICENSE = "GPL" RDEPENDS = "kernel (${KERNEL_VERSION})" DEPENDS = "virtual/kernel" -PR="r4" +PR="r5" WACKELF_SRC_URI = "" WACKELF_SRC_URI_ixp4xx = " file://20-xscale-VFP-wackelf.patch;patch=1" @@ -23,6 +23,7 @@ inherit module-base ARCH_efika="powerpc" ARCH_dht-walnut="ppc" ARCH_magicbox="ppc" +ARCH_sequoia="ppc" EXTRA_OEMAKE = "LDFLAGS= KERNELPATH=${STAGING_KERNEL_DIR} KERNELRELEASE=${KERNEL_VERSION} TOOLPREFIX=${TARGET_PREFIX}" diff --git a/packages/matchbox-keyboard/files/2-Add-new-modifier--layout--Used-to-cycle-thru-all-available-layouts.patch b/packages/matchbox-keyboard/files/2-Add-new-modifier--layout--Used-to-cycle-thru-all-available-layouts.patch new file mode 100644 index 0000000000..2d05e5d652 --- /dev/null +++ b/packages/matchbox-keyboard/files/2-Add-new-modifier--layout--Used-to-cycle-thru-all-available-layouts.patch @@ -0,0 +1,91 @@ +# HG changeset patch +# User pfalcon@localhost +# Date 1176076569 0 +# Node ID ff9cf1fd8177dded04b9fc81ba630203848fc3ca +# Parent 96305d94eb31f06f5618c99310192c47c68a1f21 +Add new modifier: layout. Used to cycle thru all available layouts. + +diff -r 96305d94eb31 -r ff9cf1fd8177 src/config-parser.c +--- a/src/config-parser.c Sun Apr 08 23:28:43 2007 +0000 ++++ b/src/config-parser.c Sun Apr 08 23:56:09 2007 +0000 +@@ -113,7 +113,8 @@ ModLookup[] = + { "mod1", MBKeyboardKeyModMod1 }, + { "mod2", MBKeyboardKeyModMod2 }, + { "mod3", MBKeyboardKeyModMod3 }, +- { "caps", MBKeyboardKeyModCaps } ++ { "caps", MBKeyboardKeyModCaps }, ++ { "layout", MBKeyboardKeyModLayout }, + }; + + typedef struct MBKeyboardConfigState +diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard-key.c +--- a/src/matchbox-keyboard-key.c Sun Apr 08 23:28:43 2007 +0000 ++++ b/src/matchbox-keyboard-key.c Sun Apr 08 23:56:09 2007 +0000 +@@ -493,6 +493,16 @@ mb_kbd_key_press(MBKeyboardKey *key) + case MBKeyboardKeyModAlt: + mb_kbd_toggle_state(key->kbd, MBKeyboardStateAlt); + break; ++ case MBKeyboardKeyModLayout: ++ key->kbd->selected_layout_no++; ++ if (key->kbd->selected_layout_no >= util_list_length(key->kbd->layouts)) ++ key->kbd->selected_layout_no = 0; ++ key->kbd->selected_layout = ++ (MBKeyboardLayout *)util_list_get_nth_data(key->kbd->layouts, ++ key->kbd->selected_layout_no); ++ mb_kbd_ui_recalc_ui_layout(key->kbd->ui); ++ queue_full_kbd_redraw = True; ++ break; + default: + DBG("unknown modifier action"); + break; +diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard-ui.c +--- a/src/matchbox-keyboard-ui.c Sun Apr 08 23:28:43 2007 +0000 ++++ b/src/matchbox-keyboard-ui.c Sun Apr 08 23:56:09 2007 +0000 +@@ -505,6 +505,15 @@ mb_kbd_ui_allocate_ui_layout(MBKeyboardU + } + + *width = max_row_width; ++} ++ ++void ++mb_kbd_ui_recalc_ui_layout(MBKeyboardUI *ui) ++{ ++ mb_kbd_ui_allocate_ui_layout(ui, ++ &ui->base_alloc_width, &ui->base_alloc_height); ++ ++ mb_kbd_ui_resize(ui, ui->xwin_width, ui->xwin_height); + } + + void +diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard.c +--- a/src/matchbox-keyboard.c Sun Apr 08 23:28:43 2007 +0000 ++++ b/src/matchbox-keyboard.c Sun Apr 08 23:56:09 2007 +0000 +@@ -85,6 +85,7 @@ mb_kbd_new (int argc, char **argv) + + kb->selected_layout + = (MBKeyboardLayout *)util_list_get_nth_data(kb->layouts, 0); ++ kb->selected_layout_no = 0; + + if (want_embedding) + mb_kbd_ui_set_embeded( kb->ui, True ); +diff -r 96305d94eb31 -r ff9cf1fd8177 src/matchbox-keyboard.h +--- a/src/matchbox-keyboard.h Sun Apr 08 23:28:43 2007 +0000 ++++ b/src/matchbox-keyboard.h Sun Apr 08 23:56:09 2007 +0000 +@@ -148,6 +148,7 @@ struct MBKeyboard + + List *layouts; + MBKeyboardLayout *selected_layout; ++ int selected_layout_no; + + int key_border, key_pad, key_margin; + int row_spacing, col_spacing; +@@ -177,6 +178,9 @@ int + int + mb_kbd_ui_init(MBKeyboard *kbd); + ++void ++mb_kbd_ui_recalc_ui_layout(MBKeyboardUI *ui); ++ + int + mb_kbd_ui_realize(MBKeyboardUI *ui); + diff --git a/packages/matchbox-keyboard/files/3-Changes-to-improve-layout-rendering--especially-after-adding-support-for.patch b/packages/matchbox-keyboard/files/3-Changes-to-improve-layout-rendering--especially-after-adding-support-for.patch new file mode 100644 index 0000000000..8513b6ed86 --- /dev/null +++ b/packages/matchbox-keyboard/files/3-Changes-to-improve-layout-rendering--especially-after-adding-support-for.patch @@ -0,0 +1,94 @@ +# HG changeset patch +# User pfalcon@localhost +# Date 1176077194 0 +# Node ID b010d54a6c5020a68855e60e5a423ee3c18ed700 +# Parent ff9cf1fd8177dded04b9fc81ba630203848fc3ca +Changes to improve layout rendering, especially after adding support for +multiple layouts: +1. Add --hfactor option which presets keyboard to the specified percentage +of screen height. This is required for multiple layouts, as otherwise +height is calculated on specific layout, but in such a way that it is +affected by previous layout, which leads to rendering artifacts. +2. Also st default font height to 6, after all. + +diff -r ff9cf1fd8177 -r b010d54a6c50 src/matchbox-keyboard-ui.c +--- a/src/matchbox-keyboard-ui.c Sun Apr 08 23:56:09 2007 +0000 ++++ b/src/matchbox-keyboard-ui.c Mon Apr 09 00:06:34 2007 +0000 +@@ -744,9 +744,15 @@ mb_kbd_ui_resources_create(MBKeyboardUI + */ + if (desk_width > ui->xwin_width) + { ++ int win_height; ++ if (ui->kbd->hfactor != 0) ++ win_height = desk_height * ui->kbd->hfactor / 100; ++ else ++ win_height = ( desk_width * ui->xwin_height ) / ui->xwin_width; ++ + mb_kbd_ui_resize(ui, + desk_width, +- ( desk_width * ui->xwin_height ) / ui->xwin_width); ++ win_height); + } + + wm_struct_vals[2] = desk_y + desk_height - ui->xwin_height; +@@ -818,8 +824,11 @@ mb_kbd_ui_resize(MBKeyboardUI *ui, int w + width_diff = width - ui->base_alloc_width; + height_diff = height - ui->base_alloc_height; + ++/* It's better to have some "clipped" keys, than busted layout. */ ++#if 0 + if (width_diff < 0 || height_diff < 0) + return; /* dont go smaller than our int request - get clipped */ ++#endif + + layout = mb_kbd_get_selected_layout(ui->kbd); + row_item = mb_kbd_layout_rows(layout); +diff -r ff9cf1fd8177 -r b010d54a6c50 src/matchbox-keyboard.c +--- a/src/matchbox-keyboard.c Sun Apr 08 23:56:09 2007 +0000 ++++ b/src/matchbox-keyboard.c Mon Apr 09 00:06:34 2007 +0000 +@@ -23,8 +23,9 @@ mb_kbd_usage (char *progname) + mb_kbd_usage (char *progname) + { + fprintf(stderr, "Usage:\n %s [Options ] [ Layout Variant ]\n", progname); +- fprintf(stderr, "\nOptions are;\n" +- " -xid,--xid Print window ID to stdout ( for embedding )\n"); ++ fprintf(stderr, "\nOptions are:\n" ++ " -xid,--xid Print window ID to stdout ( for embedding )\n" ++ " --hfactor <percent> Fix keyboard window size in percentage of desktop height\n"); + fprintf(stderr, "\nmatchbox-keyboard %s \nCopyright (C) 2005 Matthew Allum, OpenedHand Ltd.\n", VERSION); + + exit(-1); +@@ -58,6 +59,13 @@ mb_kbd_new (int argc, char **argv) + want_embedding = True; + continue; + } ++ if (streq ("-hfactor", argv[i]) || streq ("--hfactor", argv[i])) ++ { ++ if (i + 1 < argc) { ++ kb->hfactor = atoi(argv[i + 1]); ++ } ++ continue; ++ } + + if (i == (argc-1) && argv[i][0] != '-') + variant = argv[i]; +@@ -77,7 +85,7 @@ mb_kbd_new (int argc, char **argv) + kb->key_pad = 0; + kb->col_spacing = 0; + kb->row_spacing = 0; +- kb->font_pt_size = 5; ++ kb->font_pt_size = 6; + } + + if (!mb_kbd_config_load(kb, variant)) +diff -r ff9cf1fd8177 -r b010d54a6c50 src/matchbox-keyboard.h +--- a/src/matchbox-keyboard.h Sun Apr 08 23:56:09 2007 +0000 ++++ b/src/matchbox-keyboard.h Mon Apr 09 00:06:34 2007 +0000 +@@ -143,6 +143,7 @@ struct MBKeyboard + char *font_family; + int font_pt_size; + char *font_variant; ++ int hfactor; + + char *config_file; + diff --git a/packages/matchbox-keyboard/files/4-Add-rendering-debug-logging.patch b/packages/matchbox-keyboard/files/4-Add-rendering-debug-logging.patch new file mode 100644 index 0000000000..7ce61e469c --- /dev/null +++ b/packages/matchbox-keyboard/files/4-Add-rendering-debug-logging.patch @@ -0,0 +1,65 @@ +# HG changeset patch +# User pfalcon@localhost +# Date 1176077287 0 +# Node ID 38c3459f2e1a1c8dc7aacb486f201bdda638c7f2 +# Parent b010d54a6c5020a68855e60e5a423ee3c18ed700 +Add rendering debug logging. + +diff -r b010d54a6c50 -r 38c3459f2e1a src/matchbox-keyboard-ui.c +--- a/src/matchbox-keyboard-ui.c Mon Apr 09 00:06:34 2007 +0000 ++++ b/src/matchbox-keyboard-ui.c Mon Apr 09 00:08:07 2007 +0000 +@@ -357,6 +357,8 @@ mb_kbd_ui_allocate_ui_layout(MBKeyboardU + /* Do an initial run to figure out a 'base' size for single glyph keys */ + mb_kdb_ui_unit_key_size(ui, &ui->key_uwidth, &ui->key_uheight); + ++ DBG("unit_key_size: %dx%d", ui->key_uwidth, ui->key_uheight); ++ + row_item = mb_kbd_layout_rows(layout); + + row_y = mb_kbd_row_spacing(ui->kbd); +@@ -415,6 +417,8 @@ mb_kbd_ui_allocate_ui_layout(MBKeyboardU + + if (key_x > max_row_width) /* key_x now represents row width */ + max_row_width = key_x; ++ ++ DBG("Row width: %d", key_x); + + mb_kbd_row_set_y(row, row_y); + +@@ -617,6 +621,8 @@ mb_kbd_ui_resources_create(MBKeyboardUI + boolean have_matchbox_wm = False; + boolean have_ewmh_wm = False; + ++ DBG("mb_kbd_ui_resources_create: %dx%d", ui->xwin_width, ui->xwin_height); ++ + /* + atom_wm_protocols = { + XInternAtom(ui->xdpy, "WM_DELETE_WINDOW",False), +@@ -821,6 +827,8 @@ mb_kbd_ui_resize(MBKeyboardUI *ui, int w + + MARK(); + ++ DBG("mb_kbd_ui_resize: resize to %dx%d, base %dx%d", width, height, ui->base_alloc_width, ui->base_alloc_height); ++ + width_diff = width - ui->base_alloc_width; + height_diff = height - ui->base_alloc_height; + +@@ -1125,6 +1133,7 @@ mb_kbd_ui_event_loop(MBKeyboardUI *ui) + } + break; + case ConfigureNotify: ++ DBG("ConfigureNotify %i,%i", xev.xconfigure.width, xev.xconfigure.height); + if (xev.xconfigure.width != ui->xwin_width + || xev.xconfigure.height != ui->xwin_height) + mb_kbd_ui_handle_configure(ui, +diff -r b010d54a6c50 -r 38c3459f2e1a src/matchbox-keyboard.h +--- a/src/matchbox-keyboard.h Mon Apr 09 00:06:34 2007 +0000 ++++ b/src/matchbox-keyboard.h Mon Apr 09 00:08:07 2007 +0000 +@@ -48,6 +48,7 @@ + #include "config.h" + #endif + ++#define WANT_DEBUG 1 + #if (WANT_DEBUG) + #define DBG(x, a...) \ + fprintf (stderr, __FILE__ ":%d,%s() " x "\n", __LINE__, __func__, ##a) diff --git a/packages/matchbox-keyboard/files/5-Add-support-for-loading-multiple-independent-layouts.patch b/packages/matchbox-keyboard/files/5-Add-support-for-loading-multiple-independent-layouts.patch new file mode 100644 index 0000000000..1480591930 --- /dev/null +++ b/packages/matchbox-keyboard/files/5-Add-support-for-loading-multiple-independent-layouts.patch @@ -0,0 +1,197 @@ +# HG changeset patch +# User pfalcon@localhost +# Date 1181567228 0 +# Node ID 869314ae90f46a8c2d34080005d4079cb0d0fcf4 +# Parent 38c3459f2e1a1c8dc7aacb486f201bdda638c7f2 +Add support for loading multiple independent layouts. +All layouts found in ~/.matchbox/keyboard.d/ are loaded, realistically +these will be symlinks to system-wide store. This directory has the highest +priority of all other layout selection mechanism (except for +$MB_KBD_CONFIG). + +diff -r 38c3459f2e1a -r 869314ae90f4 src/config-parser.c +--- a/src/config-parser.c Mon Apr 09 00:08:07 2007 +0000 ++++ b/src/config-parser.c Mon Jun 11 13:07:08 2007 +0000 +@@ -17,6 +17,7 @@ + * + */ + ++#include <dirent.h> + #include "matchbox-keyboard.h" + + /* +@@ -57,6 +58,9 @@ + + </keyboard> + */ ++ ++int mb_kbd_config_parse_file(MBKeyboard *kbd, char *path); ++static int mb_kbd_config_parse_data(MBKeyboard *kbd, char *data); + + struct _keysymlookup + { +@@ -170,12 +174,9 @@ config_str_to_modtype(const char* str) + } + + +-static char* +-config_load_file(MBKeyboard *kbd, char *variant_in) +-{ +- struct stat stat_info; +- FILE* fp; +- char *result; ++int ++mb_kbd_config_load(MBKeyboard *kbd, char *variant_in) ++{ + char *country = NULL; + char *variant = NULL; + char *lang = NULL; +@@ -195,7 +196,44 @@ config_load_file(MBKeyboard *kbd, char * + if (util_file_readable(path)) + goto load; + +- return NULL; ++ return 0; ++ } ++ ++ if (getenv("HOME")) ++ { ++ snprintf(path, 1024, "%s/.matchbox/keyboard.d", getenv("HOME")); ++ ++ DBG("checking %s\n", path); ++ ++ if (util_file_readable(path)) ++ { ++ DIR *dir = opendir(path); ++ struct dirent *dirent; ++ if (!dir) ++ { ++ perror("matchbox-keyboard"); ++ util_fatal_error("Cannot read keyboard.d.\n"); ++ } ++ errno = 0; ++ while ((dirent = readdir(dir))) ++ { ++ if (dirent->d_name[0] == '.') ++ continue; ++ snprintf(path, 1024, "%s/.matchbox/keyboard.d/%s", getenv("HOME"), dirent->d_name); ++ if (!mb_kbd_config_parse_file(kbd, path)) ++ { ++ util_fatal_error("Cannot read file in keyboard.d.\n"); ++ } ++ ++ } ++ if (errno) ++ { ++ perror("matchbox-keyboard"); ++ util_fatal_error("Error reading keyboard.d.\n"); ++ } ++ closedir(dir); ++ return 1; ++ } + } + + lang = getenv("MB_KBD_LANG"); +@@ -268,29 +306,11 @@ config_load_file(MBKeyboard *kbd, char * + DBG("checking %s\n", path); + + if (!util_file_readable(path)) +- return NULL; ++ return 0; + + load: + +- if (stat(path, &stat_info)) +- return NULL; +- +- if ((fp = fopen(path, "rb")) == NULL) +- return NULL; +- +- DBG("loading %s\n", path); +- +- kbd->config_file = strdup(path); +- +- result = malloc(stat_info.st_size + 1); +- +- n = fread(result, 1, stat_info.st_size, fp); +- +- if (n >= 0) result[n] = '\0'; +- +- fclose(fp); +- +- return result; ++ return mb_kbd_config_parse_file(kbd, path); + } + + static const char * +@@ -567,25 +587,48 @@ config_xml_start_cb(void *data, const ch + + + int +-mb_kbd_config_load(MBKeyboard *kbd, char *variant) +-{ +- char *data; ++mb_kbd_config_parse_file(MBKeyboard *kbd, char *path) ++{ ++ char *buffer; ++ struct stat stat_info; ++ FILE* fp; ++ int n; ++ ++ if (stat(path, &stat_info)) ++ return 0; ++ ++ if ((fp = fopen(path, "rb")) == NULL) ++ return 0; ++ ++ DBG("loading %s\n", path); ++ ++ kbd->config_file = strdup(path); ++ ++ buffer = malloc(stat_info.st_size + 1); ++ ++ n = fread(buffer, 1, stat_info.st_size, fp); ++ ++ if (n >= 0) buffer[n] = '\0'; ++ ++ fclose(fp); ++ ++ mb_kbd_config_parse_data(kbd, buffer); ++ ++ free(buffer); ++ ++ return 1; ++} ++ ++static int ++mb_kbd_config_parse_data(MBKeyboard *kbd, char *data) ++{ + XML_Parser p; + MBKeyboardConfigState *state; + +- if ((data = config_load_file(kbd, variant)) == NULL) +- util_fatal_error("Couldn't find a keyboard config file\n"); +- + p = XML_ParserCreate(NULL); + + if (!p) + util_fatal_error("Couldn't allocate memory for XML parser\n"); +- +- if (variant && !strstr(kbd->config_file, variant)) +- fprintf(stderr, +- "matchbox-keyboard: *Warning* Unable to locate variant: %s\n" +- " falling back to %s\n", +- variant, kbd->config_file); + + state = util_malloc0(sizeof(MBKeyboardConfigState)); + +@@ -607,6 +650,9 @@ mb_kbd_config_load(MBKeyboard *kbd, char + util_fatal_error("XML Parse failed.\n"); + } + ++ free(state); ++ XML_ParserFree(p); ++ + return 1; + } + diff --git a/packages/matchbox-keyboard/files/6-Add-layout-switch-key-to-all-layouts.patch b/packages/matchbox-keyboard/files/6-Add-layout-switch-key-to-all-layouts.patch new file mode 100644 index 0000000000..c2cf4d62dd --- /dev/null +++ b/packages/matchbox-keyboard/files/6-Add-layout-switch-key-to-all-layouts.patch @@ -0,0 +1,111 @@ +# HG changeset patch +# User pfalcon@localhost +# Date 1181568553 0 +# Node ID edc3fd8303a394bccadde2f427ab25ebda4fcbc8 +# Parent 869314ae90f46a8c2d34080005d4079cb0d0fcf4 +Add layout switch key to all layouts. + +diff -r 869314ae90f4 -r edc3fd8303a3 layouts/keyboard-dvorak.xml +--- a/layouts/keyboard-dvorak.xml Mon Jun 11 13:07:08 2007 +0000 ++++ b/layouts/keyboard-dvorak.xml Mon Jun 11 13:29:13 2007 +0000 +@@ -271,6 +271,10 @@ Contributed by Leon Matthews http://www. + <!-- Bottom Row --> + <row> + <space width="500" extended="true"/> ++ <key> ++ <default display="[->]" action="modifier:layout"/> ++ </key> ++ + <key> + <default display="äëö" action="modifier:mod1"/> + </key> +diff -r 869314ae90f4 -r edc3fd8303a3 layouts/keyboard-extended.xml +--- a/layouts/keyboard-extended.xml Mon Jun 11 13:07:08 2007 +0000 ++++ b/layouts/keyboard-extended.xml Mon Jun 11 13:29:13 2007 +0000 +@@ -304,6 +304,10 @@ + </row> + <row> + <key> ++ <default display="[->]" action="modifier:layout"/> ++ </key> ++ ++ <key> + <default display="aeo" action="modifier:mod1"/> + </key> + +diff -r 869314ae90f4 -r edc3fd8303a3 layouts/keyboard-fi.xml +--- a/layouts/keyboard-fi.xml Mon Jun 11 13:07:08 2007 +0000 ++++ b/layouts/keyboard-fi.xml Mon Jun 11 13:29:13 2007 +0000 +@@ -329,6 +329,10 @@ + <space width="500" extended="true"/> + + ++ <key> ++ <default display="[->]" action="modifier:layout"/> ++ </key> ++ + <key fill="true"> + <default display="Ctrl" action="modifier:ctrl"/> + </key> +diff -r 869314ae90f4 -r edc3fd8303a3 layouts/keyboard-numpad.xml +--- a/layouts/keyboard-numpad.xml Mon Jun 11 13:07:08 2007 +0000 ++++ b/layouts/keyboard-numpad.xml Mon Jun 11 13:29:13 2007 +0000 +@@ -54,6 +54,13 @@ + </key> + </row> + ++ <row> ++ <key> ++ <default display="[->]" action="modifier:layout"/> ++ </key> ++ </row> ++ ++ + </layout> + + +diff -r 869314ae90f4 -r edc3fd8303a3 layouts/keyboard-ru.xml +--- a/layouts/keyboard-ru.xml Mon Jun 11 13:07:08 2007 +0000 ++++ b/layouts/keyboard-ru.xml Mon Jun 11 13:29:13 2007 +0000 +@@ -302,10 +302,10 @@ + <space width="500" extended="true"/> + + <key> ++ <default display="[->]" action="modifier:layout"/> ++ </key> ++ <key> + <default display="äëö" action="modifier:mod1"/> +- </key> +- <key> +- <default display="EN" action="modifier:mod2"/> + </key> + + <key fill="true"> +diff -r 869314ae90f4 -r edc3fd8303a3 layouts/keyboard-us.xml +--- a/layouts/keyboard-us.xml Mon Jun 11 13:07:08 2007 +0000 ++++ b/layouts/keyboard-us.xml Mon Jun 11 13:29:13 2007 +0000 +@@ -326,6 +326,10 @@ + <space width="500" extended="true"/> + + <key> ++ <default display="[->]" action="modifier:layout"/> ++ </key> ++ ++ <key> + <default display="äëö" action="modifier:mod1"/> + </key> + +diff -r 869314ae90f4 -r edc3fd8303a3 layouts/keyboard.xml +--- a/layouts/keyboard.xml Mon Jun 11 13:07:08 2007 +0000 ++++ b/layouts/keyboard.xml Mon Jun 11 13:29:13 2007 +0000 +@@ -324,6 +324,10 @@ + <space width="500" extended="true"/> + + <key> ++ <default display="[->]" action="modifier:layout"/> ++ </key> ++ ++ <key> + <default display="äëö" action="modifier:mod1"/> + </key> + diff --git a/packages/matchbox-keyboard/matchbox-keyboard_svn.bb b/packages/matchbox-keyboard/matchbox-keyboard_svn.bb index 8c7584d4f4..57d0b413a9 100644 --- a/packages/matchbox-keyboard/matchbox-keyboard_svn.bb +++ b/packages/matchbox-keyboard/matchbox-keyboard_svn.bb @@ -3,10 +3,16 @@ LICENSE = "GPL" DEPENDS = "libfakekey expat libxft" SECTION = "x11" PV = "0.0+svn${SRCDATE}" -PR="r3" +PR="r5" SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http \ - file://smallscreen-fontsize.patch;patch=1" + file://smallscreen-fontsize.patch;patch=1 \ + file://2-Add-new-modifier--layout--Used-to-cycle-thru-all-available-layouts.patch;patch=1 \ + file://3-Changes-to-improve-layout-rendering--especially-after-adding-support-for.patch;patch=1 \ + file://4-Add-rendering-debug-logging.patch;patch=1 \ + file://5-Add-support-for-loading-multiple-independent-layouts.patch;patch=1 \ + file://6-Add-layout-switch-key-to-all-layouts.patch;patch=1 \ + " S = "${WORKDIR}/${PN}" diff --git a/packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb b/packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb new file mode 100644 index 0000000000..717f2009e3 --- /dev/null +++ b/packages/matchbox-keyboard/mboxkbd-layouts-gui_git.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "matchbox-keyboard layouts control application" +AUTHOR = "Sergey Lapin" +SRC_URI = "git://ossfans.org/home/slapin/git/mk-layouts-gui.git;protocol=git" +LICENSE = "GPL" +PR = "r2" + +S = "${WORKDIR}/git" + +inherit autotools diff --git a/packages/mdk/mdk2_v33.bb b/packages/mdk/mdk2_v33.bb index bd665e2ccd..02a784d5e3 100644 --- a/packages/mdk/mdk2_v33.bb +++ b/packages/mdk/mdk2_v33.bb @@ -2,7 +2,6 @@ SECTION = "console/network" DESCRIPTION = "ASPj is drunk" HOMEPAGE = "http://homepages.tu-darmstadt.de/~p_larbig/wlan/" LICENSE = "GPLv2" -MAINTAINER = "Zero_Chaos <sidhayn@gmail.com>" DEPENDS = "" RDEPENDS = "" PR="r1" diff --git a/packages/mediatomb/mediatomb_0.9.1.bb b/packages/mediatomb/mediatomb_0.9.1.bb new file mode 100644 index 0000000000..f3ea9f54dd --- /dev/null +++ b/packages/mediatomb/mediatomb_0.9.1.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "MediaTomb - UPnP AV MediaServer for Linux" +HOMEPAGE = "http://mediatomb.cc/" +LICENSE = "GPLv2" +DEPENDS = "sqlite3 libexif js zlib file id3lib" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/mediatomb/mediatomb-${PV}.tar.gz" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-mysql \ + --disable-rpl-malloc \ + --enable-sqlite3 \ + --enable-libjs \ + --enable-libmagic \ + --enable-id3lib \ + --enable-libexif \ + --disable-largefile \ + --with-sqlite3-h=${STAGING_INCDIR} \ + --with-sqlite3-libs=${STAGING_LIBDIR} \ + --with-magic-h=${STAGING_INCDIR} \ + --with-magic-libs=${STAGING_LIBDIR} \ + --with-exif-h=${STAGING_INCDIR} \ + --with-exif-libs=${STAGING_LIBDIR} \ + --with-zlib-h=${STAGING_INCDIR} \ + --with-zlib-libs=${STAGING_LIBDIR} \ + --with-js-h=${STAGING_INCDIR}/js \ + --with-js-libs=${STAGING_LIBDIR} \ + --with-id3lib-h=${STAGING_INCDIR} \ + --with-id3lib-libs=${STAGING_LIBDIR}" diff --git a/packages/mesa/mesa-6.5.2/fix-host-compile.patch b/packages/mesa/mesa-6.5.2/fix-host-compile.patch new file mode 100644 index 0000000000..d24d03d379 --- /dev/null +++ b/packages/mesa/mesa-6.5.2/fix-host-compile.patch @@ -0,0 +1,30 @@ +--- /src/mesa/x86/orig-Makefile 2005-07-01 04:54:38.000000000 +0300 ++++ /src/mesa/x86/Makefile 2007-06-07 21:52:31.000000000 +0300 +@@ -5,6 +5,7 @@ + + + INCLUDE_DIRS = \ ++ -I/usr/include \ + -I$(TOP)/include/GL \ + -I$(TOP)/include \ + -I.. \ +@@ -13,6 +14,10 @@ + -I../glapi \ + -I../tnl + ++OPT_FLAGS_host = -fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os ++ ++CFLAGS_host = -Wall -Wmissing-prototypes $(OPT_FLAGS_host) $(PIC_FLAGS) $(ARCH_FLAGS) \ ++ $(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math + + default: gen_matypes matypes.h + +@@ -21,7 +26,7 @@ + + + gen_matypes: gen_matypes.c +- $(CC) $(INCLUDE_DIRS) $(CFLAGS) gen_matypes.c -o gen_matypes ++ $(CC) $(INCLUDE_DIRS) $(CFLAGS_host) gen_matypes.c -o gen_matypes + + # need some special rules here, unfortunately + matypes.h: ../main/mtypes.h ../tnl/t_context.h gen_matypes diff --git a/packages/mesa/mesa-mesa.inc b/packages/mesa/mesa-mesa.inc index a4163f576e..d794f0c097 100644 --- a/packages/mesa/mesa-mesa.inc +++ b/packages/mesa/mesa-mesa.inc @@ -13,7 +13,7 @@ FILES_libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/osmesa.h" do_configure() { cd configs - ln -sf linux current + cp linux current sed -e "s%CC *= *.*%CC = ${CC}%" -i current sed -e "s%CXX *= *.*%CXX = ${CXX}%" -i current sed -e "s%LD *= *.*%LD = ${LD}%" -i current diff --git a/packages/mesa/mesa_6.5.2.bb b/packages/mesa/mesa_6.5.2.bb index 1c245f003b..79993cc1f1 100644 --- a/packages/mesa/mesa_6.5.2.bb +++ b/packages/mesa/mesa_6.5.2.bb @@ -1,3 +1,8 @@ -PR = "r0" +PR = "r1" include mesa-mesa.inc + +SRC_URI_append = " file://fix-host-compile.patch;patch=1 " + + + diff --git a/packages/meta/meta-toolchain.bb b/packages/meta/meta-toolchain.bb index 35dbe9f4cb..1fa80f7d6d 100644 --- a/packages/meta/meta-toolchain.bb +++ b/packages/meta/meta-toolchain.bb @@ -22,25 +22,31 @@ TARGET_INSTALL = "\ RDEPENDS = "${TARGET_INSTALL} ${HOST_INSTALL}" -do_populate_sdk() { - touch ${DEPLOY_DIR_IPK}/Packages - ipkg-make-index -r ${DEPLOY_DIR_IPK}/Packages -p ${DEPLOY_DIR_IPK}/Packages -l ${DEPLOY_DIR_IPK}/Packages.filelist -m ${DEPLOY_DIR_IPK} +sdk_ipk_do_indexes () { + set -ex + rootfs_ipk_do_indexes + set +ex +} +do_populate_sdk() { + sdk_ipk_do_indexes rm -rf ${SDK_OUTPUT} mkdir -p ${SDK_OUTPUT} + echo "Creating host.conf..." + cat <<EOF >${SDK_DIR}/ipkg-host.conf -src oe file:${DEPLOY_DIR_IPK} +src oe file:${DEPLOY_DIR_IPK}/${BUILD_ARCH} arch ${BUILD_ARCH} 1 EOF - cat <<EOF >${SDK_DIR}/ipkg-target.conf -src oe file:${DEPLOY_DIR_IPK} -EOF - ipkgarchs="${PACKAGE_ARCHS}" + echo "done." priority=1 for arch in $ipkgarchs; do echo "arch $arch $priority" >> ${SDK_DIR}/ipkg-target.conf - priority=$(expr $priority + 5) + priority=$(expr $priority + 5) + if [ -e ${DEPLOY_DIR_IPK}/$arch/Packages ] ; then + echo "src oe-$arch file:${DEPLOY_DIR_IPK}/$arch" >> ${SDK_DIR}/ipkg-target.conf + fi done rm -r ${SDK_OUTPUT} diff --git a/packages/meta/oplinux-packages.bb b/packages/meta/oplinux-packages.bb new file mode 100644 index 0000000000..62513c11cd --- /dev/null +++ b/packages/meta/oplinux-packages.bb @@ -0,0 +1,646 @@ +# Meta package containing all the packages which build for OPLinux and OPLinux uclibc distro +# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved +# Released under the MIT license (see packages/COPYING) +DESCRIPTION = "Packages that are compatible with the OPLinux distro" +HOMEPAGE = "http://www.digital-opsis/oplinux" +LICENSE = "MIT" +PR = "r1" +PROVIDES += "${OPLINUX_IMAGENAME}-packages" + +EXCLUDE_FROM_WORLD = "1" +INHIBIT_DEFAULT_DEPS = "1" +ALLOW_EMPTY = "1" + + +python __anonymous () { + + import bb + + #Get all the packages we can build/exist in OE + package_list = bb.data.getVar('PACKAGES_LIST', d) or "none" + package_list=package_list.split() + + #Get the packages that are broken on all architectures + broken_package_list = bb.data.expand('${OPLINUX_BROKEN_PACKAGES}', d) + + # Get the arch we are building for + building_arch = bb.data.getVar('FEED_ARCH',d) + + #Now add the broken packages list the ones that fail for the arch we build now + if (building_arch=="i486") or (building_arch=="i586") or (building_arch=="i686"): + broken_package_list = broken_package_list + bb.data.expand('${OPLINUX_BROKEN_PACKAGES_ARCH_x86}', d) + + elif (building_arch=="ppc405"): + broken_package_list = broken_package_list + bb.data.expand('${OPLINUX_BROKEN_PACKAGES_ARCH_PPC}', d) + + elif (building_arch=="ppc603e"): + broken_package_list = broken_package_list + bb.data.expand('${OPLINUX_BROKEN_PACKAGES_ARCH_POWERPC}', d) + + + for chk_package in package_list : + build_package="yes" + if chk_package in broken_package_list: + build_package="no" + else : + bb.data.setVar('DEPENDS', (bb.data.getVar('DEPENDS', d) + chk_package +" "), d) + +#add the OPLinux extra packages to the DEPENDS list + bb.data.setVar('DEPENDS', (bb.data.getVar('DEPENDS', d) + bb.data.getVar('OPLINUX_EXTRA_PACKAGES', d)), d) + + + bb.data.setVar('DEPENDS', (bb.data.getVar('DEPENDS', d) + "package-index"), d) +} + + + + + +# The list of packages availiable to OE +# KEEP IN ALPHABETICAL ORDER +# Do *not* simply comment out a line. That will break. Instead +# remove the package and place it in the corresponding "broken" list +PACKAGES_LIST = "\ + acct \ + acpid \ + adns \ + aiostress \ + aircrack \ + alsa-lib \ + alsa-utils \ + apache2 \ + appweb \ + apmd \ + apt \ + ark3116 \ + arpwatch \ + at \ + atd \ + atftp \ + atmelwlandriver \ + audiofile \ + aumix \ + autoconf \ + automake \ + autofs \ + aspell \ + avahi \ + bacula-client \ + balsa \ + bash \ + bazaar \ + bb \ + bc \ + beep \ + beecrypt \ + beepmp \ + bind \ + binutils \ + bing \ + bison \ + bitchx \ + blueprobe \ + bmon \ + boa \ + bochs \ + bogofilter \ + boost \ + boost-asio \ + bonnie++ \ + bootchart \ + bootmenu \ + bootsplash \ + bridge-utils \ + bt950-cs \ + btscanner \ + btsco \ + btsco-module \ + btxml \ + bvi \ + bwmon \ + bluez-utils \ + bzflag \ + bzflag-server \ + bzip2 \ + came \ + chillispot \ + camsource \ + cscope \ + cups \ + ccxstream \ + cdparanoia \ + cdstatus \ + cetools \ + cherokee \ + ckermit \ + clish \ + coreutils \ + conserver \ + corkscrew \ + cpusage \ + cron \ + ctorrent \ + cvs \ + cyrus-sasl \ + cyrus-imapd \ + dialog \ + db \ + ddclient \ + dhclient \ + dhcp \ + didiwiki \ + devlabel \ + diffstat \ + diffutils \ + dnsmasq \ + ebtables \ + elftoaout \ + emul \ + enscript \ + e2fsprogs \ + e2fsprogs-libs \ + esmtp \ + etherpuppet \ + ethload \ + ethtool \ + ettercap \ + expat \ + ez-ipupdate \ + fortune-mod \ + fakeconnect \ + fbgrab \ + fetchmail \ + file \ + findutils \ + flac \ + flex \ + flite \ + frotz \ + fush \ + g15daemon \ + gallery \ + gammu \ + gawk \ + gcc \ + gdb \ + gdbm \ + genext2fs \ + gphoto2 \ + git \ + gift \ + glib-2.0 \ + gpm \ + gpsbabel \ + gs \ + gnu-config \ + gnuplot \ + gpsd \ + grep \ + gtk-doc \ + gzip \ + hdparm \ + hydra \ + ifupdown \ + iputils \ + ipkg-utils \ + iptables \ + intercom \ + ircp \ + irssi \ + joe \ + jpeg \ + kismet \ + kbdd \ + ksymoops \ + lame \ + lxt \ + lcdproc \ + less \ + libao \ + libpcre \ + libid3tag \ + liblockfile \ + libmad \ + libmikmod \ + libogg \ + libol \ + libpng \ + libtool \ + libupnp \ + libusb \ + libvorbis \ + litestream \ + lrzsz \ + lsof \ + lvm2 \ + m4 \ + madplay \ + mailx \ + make \ + mc \ + mikmod \ + mdadm \ + memtester \ + mgetty \ + miau \ + microcom \ + minicom \ + modphp \ + modplugplay \ + mp3blaster \ + mpg321 \ + mt-daapd \ + mtd-utils \ + mutt \ + mysql \ + mystun-server \ + nail \ + nano \ + ncftp \ + ncurses \ + netcat \ + nmap \ + nmixer \ + ntp \ + netkit-ftp \ + netperf \ + net-snmp \ + nfs-utils \ + ngrep \ + nmap \ + nsd \ + ntp \ + ntpdate \ + openobex-apps \ + openldap \ + openntpd \ + openobex \ + obexftp \ + obexpush \ + olsrd \ + openswan \ + openssh \ + openvpn \ + patch \ + pciutils \ + pcmcia-cs \ + portmap \ + privoxy \ + perl \ + pkgconfig \ + ppp \ + procps \ + pvrusb2-mci \ + pwc \ + quilt \ + rng-tools \ + rsync \ + samba \ + sane-backends \ + sed \ + setpwc \ + setserial \ + shorewall \ + smartmontools \ + ssmtp \ + strace \ + streamripper \ + sysfsutils \ + syslog-ng \ + stunnel \ + spandsp \ + subversion \ + slutils \ + strace \ + sudo \ + tcpdump \ + tor \ + tar \ + thttpd \ + tiff \ + texinfo \ + unzip \ + unrar \ + usbutils \ + util-linux \ + vim \ + vlan \ + vorbis-tools \ + vpnc \ + vsftpd \ + vtun \ + watchdog \ + wget \ + zd1211-firmware \ + zip \ + zlib \ + zsh \ + lirc \ + masqmail \ + wakelan \ + wireless-tools \ + wpa-supplicant \ + libxml2 \ + libdvb \ + madwifi-ng \ + motion \ + ftpd-topfield \ + eciadsl \ + netpbm \ + reiserfsprogs reiser4progs \ + python \ + mpd \ + memtester \ + puppy \ + + ctrlproxy \ + dsniff \ + iperf \ + groff \ + man man-pages \ + psmisc \ + screen \ + timezones \ + wview-sim wview-vpro wview-wxt510 \ + wview-sim-mysql wview-vpro-mysql \ + wview-wxt510-mysql \ + xinetd \ + obexftp \ + qc-usb-messenger \ + unionfs-modules \ + unionfs-utils \ + erlang \ + ctrlproxy \ + dsniff \ + fortune-mod \ + libpam \ + nfs-utils \ + rng-tools \ + postfix \ + yp-tools ypbind ypserv \ + +" + + + +# Packages currently broken on all platforms (glibc) +OPLINUX_BROKEN_PACKAGES = "irssi \ + unionfs-modules \ + unionfs-utils \ + +" + +#Here we define the packages that are broken on a specific architecture +#i486, i586, i686 +OPLINUX_BROKEN_PACKAGES_ARCH_x86 =" \ + aircrack \ + appweb \ + apt \ + ark3116 \ + at \ + atmelwlandriver \ + atftp \ + autofs \ + balsa \ + bazaar \ + bb \ + beecrypt \ + beepmp \ + bitchx \ + bochs \ + bmon \ + bt950-cs \ + btscanner \ + btsco-module \ + bwmon \ + came \ + ctrlproxy \ + cyrus-sasl \ + cyrus-imapd \ + dsniff \ + eciadsl \ + erlang \ + fortune-mod \ + gphoto2 \ + gpsd \ + intercom \ + lcdproc \ + lirc \ + mpd \ + puppy \ + pvrusb2-mci \ + pwc \ + qc-usb-messenger \ + sane-backends \ + setpwc \ + slutils \ + texinfo \ + vsftpd \ + libpam \ + aircrack \ + appweb \ + apt \ + ark3116 \ + gcc \ + gpsd \ + pvrusb2-mci \ + pwc \ + setpwc \ + cyrus-sasl \ + atftp \ + gphoto2 \ + lirc \ + libdvb \ + netpbm \ +" +# +#ppc405 +OPLINUX_BROKEN_PACKAGES_ARCH_PPC = " \ + aircrack \ + appweb \ + apt \ + ark3116 \ + at \ + atmelwlandriver \ + atftp \ + autofs \ + balsa \ + bazaar \ + bb \ + beecrypt \ + beepmp \ + bitchx \ + bochs \ + bmon \ + bt950-cs \ + btscanner \ + btsco-module \ + bwmon \ + came \ + ctrlproxy \ + cyrus-sasl \ + cyrus-imapd \ + dsniff \ + eciadsl \ + erlang \ + fortune-mod \ + gphoto2 \ + gpsd \ + intercom \ + lcdproc \ + lirc \ + mpd \ + puppy \ + pvrusb2-mci \ + pwc \ + qc-usb-messenger \ + sane-backends \ + setpwc \ + slutils \ + texinfo \ + vsftpd \ +" + + + +# +#ppc440 ppc603e +OPLINUX_BROKEN_PACKAGES_ARCH_POWERPC = " \ + aircrack \ + appweb \ + apt \ + ark3116 \ + arpwatch \ + at \ + atmelwlandriver \ + atftp \ + autofs \ + balsa \ + bazaar \ + bb \ + beecrypt \ + beepmp \ + bitchx \ + bochs \ + bmon \ + bt950-cs \ + btscanner \ + btsco-module \ + bwmon \ + came \ + ctrlproxy \ + cyrus-sasl \ + cyrus-imapd \ + dsniff \ + eciadsl \ + erlang \ + fortune-mod \ + gphoto2 \ + gpsd \ + intercom \ + lcdproc \ + lirc \ + mpd \ + puppy \ + pvrusb2-mci \ + pwc \ + qc-usb-messenger \ + sane-backends \ + setpwc \ + slutils \ + spandsp \ + texinfo \ + vsftpd \ + + libpam \ + aircrack \ + appweb \ + apt \ + ark3116 \ + gcc \ + gpsd \ + pvrusb2-mci \ + pwc \ + setpwc \ + cyrus-sasl \ + atftp \ + gphoto2 \ + lirc \ + libdvb \ + netpbm \ +" + + + + +#Packages broken per machine (if we ever need such a thing) +OPLINUX_BROKEN_PACKAGES_append_x86 =" \ +" +OPLINUX_BROKEN_PACKAGES_append_i586-generic =" \ +" +OPLINUX_BROKEN_PACKAGES_append_i686-generic =" \ +" +OPLINUX_BROKEN_PACKAGES_append_epia =" \ +" +OPLINUX_BROKEN_PACKAGES_append_wrap = "\ +" + +#ppc targets +OPLINUX_BROKEN_PACKAGES_append_magicbox = "\ +" +OPLINUX_BROKEN_PACKAGES_append_dht-walnut = "\ +" +#powerpc targets +OPLINUX_BROKEN_PACKAGES_append_efika = "\ +" + + +# +# +OPLINUX_UCLIBC_UNSUPPORTABLE_PACKAGES = "\ + libpam \ + nfs-utils \ + rng-tools \ + postfix \ + yp-tools ypbind ypserv \ + " + +# These packages work with glibc, but break on uclibc. +OPLINUX_UCLIBC_BROKEN_PACKAGES = "\ +# bwmon \ +# erlang \ +# apr \ +# bogofilter \ +# boost \ +# linphone \ +# sudo \ +# ushare \ + " + +OPLINUX_UCLIBC_BROKEN_PACKAGES_append_x86 = "\ + " + +OPLINUX_UCLIBC_BROKEN_PACKAGES_append_epia = "\ + " + +OPLINUX_UCLIBC_BROKEN_PACKAGES_append_wrap = "\ + " + +OPLINUX_UCLIBC_BROKEN_PACKAGES_append_magicbox = "\ + " + +OPLINUX_UCLIBC_BROKEN_PACKAGES_append_dht-walnut = "\ + " + + +# Packages which build only with glibc (some of these use internal +# glibc functions and so will probably never run on uclibc). +OPLINUX_BROKEN_PACKAGES_append_uclibc-linux = "\ + ${OPLINUX_UCLIBC_UNSUPPORTABLE_PACKAGES} \ + ${OPLINUX_UCLIBC_BROKEN_PACKAGES} \ + +" + +# +#Any extra packages defined +# +OPLINUX_EXTRA_PACKAGES ?= "" diff --git a/packages/mpeg2dec/mpeg2dec_0.4.0b.bb b/packages/mpeg2dec/mpeg2dec_0.4.0b.bb index 3380a4e00c..c279893ee5 100644 --- a/packages/mpeg2dec/mpeg2dec_0.4.0b.bb +++ b/packages/mpeg2dec/mpeg2dec_0.4.0b.bb @@ -1,22 +1,24 @@ DESCRIPTION = "Library and test program for decoding mpeg-2 and mpeg-1 video streams" HOMEPAGE = "http://libmpeg2.sourceforge.net/" -LICENSE = "GPL" -PRIORITY = "optional" SECTION = "libs" -PR = "r2" - +PRIORITY = "optional" +LICENSE = "GPL" DEPENDS = "virtual/libsdl" +PROVIDES += "libmpeg2" +RPROVIDES += "libmpeg2" +PR = "r3" -SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz" S = "${WORKDIR}/mpeg2dec-0.4.0" +SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz" + inherit autotools pkgconfig EXTRA_OECONF = "--enable-shared" -PACKAGES = "mpeg2dec mpeg2dec-doc libmpeg2 libmpeg2-dev libmpeg2convert libmpeg2convert-dev" +PACKAGES += "libmpeg2 libmpeg2-dev libmpeg2convert libmpeg2convert-dev" -FILES_${PN} = "${bindir}/*" +FILES_${PN} += "${bindir}/*" FILES_libmpeg2 = "${libdir}/libmpeg2.so.*" FILES_libmpeg2convert = "${libdir}/libmpeg2convert.so.*" FILES_libmpeg2-dev = "${libdir}/libmpeg2.so \ 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..d914830b94 --- /dev/null +++ b/packages/nabi/nabi_0.17.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "Nabi is an easy and powerful GNU XIM for the Korean language" +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/netbase/netbase/interfaces b/packages/netbase/netbase/interfaces index fbeb14ffbc..c9b2faf3f8 100644 --- a/packages/netbase/netbase/interfaces +++ b/packages/netbase/netbase/interfaces @@ -4,10 +4,40 @@ auto lo iface lo inet loopback + # Wireless interfaces +# +# Example of an unencrypted (no WEP or WPA) wireless connection +# that connects to any available access point: +# iface wlan0 inet dhcp -wireless_mode managed -wireless_essid any + wireless_mode managed + wireless_essid any +# +# +# Same as above but locked to a specific access point: +# +#iface wlan0 inet dhcp +# wireless_mode managed +# wireless-essid some-essid +# +# A WEP encrypted connection locked to a specific access point: +# +#iface wlan0 inet dhcp +# wireless-essid some-essid +# wireless-key s:My-PlainText-Password +# wireless-mode managed +# +# A WPA1 or WPA2 encrypted connection locked to a specific access point. +# The WLAN cards firmware is updated temporarily to allow WPA +# connections. Your card may or may not need the update. +# +#iface wlan0 inet dhcp +# wpa-essid some-essid +# wpa-psk My-PlainText-Password +# pre-up iwpriv wlan0 reset 1 +# pre-up prism2_srec -r wlan0 /etc/pcmcia/rf010804.hex + iface atml0 inet dhcp # Wired or wireless interfaces diff --git a/packages/netbase/netbase_4.21.bb b/packages/netbase/netbase_4.21.bb index 53c9f3d17c..6851ae8d9a 100644 --- a/packages/netbase/netbase_4.21.bb +++ b/packages/netbase/netbase_4.21.bb @@ -2,7 +2,7 @@ DESCRIPTION = "This package provides the necessary \ infrastructure for basic TCP/IP based networking." SECTION = "base" LICENSE = "GPL" -PR = "r16" +PR = "r18" inherit update-rc.d diff --git a/packages/nslu2-binary-only/unslung-rootfs/mkfs.ext3 b/packages/nslu2-binary-only/unslung-rootfs/mkfs.ext3 new file mode 100755 index 0000000000..49a88c0e06 --- /dev/null +++ b/packages/nslu2-binary-only/unslung-rootfs/mkfs.ext3 @@ -0,0 +1,13 @@ +#!/bin/sh +# +# Fix obscure problem - redirect stdout iff mkfs.ext3 +# is being invoked by the Linksys GUI format utility. +# +u=`/bin/pidof utility.cgi` +if [ ! -f "/tmp/Preparing" -o "x${u}" = "x" -o \ + "y${1}" != "y-m" -o "z${2}" != "z1" ] +then + /usr/bin/mke2fs -j $@ +else + /usr/bin/mke2fs -j $@ >/tmp/mkfs.$$.log +fi diff --git a/packages/nslu2-binary-only/unslung-rootfs_2.3r63.bb b/packages/nslu2-binary-only/unslung-rootfs_2.3r63.bb index dab61db94e..23b240debc 100644 --- a/packages/nslu2-binary-only/unslung-rootfs_2.3r63.bb +++ b/packages/nslu2-binary-only/unslung-rootfs_2.3r63.bb @@ -1,7 +1,7 @@ SECTION = "base" COMPATIBLE_MACHINE = "nslu2" -PR = "r18" +PR = "r19" DEPENDS = "nslu2-linksys-libs nslu2-linksys-sambacodepages" @@ -55,6 +55,7 @@ SRC_URI = "http://nslu.sf.net/downloads/nslu2-linksys-ramdisk-2.3r63-2.tar.bz2 \ file://upgrade.htm \ file://telnet.htm \ file://rc.bootbin \ + file://mkfs.ext3 \ " S = "${WORKDIR}/nslu2-linksys-ramdisk-2.3r63" @@ -163,6 +164,10 @@ do_compile () { rm -f ${S}/bin/busybox ln -s slingbox ${S}/bin/busybox + # Add in the kludge to fix the strange Linksys GUI format problem. + rm -f ${S}/usr/bin/mkfs.ext3 + install -m 755 ${WORKDIR}/mkfs.ext3 ${S}/usr/bin/mkfs.ext3 + # No reason not to have a home directory for root... mkdir -p ${S}/root chmod 755 ${S}/root diff --git a/packages/ntp/ntp-ssl_4.1.2.bb b/packages/ntp/ntp-ssl_4.1.2.bb index 4e499ea4b7..dd8ca66f25 100644 --- a/packages/ntp/ntp-ssl_4.1.2.bb +++ b/packages/ntp/ntp-ssl_4.1.2.bb @@ -1,4 +1,4 @@ -require ntp_4.1.2.bb +require ntp_${PV}.bb DEPENDS = "openssl" PR = "r2" diff --git a/packages/ntp/ntp.inc b/packages/ntp/ntp.inc new file mode 100644 index 0000000000..6a14521d36 --- /dev/null +++ b/packages/ntp/ntp.inc @@ -0,0 +1,32 @@ +DESCRIPTION = "The Network Time Protocol (NTP) is used to \ +synchronize the time of a computer client or server to \ +another server or reference time source, such as a radio \ +or satellite receiver or modem." +HOMEPAGE = "http://ntp.isc.org/bin/view/Main/WebHome" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "ntp" +RRECOMMENDS = "iana-etc" + +SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \ + file://ipv6only-workaround.patch;patch=1 \ + file://ntpd \ + file://ntp.conf \ + file://ntpdate" + +inherit autotools update-rc.d + +INITSCRIPT_NAME = "ntpd" +# No dependencies, so just go in at the standard level (20) +INITSCRIPT_PARAMS = "defaults" + +# The ac_cv_header_readline_history is to stop ntpdc depending on either +# readline or curses +EXTRA_OECONF = "--without-openssl --without-crypto ac_cv_header_readline_history_h=no" +CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" + +PACKAGES += "ntpdate ntp-bin ntp-tickadj ntp-utils" +# NOTE: you don't need ntpdate, use "ntpdc -q -g -x" + +# This should use rc.update +FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/init.d/ntpdate" diff --git a/packages/ntp/ntp_4.1.2.bb b/packages/ntp/ntp_4.1.2.bb index dc2d203690..4300b5bbe6 100644 --- a/packages/ntp/ntp_4.1.2.bb +++ b/packages/ntp/ntp_4.1.2.bb @@ -1,11 +1,5 @@ -DESCRIPTION = "The Network Time Protocol (NTP) is used to \ -synchronize the time of a computer client or server to \ -another server or reference time source, such as a radio \ -or satellite receiver or modem." -HOMEPAGE = "http://ntp.isc.org/bin/view/Main/WebHome" -SECTION = "console/network" -PRIORITY = "optional" -LICENSE = "ntp" +require ntp.inc + PR = "r4" SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.1/ntp-${PV}.tar.gz \ @@ -14,15 +8,6 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.1/ntp-${PV}.tar.g file://ntpdate \ file://ntp" -inherit autotools - -EXTRA_OECONF = "--without-openssl" -CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" - -PACKAGES =+ "ntpdate" - -FILES_ntpdate = "${bindir}/ntpdate /etc/init.d/ntpdate" - do_install_append() { install -d ${D}${sysconfdir}/init.d install -m 755 ${WORKDIR}/ntpdate ${D}${sysconfdir}/init.d diff --git a/packages/ntp/ntp_4.2.0.bb b/packages/ntp/ntp_4.2.0.bb index 0ce7e10ac9..63e7d552a8 100644 --- a/packages/ntp/ntp_4.2.0.bb +++ b/packages/ntp/ntp_4.2.0.bb @@ -1,11 +1,5 @@ -DESCRIPTION = "The Network Time Protocol (NTP) is used to \ -synchronize the time of a computer client or server to \ -another server or reference time source, such as a radio \ -or satellite receiver or modem." -HOMEPAGE = "http://ntp.isc.org/bin/view/Main/WebHome" -SECTION = "console/network" -PRIORITY = "optional" -LICENSE = "ntp" +require ntp.inc + PR = "r8" SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \ @@ -16,24 +10,8 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \ file://ntp.conf \ file://ntpdate" - -INITSCRIPT_NAME = "ntpd" -# No dependencies, so just go in at the standard level (20) -INITSCRIPT_PARAMS = "defaults" - -inherit autotools update-rc.d - -# The ac_cv_header_readline_history is to stop ntpdc depending on either -# readline or curses -EXTRA_OECONF = "--without-openssl --without-crypto ac_cv_header_readline_history_h=no" -CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" - -PACKAGES += "ntpdate ntp-bin ntp-tickadj" -# NOTE: you don't need ntpdate, use "ntpdc -q -g -x" PROVIDES = "ntpdate-${PV} ntpdate-${PV}-${PR} ntpdate" -# This should use rc.update -FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/init.d/ntpdate" #This is too painful - perl is only needed for ntp-wait and ntptrace, which are #perl scripts, and installing perl is an enormous overhead for a user who only #needs ntpq diff --git a/packages/ntp/ntp_4.2.2p3.bb b/packages/ntp/ntp_4.2.2p3.bb index de755824c9..28853e4fc8 100644 --- a/packages/ntp/ntp_4.2.2p3.bb +++ b/packages/ntp/ntp_4.2.2p3.bb @@ -1,11 +1,4 @@ -DESCRIPTION = "The Network Time Protocol (NTP) is used to \ -synchronize the time of a computer client or server to \ -another server or reference time source, such as a radio \ -or satellite receiver or modem." -HOMEPAGE = "http://ntp.isc.org/bin/view/Main/WebHome" -SECTION = "console/network" -PRIORITY = "optional" -LICENSE = "ntp" +require ntp.inc SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \ file://ipv6only-workaround.patch;patch=1 \ @@ -14,23 +7,6 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \ file://ntpdate" -INITSCRIPT_NAME = "ntpd" -# No dependencies, so just go in at the standard level (20) -INITSCRIPT_PARAMS = "defaults" - -inherit autotools update-rc.d - -# The ac_cv_header_readline_history is to stop ntpdc depending on either -# readline or curses -EXTRA_OECONF = "--without-openssl --without-crypto ac_cv_header_readline_history_h=no" -CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" - -PACKAGES += "ntpdate ntp-bin ntp-tickadj ntp-utils" -# NOTE: you don't need ntpdate, use "ntpdc -q -g -x" - -# This should use rc.update -FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/init.d/ntpdate" - # ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms # with wonky clocks (e.g. OpenSlug) RDEPENDS_${PN} = "${PN}-tickadj" diff --git a/packages/nunome/files/timer.patch b/packages/nunome/files/timer.patch new file mode 100644 index 0000000000..ccd65647be --- /dev/null +++ b/packages/nunome/files/timer.patch @@ -0,0 +1,21 @@ +diff --git a/ui/nnmCanvas.cpp b/ui/nnmCanvas.cpp +index a548ddf..3b8e7d4 100755 +--- a/ui/nnmCanvas.cpp ++++ b/ui/nnmCanvas.cpp +@@ -35,7 +35,7 @@ + + nnmCanvas::nnmCanvas( QWidget *parent, int timeoutParam, int initID, + const char *name, WFlags f ) +- : QWidget( parent, name, f ) ++ : QWidget( parent, name, f ), timer(0) + { + setFixedSize( NnmCANVAS_DISPLAY_SIZE, NnmCANVAS_DISPLAY_SIZE ); + init(); +@@ -149,7 +149,7 @@ void nnmCanvas::resizeEvent( QResizeEvent *event ) + + void nnmCanvas::init( void ) + { +- if ( timeoutMsec > 0 && timer->isActive() ) { ++ if ( timeoutMsec > 0 && timer && timer->isActive() ) { + timer->stop(); + }
\ No newline at end of file diff --git a/packages/nunome/nunome_1.0.2.bb b/packages/nunome/nunome_1.0.2.bb index ae29277291..0401c195e0 100644 --- a/packages/nunome/nunome_1.0.2.bb +++ b/packages/nunome/nunome_1.0.2.bb @@ -1,11 +1,13 @@ DESCRIPTION = "Japanese input method plugin" +HOMEPAGE = "http://www.sikigami.com/nunome-Qtopia-1.0/" SECTION = "opie/inputmethods" PRIORITY = "optional" LICENSE = "GPL" -HOMEPAGE = "http://www.sikigami.com/nunome-Qtopia-1.0/" RDEPENDS = "virtual/japanese-font" +PR = "r1" SRC_URI = "${SOURCEFORGE_MIRROR}/gakusei/nunome-${PV}.tar.bz2 \ + file://timer.patch;patch=1 \ file://nunome.patch;patch=1" S = "${WORKDIR}/nunome" diff --git a/packages/nylon/simple-firewall.bb b/packages/nylon/simple-firewall.bb index 4f51f88277..fc7c3de6a3 100644 --- a/packages/nylon/simple-firewall.bb +++ b/packages/nylon/simple-firewall.bb @@ -1,7 +1,6 @@ DESCRIPTION = "simple firewall configuratiopn script" SECTION = "base" PRIORITY = "optional" -MAINTAINER = "Bruno Randolf <bruno.randolf@4g-systems.biz>" LICENSE = "GPL" DEPENDS = "virtual/kernel" #SRCDATE = "20060114" 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/opensp/opensp-1.5/fix-docdir.patch b/packages/opensp/opensp-1.5/fix-docdir.patch new file mode 100644 index 0000000000..4866874f4f --- /dev/null +++ b/packages/opensp/opensp-1.5/fix-docdir.patch @@ -0,0 +1,11 @@ +Index: OpenSP-1.5/doc/Makefile.am +=================================================================== +--- OpenSP-1.5.orig/doc/Makefile.am 2000-05-06 09:10:32.000000000 +1000 ++++ OpenSP-1.5/doc/Makefile.am 2007-06-02 12:46:50.000000000 +1000 +@@ -1,6 +1,5 @@ + ## Process this file with automake to produce Makefile.in + +-docdir = $(prefix)/doc + pkgdocdir = $(docdir)/@PACKAGE@ + + MAINTAINERCLEANFILES = Makefile.in diff --git a/packages/opensp/opensp-1.5/rangmap-fix.patch b/packages/opensp/opensp-1.5/rangmap-fix.patch new file mode 100644 index 0000000000..55c00a8f08 --- /dev/null +++ b/packages/opensp/opensp-1.5/rangmap-fix.patch @@ -0,0 +1,12 @@ +Index: OpenSP-1.5/include/RangeMap.cxx +=================================================================== +--- OpenSP-1.5.orig/include/RangeMap.cxx 2000-02-26 03:55:21.000000000 +1100 ++++ OpenSP-1.5/include/RangeMap.cxx 2007-06-02 11:48:17.000000000 +1000 +@@ -7,6 +7,7 @@ + #include "RangeMap.h" + #include "ISet.h" + #include "types.h" ++#include "constant.h" + + #ifdef SP_NAMESPACE + namespace SP_NAMESPACE { diff --git a/packages/opensp/opensp-native_1.5.bb b/packages/opensp/opensp-native_1.5.bb index 47d05ced76..e0194c5798 100644 --- a/packages/opensp/opensp-native_1.5.bb +++ b/packages/opensp/opensp-native_1.5.bb @@ -1,9 +1,11 @@ SECTION = "libs" DEPENDS = "" +PR = "r1" SRC_URI = "${SOURCEFORGE_MIRROR}/openjade/OpenSP-${PV}.tar.gz \ file://m4.patch;patch=1 \ - file://attributevalue.patch;patch=1" + file://attributevalue.patch;patch=1 \ + file://rangmap-fix.patch;patch=1" S = "${WORKDIR}/OpenSP-${PV}" LICENSE = "MIT" inherit autotools native diff --git a/packages/opensp/opensp_1.5.bb b/packages/opensp/opensp_1.5.bb index 5d6ad639af..839fde5b8a 100644 --- a/packages/opensp/opensp_1.5.bb +++ b/packages/opensp/opensp_1.5.bb @@ -1,19 +1,30 @@ -SECTION = "libs" DESCRIPTION = "OpenSP is a library and a set of tools \ for validating, parsing, and manipulating SGML and \ XML documents." +HOMEPAGE = "http://openjade.sourceforge.net/" +SECTION = "libs" LICENSE = "MIT" +PR = "r2" + +# sh4/gcc3.4.4 with -O2 triggers internal compiler errors +FULL_OPTIMIZATION_sh4 = "-O1" + SRC_URI = "${SOURCEFORGE_MIRROR}/openjade/OpenSP-${PV}.tar.gz \ - file://m4.patch;patch=1 \ - file://attributevalue.patch;patch=1" + file://m4.patch;patch=1 \ + file://attributevalue.patch;patch=1 \ + file://rangmap-fix.patch;patch=1 \ + file://fix-docdir.patch;patch=1" + S = "${WORKDIR}/OpenSP-${PV}" inherit autotools do_stage () { - oe_libinstall -a -so -C lib libosp ${STAGING_LIBDIR} - install -d ${STAGING_INCDIR}/OpenSP - install -m 0644 ${S}/include/*.h ${STAGING_INCDIR}/OpenSP/ - install -m 0644 ${S}/include/*.cxx ${STAGING_INCDIR}/OpenSP/ - install -m 0644 ${S}/config.h ${STAGING_INCDIR}/OpenSP/config.h + oe_libinstall -a -so -C lib libosp ${STAGING_LIBDIR} + install -d ${STAGING_INCDIR}/OpenSP + install -m 0644 ${S}/include/*.h ${STAGING_INCDIR}/OpenSP/ + install -m 0644 ${S}/include/*.cxx ${STAGING_INCDIR}/OpenSP/ + install -m 0644 ${S}/config.h ${STAGING_INCDIR}/OpenSP/config.h } + +FILES_${PN} += "${datadir}/OpenSP" diff --git a/packages/openssl/openssl.inc b/packages/openssl/openssl.inc index 9c648f0ba8..25388b5fbb 100644 --- a/packages/openssl/openssl.inc +++ b/packages/openssl/openssl.inc @@ -14,7 +14,7 @@ export CFLAG_mtx-1 := "${@'${CFLAG}'.replace('-O2', '')}" export CFLAG_mtx-2 := "${@'${CFLAG}'.replace('-O2', '')}" export DIRS = "crypto ssl apps" -export EX_LIBS = "-lgcc -ldl -L${STAGING_LIBDIR}" +export EX_LIBS = "-lgcc -ldl ${TARGET_LDFLAGS}" export AS = "${CC} -c" PACKAGES =+ "libcrypto libssl" diff --git a/packages/opie-init/opie-init/opie b/packages/opie-init/opie-init/opie index 63eeb7b47d..4a7a9e4330 100755 --- a/packages/opie-init/opie-init/opie +++ b/packages/opie-init/opie-init/opie @@ -53,17 +53,15 @@ case $1 in $OPIEDIR/bin/opie-login -terminal 3 else $OPIEDIR/bin/opie-reorgfiles - if [ -x /usr/bin/ssh-agent ]; then - SSHAGENT=/usr/bin/ssh-agent - else - SSHAGENT="" - fi if [ -x "$OPIEDIR/bin/opie-sh-ssh-askpass.sh" ]; then export SSH_ASKPASS=$OPIEDIR/bin/opie-sh-ssh-askpass.sh fi echo Starting Opie.... - $SSHAGENT $OPIEDIR/bin/qpe -terminal 3 + ( + test -x /usr/bin/ssh-agent && eval $(/usr/bin/ssh-agent -s) && echo $SSH_AGENT_PID>/var/run/opie-ssh-agent.pid ; + $OPIEDIR/bin/qpe -terminal 3 + ) echo -n >/var/log/opie-qss.log test -x $OPIEDIR/bin/qpe && { for attempt in 0 1 2 3 4 5 6 7 8 9 a b c d e f ; do sleep 1 @@ -72,17 +70,20 @@ case $1 in echo "Starting qss" >>/var/log/opie-qss.log $OPIEDIR/bin/qss </dev/null >>/var/log/opie-qss.log 2>&1 echo "qss exited, will try to restart" >>/var/log/opie-qss.log - done; } & + done; rm /var/run/opie-qss-loop.pid; } & + echo $! >/var/run/opie-qss-loop.pid fi ;; 'stop') echo "Stopping Opie..." + test -r /var/run/opie-qss-loop.pid && kill $(cat /var/run/opie-qss-loop.pid) 2>/dev/null ; rm /var/run/opie-qss-loop.pid killall qss 2>/dev/null killall qpe 2>/dev/null killall opie-login 2>/dev/null killall quicklauncher 2>/dev/null + test -r /var/run/opie-ssh-agent.pid && kill $(cat /var/run/opie-ssh-agent.pid) 2>/dev/null ; rm /var/run/opie-ssh-agent.pid true ;; diff --git a/packages/opie-init/opie-init_1.2.2.bb b/packages/opie-init/opie-init_1.2.2.bb index bc1a4bc4e6..ca10d61221 100644 --- a/packages/opie-init/opie-init_1.2.2.bb +++ b/packages/opie-init/opie-init_1.2.2.bb @@ -1,5 +1,5 @@ require ${PN}.inc -PR = "r2" +PR = "r4" SRC_URI = "file://opie-reorgfiles \ file://opie \ 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/files/qt4.patch b/packages/opie-reader/files/qt4.patch new file mode 100644 index 0000000000..f19000f12f --- /dev/null +++ b/packages/opie-reader/files/qt4.patch @@ -0,0 +1,2572 @@ +diff --git a/Aportis.cpp b/Aportis.cpp +index 37dcc99..03c26ea 100644 +--- a/Aportis.cpp ++++ b/Aportis.cpp +@@ -443,8 +443,7 @@ unsuspend(); + gotorecordnumber(tgtrec); + UInt8* imgbuffer = new UInt8[reclen]; + fread(imgbuffer, 1, reclen, fin); +- QByteArray arr; +- arr.assign((const char*)imgbuffer, reclen); ++ QByteArray arr((const char*)imgbuffer, reclen); + + QImage* qimage = new QImage(arr); + fseek(fin, cur, SEEK_SET); +diff --git a/Bkmks.cpp b/Bkmks.cpp +index 45aa045..c67db9e 100644 +--- a/Bkmks.cpp ++++ b/Bkmks.cpp +@@ -32,8 +32,7 @@ Bkmk::Bkmk(const Bkmk& rhs) : + m_annolen(0), + m_position(0) + { +- init(rhs.name(), sizeof(tchar)*(ustrlen(rhs.name())+1), rhs.anno(), +- sizeof(tchar)*(ustrlen(rhs.anno())+1), rhs.value()); ++ *this = rhs; + } + + Bkmk::Bkmk(const tchar* _nm, const tchar* _anno, unsigned int _p) : m_position(_p) +diff --git a/BuffDoc.cpp b/BuffDoc.cpp +index 355d14d..170ed43 100644 +--- a/BuffDoc.cpp ++++ b/BuffDoc.cpp +@@ -23,6 +23,8 @@ + #include "Reb.h" + #endif + ++#include "uqtcommon.h" ++ + + linkType BuffDoc::hyperlink(unsigned int n, unsigned int noff, QString& wrd, QString& nm) + { +@@ -674,35 +676,19 @@ int BuffDoc::openfile(QWidget* _parent, const char *src) + } + // //qDebug("Doing final open:%x:%x",exp,filt); + #else +-#ifdef USEQPE +-#ifdef OPIE +- QString codecpath(getenv("OPIEDIR")); +-#else +- QString codecpath(getenv("QTDIR")); +-#endif +- codecpath += "/plugins/reader/codecs"; +-#else +- QString codecpath(getenv("READERDIR")); +- codecpath += "/codecs"; +-#endif +- QDir d(codecpath, "*.so"); ++ QDir d(uqt_codecspath(), "*.so"); + + if (d.exists()) + { + +- const QFileInfoList *list = d.entryInfoList(); +- QFileInfoListIterator it( *list ); // create list iterator +- QFileInfo *fi; // pointer for traversing +- ++ QFileInfoList list = d.entryInfoList(); + int ret = -1; +- while ( ret != 0 && (fi=it.current()) ) +- { // for each file... ++ for(QFileInfoListIterator it=list.begin();ret && it!=list.end();++it) { + if (exp != NULL) delete exp; +- qDebug("Trying %s", (const char*)fi->fileName()); +- exp = new ebookcodec(fi->fileName()); ++ qDebug("Trying %s", (const char*)it->fileName()); ++ exp = new ebookcodec(it->fileName()); + ret = exp->openfile(src); +- ++it; +- } ++ } + qDebug("Buffdoc:Finished opening"); + if (ret != 0) + { +diff --git a/ButtonPrefs.cpp b/ButtonPrefs.cpp +index 762de55..2c4cad7 100644 +--- a/ButtonPrefs.cpp ++++ b/ButtonPrefs.cpp +@@ -17,7 +17,7 @@ + #include <qtooltip.h> + #include <qwhatsthis.h> + #include <qbuttongroup.h> +-#include <qmultilineedit.h> ++#include <Qt3Support/Q3MultiLineEdit> + #ifdef USECOMBO + #include <qcombobox.h> + #else +@@ -26,12 +26,14 @@ + #include <qfontdatabase.h> + + #include <qlistview.h> ++#include <Qt3Support/Q3ListViewItem> ++#include <QtGui/QKeyEvent> + +-class MyQListViewItem : public QListViewItem ++class MyQListViewItem : public Q3ListViewItem + { + orKey o; + public: +- MyQListViewItem(const orKey& _o, QListView* p, const QString& c1, const QString& c2, const QString& c3) : QListViewItem(p, c1, c2, c3), o(_o) { } ++ MyQListViewItem(const orKey& _o, Q3ListView* p, const QString& c1, const QString& c2, const QString& c3) : Q3ListViewItem(p, c1, c2, c3), o(_o) { } + orKey getKey() { return o; } + }; + +@@ -43,7 +45,7 @@ void CButtonPrefs::mapkey(Qt::ButtonState st, int _key) + void CButtonPrefs::mapkey(Qt::ButtonState st, int _key, int act) + { + orKey key(st, _key, ((act == cesScrollMore) || (act == cesScrollLess))); +- QMap<orKey,QListViewItem*>::Iterator iter = listmap.find(key); ++ QMap<orKey,Q3ListViewItem*>::Iterator iter = listmap.find(key); + if (iter != listmap.end()) + { + lb->takeItem(iter.data()); +@@ -112,7 +114,7 @@ CButtonPrefs::CButtonPrefs( QMap<orKey, int>* _kmap, QWidget* parent, const cha + { + QVBoxLayout* vo = new QVBoxLayout(this); + QHBoxLayout* lo = new QHBoxLayout(); +- setFocusPolicy(QWidget::StrongFocus); ++ setFocusPolicy(Qt::StrongFocus); + #ifdef USECOMBO + action = new QComboBox( this ); + #else +@@ -123,17 +125,17 @@ CButtonPrefs::CButtonPrefs( QMap<orKey, int>* _kmap, QWidget* parent, const cha + + + +- QMultiLineEdit* TextLabel1 = new QMultiLineEdit( this ); ++ Q3MultiLineEdit* TextLabel1 = new Q3MultiLineEdit( this ); + TextLabel1->setText( tr( "Press the key(s) you want assigned to the highlighted function.\n\nPress the delete button to unmap the key.\n\nUse the \"Close\" button (not the [x]) to finish." ) ); + TextLabel1->setReadOnly(true); +- TextLabel1->setWordWrap(QMultiLineEdit::WidgetWidth); ++ TextLabel1->setWordWrap(Q3MultiLineEdit::WidgetWidth); + + // lo->addWidget(TextLabel, 0, Qt::AlignTop); + // lo->addWidget(action, 0, Qt::AlignTop); + lo->addWidget(TextLabel1); + lo->addWidget(action); + vo->addLayout(lo); +- lb = new QListView(this); ++ lb = new Q3ListView(this); + lb->addColumn( tr( "Key" ) ); + lb->addColumn( tr( "Function" ) ); + lb->addColumn( tr( "Scroll" ) ); +diff --git a/ButtonPrefs.h b/ButtonPrefs.h +index 9af04e1..f09ad02 100644 +--- a/ButtonPrefs.h ++++ b/ButtonPrefs.h +@@ -11,11 +11,13 @@ + + #include <qvariant.h> + #include <qwidget.h> +-#include <qtabdialog.h> ++#include <Qt3Support/Q3TabDialog> + #include <qtabwidget.h> + #include <qspinbox.h> + #include <qcheckbox.h> + #include <qlineedit.h> ++#include <qnamespace.h> ++using namespace Qt; + + #define USECOMBO + +@@ -33,18 +35,18 @@ class QGridLayout; + //class QCheckBox; + class QLabel; + //class QSpinBox; +-class QListViewItem; ++class Q3ListViewItem; + +-class QListView; +-class QListViewItem; ++class Q3ListView; ++class Q3ListViewItem; + + class CButtonPrefs : public QWidget + { + Q_OBJECT + + QMap<orKey, int> *kmap; +- QMap<orKey, QListViewItem*> listmap; +- QListView* lb; ++ QMap<orKey, Q3ListViewItem*> listmap; ++ Q3ListView* lb; + void keyPressEvent(QKeyEvent* e); + #ifdef USECOMBO + void populate(QComboBox*); +diff --git a/CAnnoEdit.cpp b/CAnnoEdit.cpp +index 35821ed..6ee1321 100644 +--- a/CAnnoEdit.cpp ++++ b/CAnnoEdit.cpp +@@ -83,8 +83,8 @@ CAnnoEdit::CAnnoEdit(QWidget *parent, const char *name, WFlags f) : + { + QVBoxLayout* grid = new QVBoxLayout(this); + m_name = new QLineEdit(this, "Name"); +- m_anno = new QMultiLineEdit(this, "Annotation"); +- m_anno->setWordWrap(QMultiLineEdit::WidgetWidth); ++ m_anno = new Q3MultiLineEdit(this, "Annotation"); ++ m_anno->setWordWrap(Q3MultiLineEdit::WidgetWidth); + QPushButton* exitButton = new QPushButton("Okay", this); + connect(exitButton, SIGNAL( clicked() ), this, SLOT( slotOkay() ) ); + QPushButton* cancelButton = new QPushButton("Cancel", this); +diff --git a/CAnnoEdit.h b/CAnnoEdit.h +index 78d3eeb..c74c560 100644 +--- a/CAnnoEdit.h ++++ b/CAnnoEdit.h +@@ -4,15 +4,17 @@ + #include <qlayout.h> + #include <qpushbutton.h> + #include <qlineedit.h> +-#include <qmultilineedit.h> ++#include <Qt3Support/Q3MultiLineEdit> + #include <qcombobox.h> ++#include <qnamespace.h> ++using namespace Qt; + + class CAnnoEdit : public QWidget + { + Q_OBJECT + + QLineEdit* m_name; +- QMultiLineEdit* m_anno; ++ Q3MultiLineEdit* m_anno; + size_t m_posn, m_posn2; + QComboBox* colorbox; + public: +diff --git a/CFilter.cpp b/CFilter.cpp +index a4ea60a..84fa451 100644 +--- a/CFilter.cpp ++++ b/CFilter.cpp +@@ -9,6 +9,7 @@ + #include "CDrawBuffer.h" + #include "CFilter.h" + #include "hrule.h" ++#include "uqtcommon.h" + + #include <qregexp.h> + #include <qimage.h> +@@ -665,17 +666,8 @@ class ErrorFilter : public CFilter + #ifndef __STATIC + ExternFilter::ExternFilter(const QString& nm, const QString& optional) : filt(NULL), handle(NULL) + { +-#ifdef USEQPE +-#ifdef OPIE +- QString filterpath(getenv("OPIEDIR")); +-#else +- QString filterpath(getenv("QTDIR")); +-#endif +- filterpath += "/plugins/reader/filters/lib"; +-#else +- QString filterpath(getenv("READERDIR")); +- filterpath += "/filters/lib"; +-#endif ++ QString filterpath = uqt_filterspath(); ++ filterpath += "lib"; + filterpath += nm; + filterpath += ".so"; + if (QFile::exists(filterpath)) +diff --git a/CHM.cpp b/CHM.cpp +index ace5abc..3c325bb 100644 +--- a/CHM.cpp ++++ b/CHM.cpp +@@ -335,7 +335,7 @@ int CHM::getch() { + #else + QChar letter = chmBuffer[bufpos++]; + #endif +- return (int)(char)letter; ++ return letter.unicode(); + } + + void CHM::getch(tchar& ch, CStyle& sty) +diff --git a/CloseDialog.cpp b/CloseDialog.cpp +index 741fa67..62ae906 100644 +--- a/CloseDialog.cpp ++++ b/CloseDialog.cpp +@@ -5,7 +5,7 @@ CCloseDialog::CCloseDialog(const QString& fname, bool fs, QWidget* parent, const + { + setCaption(tr("Tidy-up")); + QVBoxLayout *tmp = new QVBoxLayout(this); +- QVButtonGroup* vb = new QVButtonGroup(tr("Delete"), this); ++ Q3VButtonGroup* vb = new Q3VButtonGroup(tr("Delete"), this); + tmp->addWidget(vb); + QString filestring = tr("Delete") + " " + fname; + file = new QCheckBox(filestring, vb); +diff --git a/CloseDialog.h b/CloseDialog.h +index 54aaf1c..84609f5 100644 +--- a/CloseDialog.h ++++ b/CloseDialog.h +@@ -11,14 +11,17 @@ + + #include <qvariant.h> + #include <qwidget.h> +-#include <qtabdialog.h> ++#include <Qt3Support/Q3TabDialog> + #include <qtabwidget.h> + #include <qspinbox.h> + #include <qcheckbox.h> + #include <qcombobox.h> + #include <qlineedit.h> + //#include <qpe/menubutton.h> +-#include <qvbuttongroup.h> ++#include <Qt3Support/Q3VButtonGroup> ++#include <QtGui/QKeyEvent> ++#include <qnamespace.h> ++using namespace Qt; + + class QVBoxLayout; + class QHBoxLayout; +diff --git a/FontControl.cpp b/FontControl.cpp +index 08b8c52..0be54ba 100644 +--- a/FontControl.cpp ++++ b/FontControl.cpp +@@ -1,4 +1,5 @@ + #include <qfontdatabase.h> ++#include <Qt3Support/Q3ValueList> + + #include "FontControl.h" + +@@ -33,9 +34,9 @@ int FontControl::gzoom() + + bool FontControl::ChangeFont(QString& n, int tgt) + { +- QValueList<int>::Iterator it; ++ Q3ValueList<int>::Iterator it; + QFontDatabase fdb; +- QValueList<int> sizes = fdb.pointSizes(n); ++ Q3ValueList<int> sizes = fdb.pointSizes(n); + if (sizes.count() == 0) + { + return false; +@@ -65,3 +66,25 @@ bool FontControl::ChangeFont(QString& n, int tgt) + } + return true; + } ++ ++void FontControl::setCourier() { ++ setCourier(m_fontname); ++} ++void FontControl::setCourier(const QString fn) { ++ QFontDatabase fdb; ++ QStringList fl = fdb.families(); ++ setCourier(fn,fl); ++} ++void FontControl::setCourier(const QString fn,const QStringList fl) { ++ QString fp; ++ int sp = fn.indexOf(' '); ++ if(sp>=0) fp = fn.left(sp); ++ for(QStringList::const_iterator i=fl.begin();i!=fl.end();++i) { ++ if( ++ ( i->startsWith(fn,Qt::CaseInsensitive) ++ || ( (!fp.isEmpty()) && i->startsWith(fp,Qt::CaseInsensitive) ) ) ++ && ( i->endsWith("mono",Qt::CaseInsensitive) ++ || i->endsWith("Fixed") ) ) ++ hasCourier(true,*i); ++ } ++} +diff --git a/FontControl.h b/FontControl.h +index 563e1a8..c7a54ab 100644 +--- a/FontControl.h ++++ b/FontControl.h +@@ -2,6 +2,7 @@ + #define __FONTCONTROL_H + + #include <qfontmetrics.h> ++#include <QFontDatabase> + #include "StyleConsts.h" + + class FontControl +@@ -32,6 +33,7 @@ class FontControl + m_fontsizes(NULL), m_hasCourier(false), m_leading(0), m_extraspace(0), m_fixgraphics(true) + { + ChangeFont(n, size); ++ setCourier(); + } + ~FontControl() + { +@@ -167,6 +169,10 @@ class FontControl + { + return m_extraspace; + } ++ ++ void setCourier(); ++ void setCourier(const QString fn); ++ void setCourier(const QString fn,const QStringList fl); + }; + + #endif +diff --git a/GraphicWin.h b/GraphicWin.h +index 70d5f7e..a6c556a 100644 +--- a/GraphicWin.h ++++ b/GraphicWin.h +@@ -1,14 +1,16 @@ + #ifndef __GRAPHICWIN_H + #define __GRAPHICWIN_H + +-#include <qscrollview.h> ++#include <Qt3Support/Q3ScrollView> + #include <qpixmap.h> + #include <qimage.h> + #include <qpushbutton.h> + #include <qlayout.h> + #include <qwmatrix.h> ++#include <qnamespace.h> ++using namespace Qt; + +-class GraphicScroll : public QScrollView ++class GraphicScroll : public Q3ScrollView + { + Q_OBJECT + QWidget* m_picture; +@@ -19,7 +21,7 @@ class GraphicScroll : public QScrollView + } + public: + GraphicScroll( QWidget *parent=0, const char *name=0, WFlags f = 0) +- : QScrollView(parent, name, f) ++ : Q3ScrollView(parent, name, f) + { + m_picture = new QWidget(viewport()); + addChild(m_picture); +diff --git a/Prefs.cpp b/Prefs.cpp +index 6c4d45b..d20dc00 100644 +--- a/Prefs.cpp ++++ b/Prefs.cpp +@@ -7,6 +7,7 @@ + ** WARNING! All changes made in this file will be lost! + ****************************************************************************/ + #include "Prefs.h" ++#include "uqtcommon.h" + + #include <stdlib.h> + +@@ -27,6 +28,7 @@ + #include <qpe/menubutton.h> + #endif + #include <qfontdatabase.h> ++#include <Qt3Support/Q3ButtonGroup> + + #ifdef USECOMBO + void populate_colours(QComboBox *mb) +@@ -58,7 +60,7 @@ CLayoutPrefs::CLayoutPrefs( QWidget* parent, const char* name, WFlags fl ) + : QWidget( parent, name, fl ) + { + QHBoxLayout* hb = new QHBoxLayout(this); +- QButtonGroup* bg = new QButtonGroup(2, Qt::Horizontal, "Text", this); ++ Q3ButtonGroup* bg = new Q3ButtonGroup(2, Qt::Horizontal, "Text", this); + hb->addWidget(bg); + + StripCR = new QCheckBox( bg ); +@@ -592,7 +594,7 @@ CMiscPrefs::CMiscPrefs( QWidget* parent, const char* name, WFlags fl ) + vl->setMargin( 0 ); + hl->setMargin( 0 ); + +- QGroupBox* gb = new QGroupBox(1, Qt::Horizontal, "Select Action", this); ++ Q3GroupBox* gb = new Q3GroupBox(1, Qt::Horizontal, "Select Action", this); + hl->addWidget( gb ); + + annotation = new QCheckBox( gb ); +@@ -607,7 +609,7 @@ CMiscPrefs::CMiscPrefs( QWidget* parent, const char* name, WFlags fl ) + boutput = new QCheckBox( gb ); + boutput->setText( tr( "Output" ) ); + +- QButtonGroup* bg = new QButtonGroup(1, Qt::Horizontal, "Plucker", this); ++ Q3ButtonGroup* bg = new Q3ButtonGroup(1, Qt::Horizontal, "Plucker", this); + hl->addWidget( bg ); + + Depluck = new QCheckBox( bg ); +@@ -618,7 +620,7 @@ CMiscPrefs::CMiscPrefs( QWidget* parent, const char* name, WFlags fl ) + + Continuous = new QCheckBox( bg ); + Continuous->setText( tr( "Continuous" ) ); +- bg = new QButtonGroup(2, Qt::Horizontal, "Background", this); ++ bg = new Q3ButtonGroup(2, Qt::Horizontal, "Background", this); + vl->addWidget( bg ); + + // QLabel* TextLabel = new QLabel( bg ); +@@ -662,7 +664,7 @@ CScrollPrefs::CScrollPrefs( QWidget* parent, const char* name, WFlags fl ) + + hl->setMargin( 0 ); + +- QButtonGroup* bg = new QButtonGroup(2, Qt::Horizontal, "Scroll", this); ++ Q3ButtonGroup* bg = new Q3ButtonGroup(2, Qt::Horizontal, "Scroll", this); + hl->addWidget( bg ); + + // scrollinplace = new QCheckBox( bg ); +@@ -707,18 +709,8 @@ CScrollPrefs::CScrollPrefs( QWidget* parent, const char* name, WFlags fl ) + #else + outcodec = new MenuButton( this); + #endif +-#ifdef USEQPE +-#ifdef OPIE +- QString codecpath(getenv("OPIEDIR")); +-#else +- QString codecpath(getenv("QTDIR")); +-#endif +- codecpath += "/plugins/reader/outcodecs"; +-#else +- QString codecpath(getenv("READERDIR")); +- codecpath += "/outcodecs"; +-#endif +- QDir ocd(codecpath, "lib*.so"); ++ QString codecpath = uqt_outcodecspath(); ++ QDir ocd(uqt_outcodecspath(), "lib*.so"); + for (int i = 0; i < ocd.count(); ++i) + { + QString tmp(ocd[i]); +@@ -772,7 +764,7 @@ CInterPrefs::CInterPrefs( QWidget* parent, const char* name, WFlags fl ) + { + QHBoxLayout* hb = new QHBoxLayout(this); + +- QGroupBox* gb = new QGroupBox(1, Qt::Horizontal, tr("International"), this); ++ Q3GroupBox* gb = new Q3GroupBox(1, Qt::Horizontal, tr("International"), this); + + hb->addWidget(gb); + +@@ -784,7 +776,7 @@ CInterPrefs::CInterPrefs( QWidget* parent, const char* name, WFlags fl ) + TextLabel = new QLabel( gb ); + TextLabel->setText( tr( "Ideogram Width" ) ); + ideogramwidth = new QSpinBox( gb ); +- ideogramwidth->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); ++ // ideogramwidth->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + ideogramwidth->setRange(1,200); + + propfontchange = new QCheckBox( gb ); +@@ -809,7 +801,7 @@ CInterPrefs::CInterPrefs( QWidget* parent, const char* name, WFlags fl ) + + QVBoxLayout* vb = new QVBoxLayout; + +- gb = new QGroupBox(1, Qt::Horizontal, "Dictionary", this); ++ gb = new Q3GroupBox(1, Qt::Horizontal, "Dictionary", this); + + TextLabel = new QLabel( gb ); + TextLabel->setText( tr( "Application" ) ); +diff --git a/Prefs.h b/Prefs.h +index 103484e..a499506 100644 +--- a/Prefs.h ++++ b/Prefs.h +@@ -11,11 +11,14 @@ + + #include <qvariant.h> + #include <qwidget.h> +-#include <qtabdialog.h> ++#include <Qt3Support/Q3TabDialog> + #include <qtabwidget.h> + #include <qspinbox.h> + #include <qcheckbox.h> + #include <qlineedit.h> ++#include <qnamespace.h> ++using namespace Qt; ++#include <QtGui/QKeyEvent> + + #define USECOMBO + +diff --git a/QFloatBar.h b/QFloatBar.h +index cc98233..0144fce 100644 +--- a/QFloatBar.h ++++ b/QFloatBar.h +@@ -1,10 +1,11 @@ + #ifndef __QFLOATBAR_H + #define __QFLOATBAR_H + +-#include <qtoolbar.h> +-#include <qmainwindow.h> ++#include <Qt3Support/Q3ToolBar> ++#include <Qt3Support/Q3MainWindow> ++#include <qnamespace.h> + +-class QFloatBar : public QToolBar ++class QFloatBar : public Q3ToolBar + { + Q_OBJECT + virtual void hideEvent(QHideEvent* e) +@@ -12,7 +13,7 @@ class QFloatBar : public QToolBar + /*if (e->spontaneous())*/ emit OnHide(); + } + public: +- QFloatBar(char* t, QMainWindow* mw, QMainWindow::ToolBarDock td, bool f) : QToolBar(t, mw, td, f) {} ++ QFloatBar(char* t, Q3MainWindow* mw, Qt::ToolBarDock td, bool f) : Q3ToolBar(t, mw, td, f) {} + signals: + void OnHide(); + }; +diff --git a/QTReader.cpp b/QTReader.cpp +index 75da8ac..2c698ba 100644 +--- a/QTReader.cpp ++++ b/QTReader.cpp +@@ -1999,6 +1999,7 @@ void QTReader::drawFonts() + } + } + emitRedraw(); ++ update(); + } + /* + else +@@ -2221,7 +2222,7 @@ void QTReader::init() + setBackgroundColor( m_bg ); + buffdoc.setfilter(getfilter()); + ChangeFont(m_textsize); +- setFocusPolicy(QWidget::StrongFocus); ++ setFocusPolicy(Qt::StrongFocus); + timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(doscroll())); + #ifdef USETIMER +@@ -3096,7 +3097,7 @@ void QTReader::blitRot(int dx, int dy, int sw, int sh, CDrawBuffer* txt) + + QPixmap pm(sw, sh); + +- QPainter pd(&pm, this); ++ QPainter pd(&pm); // , this); + if (m_bgpm.isNull()) + { + pd.eraseRect(pm.rect()); +@@ -3136,7 +3137,7 @@ void QTReader::blitRot(int dx, int dy, int sw, int sh, CDrawBuffer* txt) + /* + p.drawPixmap(QPoint(dx, dy), rp); + */ +- bitBlt(this, dx, dy, &rp, 0, 0, -1, -1, CopyROP); ++ bitBlt(this, dx, dy, &rp, 0, 0, -1, -1, QPainter::CompositionMode_Source); + } + + QString QTReader::about() +diff --git a/QTReader.h b/QTReader.h +index 9daa07a..6afa3e7 100644 +--- a/QTReader.h ++++ b/QTReader.h +@@ -8,6 +8,9 @@ + #include "BuffDoc.h" + #include "FontControl.h" + ++#include <qnamespace.h> ++using namespace Qt; ++ + //#include <qtimer.h> + + class CDrawBuffer; +diff --git a/QTReaderApp.cpp b/QTReaderApp.cpp +index b985094..529ec9e 100644 +--- a/QTReaderApp.cpp ++++ b/QTReaderApp.cpp +@@ -20,7 +20,9 @@ + + #include <qregexp.h> + #include <qclipboard.h> +-#include <qwidgetstack.h> ++#include <QStackedWidget> ++#include <Qt3Support/Q3Action> ++#include <qdesktopwidget.h> + #ifdef USEQPE + #include <qpe/qpemenubar.h> + #include <qpe/qpetoolbar.h> +@@ -31,13 +33,12 @@ + #include <qpe/menubutton.h> + #endif + #include <qcombobox.h> +-#include <qpopupmenu.h> ++#include <Qt3Support/Q3PopupMenu> + #include <qaction.h> + #include <qapplication.h> + #include <qlineedit.h> + #include <qtoolbutton.h> + #include <qspinbox.h> +-#include <qobjectlist.h> + #include <qstatusbar.h> + #ifdef USEQPE + #include <qpe/global.h> +@@ -66,6 +67,7 @@ + #include "FixedFont.h" + #include "URLDialog.h" + #include "util.h" ++#include "uqtcommon.h" + #include <qfontdatabase.h> + + #ifdef USEQPE +@@ -103,18 +105,10 @@ bool CheckVersion(int&, int&, char&, QWidget*); + #define USEMSGS + #define PICDIR "opie-reader/" + #else +-//#define PICDIR "/home/tim/uqtreader/pics/" +-QString picdir() +-{ +- QString hd(getenv("READERDIR")); +- return hd + "/pics"; +-} +-#define PICDIR picdir() ++#define PICDIR uqt_picspath() + #endif + #endif + +-unsigned long QTReaderApp::m_uid = 0; +- + void QTReaderApp::setScrollState(bool _b) { m_scrollButton->setOn(_b); } + + #ifdef USEQPE +@@ -156,16 +150,9 @@ void QTReaderApp::listBkmkFiles() + d.setFilter( QDir::Files | QDir::NoSymLinks ); + // d.setSorting( QDir::Size | QDir::Reversed ); + +- const QFileInfoList *list = d.entryInfoList(); +- QFileInfoListIterator it( *list ); // create list iterator +- QFileInfo *fi; // pointer for traversing +- while ( (fi=it.current()) ) { // for each file... +- +- bkmkselector->insertItem(fi->fileName(), cnt++); +- +- //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); +- ++it; // goto next list element +- } ++ QFileInfoList list = d.entryInfoList(); ++ for(QFileInfoListIterator it=list.begin();it!=list.end();++it) ++ bkmkselector->insertItem(it->fileName(), cnt++); + + #else /* USEQPE */ + int cnt = 0; +@@ -192,7 +179,7 @@ void QTReaderApp::listBkmkFiles() + //tjw menu->hide(); + + +- editorStack->raiseWidget( bkmkselector ); ++ editorStack->setCurrentWidget( bkmkselector ); + hidetoolbars(); + m_nBkmkAction = cRmBkmkFile; + } +@@ -207,6 +194,8 @@ void QTReaderApp::hidetoolbars() + + #if defined(USEQPE) + menubar->hide(); ++#else ++ mb->hide(); + #endif + + if (m_scrollbar != NULL) m_scrollbar->hide(); +@@ -233,7 +222,7 @@ void QTReaderApp::hidetoolbars() + } + + QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) +- : QMainWindow( parent, name, f ), m_dontSave(false), ++ : Q3MainWindow( parent, name, f ), m_dontSave(false), + fileBar(NULL), navBar(NULL), viewBar(NULL), markBar(NULL), m_scrollbar(NULL), m_localscroll(2), m_hidebars(false), m_kmapchanged(false) + { + { +@@ -337,41 +326,41 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + // QToolBar* markBar = new QToolBar("File", this); + + #if defined(USEQPE) +- menubar = new QToolBar("Menus", this, m_tbposition); ++ menubar = new Q3ToolBar("Menus", this, m_tbposition); + mb = new QPEMenuBar( menubar ); + #else + mb = new QMenuBar( this ); + #endif + + #if defined(USEQPE) +- QPopupMenu* tmp = new QPopupMenu(mb); ++ Q3PopupMenu* tmp = new Q3PopupMenu(mb); + mb->insertItem( geticon( "AppsIcon" ), tmp ); + #else + QMenuBar* tmp = mb; + #endif + +- QPopupMenu *file = new QPopupMenu( mb ); ++ Q3PopupMenu *file = new Q3PopupMenu( mb ); + tmp->insertItem( tr( "File" ), file ); + +- QPopupMenu *navigation = new QPopupMenu(mb); ++ Q3PopupMenu *navigation = new Q3PopupMenu(mb); + tmp->insertItem( tr( "Navigation" ), navigation ); + +- QPopupMenu *view = new QPopupMenu( mb ); ++ Q3PopupMenu *view = new Q3PopupMenu( mb ); + tmp->insertItem( tr( "View" ), view ); + +- QPopupMenu *marks = new QPopupMenu( this ); ++ Q3PopupMenu *marks = new Q3PopupMenu( this ); + tmp->insertItem( tr( "Marks" ), marks ); + +- QPopupMenu *settings = new QPopupMenu( this ); ++ Q3PopupMenu *settings = new Q3PopupMenu( this ); + tmp->insertItem( tr( "Settings" ), settings ); + + // addToolBar(menubar, "Menus",QMainWindow::Top); + // addToolBar(fileBar, "Toolbar",QMainWindow::Top); + +- // QPopupMenu *edit = new QPopupMenu( this ); ++ // Q3PopupMenu *edit = new Q3PopupMenu( this ); + + /* +- QAction *a = new QAction( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); ++ Q3Action *a = new Q3Action( tr( "New" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); + a->addTo( bar ); + a->addTo( file ); +@@ -379,34 +368,35 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + QWidget* widge = new QWidget(this); + setCentralWidget( widge ); + QVBoxLayout* vlayout = new QVBoxLayout(widge); ++ vlayout->setMargin(0); + m_layout = new QBoxLayout(QBoxLayout::LeftToRight); + m_prog = new QLabel(widge); + vlayout->addLayout(m_layout, 1); + vlayout->addWidget(m_prog); + +- editorStack = new QWidgetStack( widge ); ++ editorStack = new QStackedWidget( widge ); + // setCentralWidget( editorStack ); + + searchVisible = FALSE; + regVisible = FALSE; + m_fontVisible = false; + +- m_buttonprefs = new CButtonPrefs(&kmap, this); +- editorStack->addWidget(m_buttonprefs, get_unique_id()); ++ m_buttonprefs = new CButtonPrefs(&kmap, editorStack); ++ editorStack->addWidget(m_buttonprefs); + connect( m_buttonprefs, SIGNAL( Closed() ), this, SLOT( infoClose() ) ); + + + m_annoWin = new CAnnoEdit(editorStack); +- editorStack->addWidget(m_annoWin, get_unique_id()); ++ editorStack->addWidget(m_annoWin); + connect( m_annoWin, SIGNAL( finished(const QString&, const QString&) ), this, SLOT( addAnno(const QString&, const QString&) ) ); + connect( m_annoWin, SIGNAL( cancelled() ), this, SLOT( infoClose() ) ); + + m_infoWin = new infowin(editorStack); +- editorStack->addWidget(m_infoWin, get_unique_id()); ++ editorStack->addWidget(m_infoWin); + connect( m_infoWin, SIGNAL( Close() ), this, SLOT( infoClose() ) ); + + m_graphicwin = new GraphicWin(editorStack); +- editorStack->addWidget(m_graphicwin, get_unique_id()); ++ editorStack->addWidget(m_graphicwin); + connect( m_graphicwin, SIGNAL( Closed() ), this, SLOT( infoClose() ) ); + + // bkmkselector = new QListBox(editorStack, "Bookmarks"); +@@ -414,7 +404,7 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + // connect(bkmkselector, SIGNAL( selected(const QString&) ), this, SLOT( gotobkmk(const QString&) ) ); + connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( gotobkmk(int) ) ); + connect(bkmkselector, SIGNAL( cancelled() ), this, SLOT( cancelbkmk() ) ); +- editorStack->addWidget( bkmkselector, get_unique_id() ); ++ editorStack->addWidget( bkmkselector); + + /* + importSelector = new FileSelector( "*", editorStack, "importselector", false ); +@@ -572,139 +562,139 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + connect( reader, SIGNAL( HandleKeyRequest(QKeyEvent*) ), this, SLOT( handlekey(QKeyEvent*) ) ); + connect( reader, SIGNAL( SetScrollState(bool) ), this, SLOT( setScrollState(bool) ) ); + connect( reader, SIGNAL(RefreshBitmap()), this, SLOT(setBackgroundBitmap())); +- editorStack->addWidget( reader, get_unique_id() ); ++ editorStack->addWidget( reader ); + +- m_preferences_action = new QAction( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL); ++ m_preferences_action = new Q3Action( tr( "Configuration" ), geticon( "SettingsIcon" ), QString::null, 0, this, NULL); + connect( m_preferences_action, SIGNAL( activated() ), this, SLOT( showprefs() ) ); + m_preferences_action->addTo( settings ); + +- m_saveconfig_action = new QAction( tr( "Save Config" ), QString::null, 0, this, NULL); ++ m_saveconfig_action = new Q3Action( tr( "Save Config" ), QString::null, 0, this, NULL); + connect( m_saveconfig_action, SIGNAL( activated() ), this, SLOT( SaveConfig() ) ); + m_saveconfig_action->addTo( settings ); + +- m_loadconfig_action = new QAction( tr( "Load Config" ), QString::null, 0, this, NULL); ++ m_loadconfig_action = new Q3Action( tr( "Load Config" ), QString::null, 0, this, NULL); + connect( m_loadconfig_action, SIGNAL( activated() ), this, SLOT( LoadConfig() ) ); + m_loadconfig_action->addTo( settings ); + +- m_tidyconfig_action = new QAction( tr( "Delete Config" ), QString::null, 0, this, NULL); ++ m_tidyconfig_action = new Q3Action( tr( "Delete Config" ), QString::null, 0, this, NULL); + connect( m_tidyconfig_action, SIGNAL( activated() ), this, SLOT( TidyConfig() ) ); + m_tidyconfig_action->addTo( settings ); + + settings->insertSeparator(); +- m_toolbarprefs_action = new QAction( tr( "Toolbars" ), QString::null, 0, this, NULL); ++ m_toolbarprefs_action = new Q3Action( tr( "Toolbars" ), QString::null, 0, this, NULL); + connect( m_toolbarprefs_action, SIGNAL( activated() ), this, SLOT( showtoolbarprefs() ) ); + m_toolbarprefs_action->addTo( settings ); + +- m_buttonprefs_action = new QAction( tr( "Buttons" ), QString::null, 0, this, NULL); ++ m_buttonprefs_action = new Q3Action( tr( "Buttons" ), QString::null, 0, this, NULL); + connect( m_buttonprefs_action, SIGNAL( activated() ), this, SLOT( showbuttonprefs() ) ); + m_buttonprefs_action->addTo( settings ); + +- m_loadtheme_action = new QAction( tr( "Load Theme" ), QString::null, 0, this, NULL); ++ m_loadtheme_action = new Q3Action( tr( "Load Theme" ), QString::null, 0, this, NULL); + connect( m_loadtheme_action, SIGNAL( activated() ), this, SLOT( LoadTheme() ) ); + m_loadtheme_action->addTo( settings ); + +- m_repara_action = new QAction( tr( "EOP Marker" ), QString::null, 0, this, NULL); ++ m_repara_action = new Q3Action( tr( "EOP Marker" ), QString::null, 0, this, NULL); + connect( m_repara_action, SIGNAL( activated() ), this, SLOT( reparastring() ) ); + m_repara_action->addTo(settings); + + #ifdef USEQPE +- m_grab_action = new QAction( tr( "Grab Buttons" ), QString::null, 0, this, NULL, true ); ++ m_grab_action = new Q3Action( tr( "Grab Buttons" ), QString::null, 0, this, NULL, true ); + connect( m_grab_action, SIGNAL( toggled(bool) ), this, SLOT( setgrab(bool) ) ); + m_grab_action->setOn(m_grabkeyboard); + m_grab_action->addTo( settings ); + #endif + +- m_open_action = new QAction( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 ); ++ m_open_action = new Q3Action( tr( "Open" ), geticon( "fileopen" ), QString::null, 0, this, 0 ); + connect( m_open_action, SIGNAL( activated() ), this, SLOT( fileOpen() ) ); + m_open_action->addTo( file ); + +- m_close_action = new QAction( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 ); ++ m_close_action = new Q3Action( tr( "Close" ), geticon( "close" ), QString::null, 0, this, 0 ); + connect( m_close_action, SIGNAL( activated() ), this, SLOT( fileClose() ) ); + m_close_action->addTo( file ); + + #ifdef _SCRIPT +- a = new QAction( tr( "Run Script" ), QString::null, 0, this, NULL); ++ a = new Q3Action( tr( "Run Script" ), QString::null, 0, this, NULL); + connect( a, SIGNAL( activated() ), this, SLOT( RunScript() ) ); + a->addTo( file ); + #endif + /* +- a = new QAction( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 ); ++ a = new Q3Action( tr( "Revert" ), geticon( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( fileRevert() ) ); + a->addTo( file ); + +- a = new QAction( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 ); ++ a = new Q3Action( tr( "Cut" ), geticon( "cut" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( editCut() ) ); + a->addTo( filebar() ); + a->addTo( edit ); + */ + +- m_info_action = new QAction( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL); ++ m_info_action = new Q3Action( tr( "Info" ), geticon( "UtilsIcon" ), QString::null, 0, this, NULL); + connect( m_info_action, SIGNAL( activated() ), this, SLOT( showinfo() ) ); + m_info_action->addTo( file ); + +- m_touch_action = new QAction( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true ); ++ m_touch_action = new Q3Action( tr( "Two/One Touch" ), geticon( "1to1" ), QString::null, 0, this, NULL, true ); + connect( m_touch_action, SIGNAL( toggled(bool) ), this, SLOT( setTwoTouch(bool) ) ); + m_touch_action->setOn(m_twoTouch); + m_touch_action->addTo( file ); + +- m_find_action = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL); ++ m_find_action = new Q3Action( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, NULL); + connect( m_find_action, SIGNAL( activated() ), this, SLOT( editFind() ) ); + file->insertSeparator(); + // a->addTo( bar ); + m_find_action->addTo( file ); + +- m_exportlinks_action = new QAction( tr( "Export Links" ), QString::null, 0, this, NULL); ++ m_exportlinks_action = new Q3Action( tr( "Export Links" ), QString::null, 0, this, NULL); + connect( m_exportlinks_action, SIGNAL( activated() ), this, SLOT( ExportLinks() ) ); + m_exportlinks_action->addTo( file ); + +- m_scrollButton = new QAction( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true ); ++ m_scrollButton = new Q3Action( tr( "Scroll" ), getmyicon( "panel-arrow-down" ), QString::null, 0, this, 0, true ); + connect( m_scrollButton, SIGNAL( toggled(bool) ), this, SLOT( autoScroll(bool) ) ); + m_scrollButton->addTo(navigation); + m_scrollButton->setOn(false); + +- m_start_action = new QAction( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL); ++ m_start_action = new Q3Action( tr( "Goto Start" ), geticon( "start" ), QString::null, 0, this, NULL); + connect( m_start_action, SIGNAL( activated() ), this, SLOT( gotoStart() ) ); + m_start_action->addTo(navigation); + +- m_end_action = new QAction( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL); ++ m_end_action = new Q3Action( tr( "Goto End" ), geticon( "finish" ), QString::null, 0, this, NULL); + connect( m_end_action, SIGNAL( activated() ), this, SLOT( gotoEnd() ) ); + m_end_action->addTo(navigation); + +- m_jump_action = new QAction( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL); ++ m_jump_action = new Q3Action( tr( "Jump" ), geticon( "rotate" ), QString::null, 0, this, NULL); + connect( m_jump_action, SIGNAL( activated() ), this, SLOT( jump() ) ); + m_jump_action->addTo(navigation); + +- m_pageline_action = new QAction( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true ); ++ m_pageline_action = new Q3Action( tr( "Page/Line Scroll" ), geticon( "pass" ), QString::null, 0, this, NULL, true ); + connect( m_pageline_action, SIGNAL( toggled(bool) ), this, SLOT( pagemode(bool) ) ); + m_pageline_action->addTo(navigation); + m_pageline_action->setOn(reader->m_bpagemode); + +- m_pageup_action = new QAction( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 ); ++ m_pageup_action = new Q3Action( tr( "Up" ), geticon( "up" ), QString::null, 0, this, 0 ); + connect( m_pageup_action, SIGNAL( activated() ), this, SLOT( pageup() ) ); + m_pageup_action->addTo( navigation ); + +- m_pagedn_action = new QAction( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 ); ++ m_pagedn_action = new Q3Action( tr( "Down" ), geticon( "down" ), QString::null, 0, this, 0 ); + connect( m_pagedn_action, SIGNAL( activated() ), this, SLOT( pagedn() ) ); + m_pagedn_action->addTo( navigation ); + +- m_back_action = new QAction( tr( "Back" ), geticon( "back" ), QString::null, 0, this, 0 ); ++ m_back_action = new Q3Action( tr( "Back" ), geticon( "back" ), QString::null, 0, this, 0 ); + connect( m_back_action, SIGNAL( activated() ), reader, SLOT( goBack() ) ); + m_back_action->addTo( navigation ); + +- m_home_action = new QAction( tr( "Home" ), geticon( "home" ), QString::null, 0, this, 0 ); ++ m_home_action = new Q3Action( tr( "Home" ), geticon( "home" ), QString::null, 0, this, 0 ); + connect( m_home_action, SIGNAL( activated() ), reader, SLOT( goHome() ) ); + m_home_action->addTo( navigation ); + +- m_forward_action = new QAction( tr( "Forward" ), geticon( "forward" ), QString::null, 0, this, 0 ); ++ m_forward_action = new Q3Action( tr( "Forward" ), geticon( "forward" ), QString::null, 0, this, 0 ); + connect( m_forward_action, SIGNAL( activated() ), reader, SLOT( goForward() ) ); + m_forward_action->addTo( navigation ); + + /* +- a = new QAction( tr( "Find" ), QString::null, 0, this, NULL, true ); ++ a = new Q3Action( tr( "Find" ), QString::null, 0, this, NULL, true ); + // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) ); + a->addTo( file ); + +- a = new QAction( tr( "Find Again" ), QString::null, 0, this, NULL, true ); ++ a = new Q3Action( tr( "Find Again" ), QString::null, 0, this, NULL, true ); + // connect( a, SIGNAL( activated() ), this, SLOT( pagedn() ) ); + a->addTo( file ); + */ +@@ -715,13 +705,13 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + + QActionGroup* ag = new QActionGroup(this); + ag->setExclusive(false); +- spacemenu = new QPopupMenu(this); ++ spacemenu = new Q3PopupMenu(this); + file->insertItem( tr( "Scrolling" ), spacemenu ); + +- a = new QAction( tr( "Set Target" ), QString::null, 0, ag, NULL); ++ a = new Q3Action( tr( "Set Target" ), QString::null, 0, ag, NULL); + connect( a, SIGNAL( activated() ), this, SLOT( setpipetarget() ) ); + +- a = new QAction( tr( "Pause Paras" ), QString::null, 0, ag, NULL, true ); ++ a = new Q3Action( tr( "Pause Paras" ), QString::null, 0, ag, NULL, true ); + connect( a, SIGNAL( toggled(bool) ), this, SLOT( setpause(bool) ) ); + a->setOn(reader->m_pauseAfterEachPara); + +@@ -731,64 +721,64 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + #endif + + /* +- a = new QAction( tr( "Import" ), QString::null, 0, this, NULL ); ++ a = new Q3Action( tr( "Import" ), QString::null, 0, this, NULL ); + connect( a, SIGNAL( activated() ), this, SLOT( importFiles() ) ); + a->addTo( file ); + */ + + /* +- a = new QAction( tr( "Paste" ), geticon( "paste" ), QString::null, 0, this, 0 ); ++ a = new Q3Action( tr( "Paste" ), geticon( "paste" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( editPaste() ) ); + a->addTo( fileBar ); + a->addTo( edit ); + */ + +-// a = new QAction( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, 0 ); ++// a = new Q3Action( tr( "Find..." ), geticon( "find" ), QString::null, 0, this, 0 ); + + m_fullscreen = false; +- m_actFullscreen = new QAction( tr( "Fullscreen" ), geticon( "fullscreen" ), QString::null, 0, this, NULL, true ); ++ m_actFullscreen = new Q3Action( tr( "Fullscreen" ), geticon( "fullscreen" ), QString::null, 0, this, NULL, true ); + connect( m_actFullscreen, SIGNAL( toggled(bool) ), this, SLOT( setfullscreen(bool) ) ); + m_actFullscreen->setOn(m_fullscreen); + m_actFullscreen->addTo( view ); + +- m_rotate_action = new QAction( tr( "Rotate" ), geticon( "repeat" ), QString::null, 0, this, NULL, true ); ++ m_rotate_action = new Q3Action( tr( "Rotate" ), geticon( "repeat" ), QString::null, 0, this, NULL, true ); + connect( m_rotate_action, SIGNAL( toggled(bool) ), this, SLOT( setrotated(bool) ) ); + m_rotate_action->setOn(reader->m_rotated); + m_rotate_action->addTo( view ); + +- m_inverse_action = new QAction( tr( "Invert" ), getmyicon( "invert" ), QString::null, 0, this, NULL, true ); ++ m_inverse_action = new Q3Action( tr( "Invert" ), getmyicon( "invert" ), QString::null, 0, this, NULL, true ); + connect( m_inverse_action, SIGNAL( toggled(bool) ), this, SLOT( setinverted(bool) ) ); + m_inverse_action->setOn(reader->bInverse); + m_inverse_action->addTo( view ); + + view->insertSeparator(); + +- m_zoomin_action = new QAction( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this); ++ m_zoomin_action = new Q3Action( tr( "Zoom In" ), geticon( "zoom" ), QString::null, 0, this); + connect( m_zoomin_action, SIGNAL( activated() ), this, SLOT( zoomin() ) ); + m_zoomin_action->addTo( view ); + +- m_zoomout_action = new QAction( tr( "Zoom Out" ), geticon( "mag" ), QString::null, 0, this); ++ m_zoomout_action = new Q3Action( tr( "Zoom Out" ), geticon( "mag" ), QString::null, 0, this); + connect( m_zoomout_action, SIGNAL( activated() ), this, SLOT( zoomout() ) ); + m_zoomout_action->addTo( view ); + + view->insertSeparator(); +- m_setfont_action = new QAction( tr( "Set Font" ), getmyicon( "font" ), QString::null, 0, this); ++ m_setfont_action = new Q3Action( tr( "Set Font" ), getmyicon( "font" ), QString::null, 0, this); + connect( m_setfont_action, SIGNAL( activated() ), this, SLOT( setfont() ) ); + m_setfont_action->addTo( view ); + + view->insertSeparator(); +- m_setenc_action = new QAction( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this); ++ m_setenc_action = new Q3Action( tr( "Set Encoding" ), getmyicon( "charset" ), QString::null, 0, this); + connect( m_setenc_action, SIGNAL( activated() ), this, SLOT( chooseencoding() ) ); + m_setenc_action->addTo( view ); + +- m_setmono_action = new QAction( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true); ++ m_setmono_action = new Q3Action( tr( "Ideogram" ), getmyicon( "ideogram" ), QString::null, 0, this, NULL, true); + connect( m_setmono_action, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); + m_setmono_action->addTo( view ); + m_setmono_action->setOn(reader->m_bMonoSpaced); + + +- // a = new QAction( tr( "Zoom" ), QString::null, 0, this, NULL, true ); +- // a = new QAction( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 ); ++ // a = new Q3Action( tr( "Zoom" ), QString::null, 0, this, NULL, true ); ++ // a = new Q3Action( tr( "Zoom" ), geticon( "mag" ), QString::null, 0, this, 0 ); + + + +@@ -796,57 +786,57 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + // view->insertSeparator(); + + /* +- a = new QAction( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true ); ++ a = new Q3Action( tr( "Ideogram/Word" ), QString::null, 0, this, NULL, true ); + connect( a, SIGNAL( toggled(bool) ), this, SLOT( monospace(bool) ) ); + a->setOn(reader->m_bMonoSpaced); + a->addTo( view ); + */ + /* +- a = new QAction( tr( "Set Width" ), QString::null, 0, this, NULL); ++ a = new Q3Action( tr( "Set Width" ), QString::null, 0, this, NULL); + connect( a, SIGNAL( activated() ), this, SLOT( setspacing() ) ); + a->addTo( view ); + */ + +- m_mark_action = new QAction( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL); ++ m_mark_action = new Q3Action( tr( "Bookmark" ), getmyicon( "bookmark" ), QString::null, 0, this, NULL); + connect( m_mark_action, SIGNAL( activated() ), this, SLOT( addbkmk() ) ); + m_mark_action->addTo( marks ); + +- m_annotate_action = new QAction( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL); ++ m_annotate_action = new Q3Action( tr( "Annotate" ), getmyicon( "annotate" ), QString::null, 0, this, NULL); + connect( m_annotate_action, SIGNAL( activated() ), this, SLOT( addanno() ) ); + m_annotate_action->addTo( marks ); + +- m_goto_action = new QAction( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false ); ++ m_goto_action = new Q3Action( tr( "Goto" ), getmyicon( "bookmark_goto" ), QString::null, 0, this, NULL, false ); + connect( m_goto_action, SIGNAL( activated() ), this, SLOT( do_gotomark() ) ); + m_goto_action->addTo( marks ); + +- m_delete_action = new QAction( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL); ++ m_delete_action = new Q3Action( tr( "Delete" ), getmyicon( "bookmark_delete" ), QString::null, 0, this, NULL); + connect( m_delete_action, SIGNAL( activated() ), this, SLOT( do_delmark() ) ); + m_delete_action->addTo( marks ); + +- m_autogen_action = new QAction( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false ); ++ m_autogen_action = new Q3Action( tr( "Autogen" ), geticon( "exec" ), QString::null, 0, this, NULL, false ); + connect( m_autogen_action, SIGNAL( activated() ), this, SLOT( do_autogen() ) ); + marks->insertSeparator(); + m_autogen_action->addTo( marks ); + +- m_clear_action = new QAction( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL); ++ m_clear_action = new Q3Action( tr( "Clear" ), getmyicon( "bookmark_clear" ), QString::null, 0, this, NULL); + connect( m_clear_action, SIGNAL( activated() ), this, SLOT( clearBkmkList() ) ); + m_clear_action->addTo( marks ); + +- m_save_action = new QAction( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL ); ++ m_save_action = new Q3Action( tr( "Save" ), getmyicon( "bookmark_save" ), QString::null, 0, this, NULL ); + connect( m_save_action, SIGNAL( activated() ), this, SLOT( savebkmks() ) ); + m_save_action->addTo( marks ); + +- m_tidy_action = new QAction( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL); ++ m_tidy_action = new Q3Action( tr( "Tidy" ), getmyicon( "bookmark_tidy" ), QString::null, 0, this, NULL); + connect( m_tidy_action, SIGNAL( activated() ), this, SLOT( listBkmkFiles() ) ); + marks->insertSeparator(); + m_tidy_action->addTo( marks ); + +- m_startBlock_action = new QAction( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL); ++ m_startBlock_action = new Q3Action( tr( "Start Block" ), geticon( "new" ), QString::null, 0, this, NULL); + connect( m_startBlock_action, SIGNAL( activated() ), this, SLOT( editMark() ) ); + marks->insertSeparator(); + m_startBlock_action->addTo( marks ); + +- m_endBlock_action = new QAction( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL); ++ m_endBlock_action = new Q3Action( tr( "Copy Block" ), geticon( "copy" ), QString::null, 0, this, NULL); + connect( m_endBlock_action, SIGNAL( activated() ), this, SLOT( editCopy() ) ); + m_endBlock_action->addTo( marks ); + +@@ -868,10 +858,10 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + } + + +- pbar = new QProgressBar(this); ++ pbar = new Q3ProgressBar(this); + pbar->hide(); + +- searchBar = new QFloatBar( "Search", this, QMainWindow::Top, TRUE ); ++ searchBar = new QFloatBar( "Search", this, Qt::Top, TRUE ); + + searchBar->setHorizontalStretchable( TRUE ); + +@@ -890,17 +880,17 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + connect( searchEdit, SIGNAL( returnPressed( ) ), + this, SLOT( search( ) ) ); + #endif +- QAction*a = new QAction( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 ); ++ Q3Action*a = new Q3Action( tr( "Find Next" ), geticon( "next" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( findNext() ) ); + a->addTo( searchBar ); + +- a = new QAction( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 ); ++ a = new Q3Action( tr( "Close Find" ), geticon( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( findClose() ) ); + a->addTo( searchBar ); + + searchBar->hide(); + +- regBar = new QFloatBar( "Autogen", this, QMainWindow::Top, TRUE ); ++ regBar = new QFloatBar( "Autogen", this, Qt::Top, TRUE ); + connect(regBar, SIGNAL( OnHide() ), this, SLOT( restoreFocus() )); + + regBar->setHorizontalStretchable( TRUE ); +@@ -913,17 +903,17 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + connect( regEdit, SIGNAL( returnPressed( ) ), + this, SLOT( do_regaction() ) ); + +- a = new QAction( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 ); ++ a = new Q3Action( tr( "Do Reg" ), geticon( "enter" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( do_regaction() ) ); + a->addTo( regBar ); + +- a = new QAction( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 ); ++ a = new Q3Action( tr( "Close Edit" ), geticon( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( regClose() ) ); + a->addTo( regBar ); + + regBar->hide(); + +- m_fontBar = new QToolBar( "Autogen", this, QMainWindow::Top, TRUE ); ++ m_fontBar = new Q3ToolBar( "Autogen", this, Qt::Top, TRUE ); + + m_fontBar->setHorizontalStretchable( TRUE ); + +@@ -940,9 +930,9 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + { + realfont = true; + } +- if ((*nm).contains(FIXEDFONT,false)) reader->m_fontControl.hasCourier(true, *nm); + } + if (!realfont) reader->m_fontname = flist[0]; ++ reader->m_fontControl.setCourier(reader->m_fontname,flist); + } // delete the FontDatabase!!! + connect( m_fontSelector, SIGNAL( activated(const QString& ) ), + this, SLOT( do_setfont(const QString&) ) ); +@@ -965,7 +955,7 @@ QTReaderApp::QTReaderApp( QWidget *parent, const char *name, WFlags f ) + + m_scrollbar->setVerticalStretchable( TRUE ); + */ +- scrollbar = m_scrollbar = new QScrollBar(QScrollBar::Vertical, widge); ++ scrollbar = m_scrollbar = new QScrollBar(Qt::Vertical, widge); + m_layout->addWidget(scrollbar); + scrollbar->setTracking(false); + // connect(scrollbar, SIGNAL(sliderMoved(int)), this, SLOT(actionscroll(int)) ); +@@ -1226,7 +1216,7 @@ void QTReaderApp::addtoolbars(Config* config) + { + if (m_bkmkAvail == NULL) + { +- m_bkmkAvail = new QAction( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 ); ++ m_bkmkAvail = new Q3Action( tr( "Annotation" ), geticon( "find" ), QString::null, 0, this, 0 ); + connect( m_bkmkAvail, SIGNAL( activated() ), this, SLOT( showAnnotation() ) ); + + m_bkmkAvail->setEnabled(false); +@@ -1253,7 +1243,7 @@ bool QTReaderApp::checkbar(Config* _config, const QString& key) + } + + +-QToolBar* QTReaderApp::filebar() ++Q3ToolBar* QTReaderApp::filebar() + { + if (fileBar == NULL) + { +@@ -1270,21 +1260,21 @@ QToolBar* QTReaderApp::filebar() + case cesMenuTool: + case cesMultiple: + // qDebug("Creating new file bar"); +- fileBar = new QToolBar("File", this, m_tbposition); ++ fileBar = new Q3ToolBar("File", this, m_tbposition); + break; + } + // fileBar->setHorizontalStretchable( true ); + } + return fileBar; + } +-QToolBar* QTReaderApp::viewbar() ++Q3ToolBar* QTReaderApp::viewbar() + { + if (viewBar == NULL) + { + switch (m_tbpol) + { + case cesMultiple: +- viewBar = new QToolBar("View", this, m_tbposition); ++ viewBar = new Q3ToolBar("View", this, m_tbposition); + break; + default: + qDebug("Incorrect toolbar policy set"); +@@ -1298,7 +1288,7 @@ QToolBar* QTReaderApp::viewbar() + } + return viewBar; + } +-QToolBar* QTReaderApp::navbar() ++Q3ToolBar* QTReaderApp::navbar() + { + if (navBar == NULL) + { +@@ -1306,7 +1296,7 @@ QToolBar* QTReaderApp::navbar() + { + case cesMultiple: + // qDebug("Creating new nav bar"); +- navBar = new QToolBar("Navigation", this, m_tbposition); ++ navBar = new Q3ToolBar("Navigation", this, m_tbposition); + break; + default: + qDebug("Incorrect toolbar policy set"); +@@ -1321,14 +1311,14 @@ QToolBar* QTReaderApp::navbar() + } + return navBar; + } +-QToolBar* QTReaderApp::markbar() ++Q3ToolBar* QTReaderApp::markbar() + { + if (markBar == NULL) + { + switch (m_tbpol) + { + case cesMultiple: +- markBar = new QToolBar("Marks", this, m_tbposition); ++ markBar = new Q3ToolBar("Marks", this, m_tbposition); + break; + default: + qDebug("Incorrect toolbar policy set"); +@@ -1343,26 +1333,26 @@ QToolBar* QTReaderApp::markbar() + return markBar; + } + +-void QTReaderApp::addfilebar(Config* _config, const QString& key, QAction* a) ++void QTReaderApp::addfilebar(Config* _config, const QString& key, Q3Action* a) + { + if (_config->readBoolEntry(key, false)) a->addTo( filebar() ); + } +-void QTReaderApp::addnavbar(Config* _config, const QString& key, QAction* a) ++void QTReaderApp::addnavbar(Config* _config, const QString& key, Q3Action* a) + { + if (_config->readBoolEntry(key, false)) a->addTo( navbar() ); + } +-void QTReaderApp::addmarkbar(Config* _config, const QString& key, QAction* a) ++void QTReaderApp::addmarkbar(Config* _config, const QString& key, Q3Action* a) + { + if (_config->readBoolEntry(key, false)) a->addTo( markbar() ); + } +-void QTReaderApp::addviewbar(Config* _config, const QString& key, QAction* a) ++void QTReaderApp::addviewbar(Config* _config, const QString& key, Q3Action* a) + { + if (_config->readBoolEntry(key, false)) a->addTo( viewbar() ); + } + + void QTReaderApp::suspend() { reader->suspend(); } + +-void QTReaderApp::msgHandler(const QCString& _msg, const QByteArray& _data) ++void QTReaderApp::msgHandler(const Q3CString& _msg, const QByteArray& _data) + { + #ifndef USEMSGS + return; +@@ -1787,7 +1777,7 @@ void QTReaderApp::setfullscreen(bool sfs) + reader->update(); + } + /* +-void QTReaderApp::buttonActionSelected(QAction* _a) ++void QTReaderApp::buttonActionSelected(Q3Action* _a) + { + //// qDebug("es:%x : %s (%u)", _a, (const char *)(_a->text()), ActNameToInt(_a->text())); + m_spaceTarget = ActNameToInt(_a->text()); +@@ -2007,14 +1997,14 @@ QString QTReaderApp::usefilebrowser() + void QTReaderApp::showgraphic(QImage& pm) + { + m_graphicwin->setImage(pm); +- editorStack->raiseWidget( m_graphicwin ); ++ editorStack->setCurrentWidget( m_graphicwin ); + hidetoolbars(); + m_graphicwin->setFocus(); + } + + void QTReaderApp::showbuttonprefs() + { +- editorStack->raiseWidget( m_buttonprefs ); ++ editorStack->setCurrentWidget( m_buttonprefs ); + hidetoolbars(); + m_buttonprefs->setFocus(); + m_kmapchanged = true; +@@ -2366,7 +2356,7 @@ void QTReaderApp::showinfo() + } + m_infoWin->setZoom(reader->m_fontControl.currentsize()*10); + m_infoWin->setAbout(QString("\nApplication (c) Tim Wentford\n")+reader->about()); +- editorStack->raiseWidget( m_infoWin ); ++ editorStack->setCurrentWidget( m_infoWin ); + hidetoolbars(); + m_infoWin->setFocus(); + } +@@ -2482,7 +2472,7 @@ void QTReaderApp::addanno() + m_annoWin->setAnno(""); + m_annoWin->setPosn(reader->pagelocate()); + m_annoIsEditing = true; +- editorStack->raiseWidget( m_annoWin ); ++ editorStack->setCurrentWidget( m_annoWin ); + hidetoolbars(); + #ifdef USEQPE + Global::showInputMethod(); +@@ -2658,7 +2648,7 @@ void QTReaderApp::findNext() + #ifdef __ISEARCH + QString arg = searchEdit->text(); + #else +- QRegExp arg = searchEdit->text(); ++ QRegExp arg(searchEdit->text()); + #endif + CDrawBuffer test(&(reader->m_fontControl)); + size_t start = reader->pagelocate(); +@@ -2722,7 +2712,7 @@ bool QTReaderApp::dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg) + while (strstr(test.data(),(const tchar*)arg) == NULL) + #else + #ifdef _UNICODE +- while ((offset = arg.match(toQString(test.data()))) == -1) ++ while ((offset = arg.exactMatch(toQString(test.data()))) == -1) + #else + while (arg.match(test.data()) == -1) + #endif +@@ -2962,7 +2952,7 @@ void QTReaderApp::handlekey(QKeyEvent* e) + #if defined(USEQPE) && defined(USENEWFULLSCREEN) + void QTReaderApp::focusInEvent(QFocusEvent *) + { +- if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader)) ++ if (m_usenewfullscreen && m_fullscreen && (editorStack->currentWidget() == reader)) + { + m_usenewfullscreen = false; + reader->bDoUpdates = false; +@@ -2975,7 +2965,7 @@ void QTReaderApp::focusInEvent(QFocusEvent *) + + void QTReaderApp::resizeEvent(QResizeEvent *) + { +- if (m_usenewfullscreen && m_fullscreen && (editorStack->visibleWidget() == reader)) ++ if (m_usenewfullscreen && m_fullscreen && (editorStack->currentWidget() == reader)) + { + m_usenewfullscreen = false; + reader->bDoUpdates = false; +@@ -3078,7 +3068,7 @@ void QTReaderApp::showEditTools() + // qDebug("uc"); + updateCaption(); + // qDebug("rw"); +- editorStack->raiseWidget( reader ); ++ editorStack->setCurrentWidget( reader ); + // qDebug("sf"); + reader->setFocus(); + // qDebug("ref"); +@@ -3156,7 +3146,7 @@ void QTReaderApp::closeEvent( QCloseEvent *e ) + showEditTools(); + e->ignore(); + } +- else if (editorStack->visibleWidget() == m_buttonprefs) ++ else if (editorStack->currentWidget() == m_buttonprefs) + { + int ret = QMessageBox::warning(this, PROGNAME, + tr("Do you wish to map this key?\n\nIf you proceed you will map\nthe escape key and you will\nneed to press the close box\ntwice to exit this program\n\nContinue?"), tr("Yes"), tr("No"), QString::null, 0, 1); +@@ -3172,7 +3162,7 @@ tr("Do you wish to map this key?\n\nIf you proceed you will map\nthe escape key + } + else + { +- if (editorStack->visibleWidget() == reader) ++ if (editorStack->currentWidget() == reader) + { + if ((kmap.find(orKey(Qt::NoButton,Key_Escape,false)) != kmap.end()) && m_bcloseDisabled) + { +@@ -3277,7 +3267,7 @@ bool QTReaderApp::listbkmk(CList<Bkmk>* plist, const QString& _lab, bool presel) + if (cnt > 0) + { + hidetoolbars(); +- editorStack->raiseWidget( bkmkselector ); ++ editorStack->setCurrentWidget( bkmkselector ); + if (slt != -1) bkmkselector->setCurrentItem(slt); + return true; + } +@@ -3799,7 +3789,7 @@ void QTReaderApp::do_autogen(const QString& regText) + } + i = reader->buffdoc.getpara(buff); + #ifdef _UNICODE +- if (re.match(toQString(buff.data())) != -1) ++ if (re.exactMatch(toQString(buff.data())) != -1) + #else + if (re.match(buff.data()) != -1) + #endif +@@ -4113,7 +4103,7 @@ void QTReaderApp::showAnnotation() + #ifdef USEQPE + Global::showInputMethod(); + #endif +- editorStack->raiseWidget( m_annoWin ); ++ editorStack->setCurrentWidget( m_annoWin ); + hidetoolbars(); + m_annoWin->setFocus(); + } +@@ -4152,7 +4142,7 @@ void QTReaderApp::OnWordSelected(const QString& wrd, size_t posn, size_t posn2, + #ifdef USEQPE + Global::showInputMethod(); + #endif +- editorStack->raiseWidget( m_annoWin ); ++ editorStack->setCurrentWidget( m_annoWin ); + hidetoolbars(); + } + #ifdef USEQPE +@@ -4738,17 +4728,9 @@ bool QTReaderApp::PopulateConfig(const char* tgtdir, bool usedirs) + d.setFilter( ((usedirs) ? QDir::Dirs : QDir::Files) | QDir::NoSymLinks ); + // d.setSorting( QDir::Size | QDir::Reversed ); + +- const QFileInfoList *list = d.entryInfoList(); +- QFileInfoListIterator it( *list ); // create list iterator +- QFileInfo *fi; // pointer for traversing +- +- while ( (fi=it.current()) ) { // for each file... +- +- bkmkselector->insertItem(fi->fileName(), cnt++); +- +- //qDebug( "%10li %s", fi->size(), fi->fileName().data() ); +- ++it; // goto next list element +- } ++ QFileInfoList list = d.entryInfoList(); ++ for(QFileInfoListIterator it=list.begin();it!=list.end();++it) ++ bkmkselector->insertItem(it->fileName(), cnt++); + + #else /* USEQPE */ + int cnt = 0; +@@ -4782,7 +4764,7 @@ void QTReaderApp::LoadTheme() + { + if (PopulateConfig("Themes", true)) + { +- editorStack->raiseWidget( bkmkselector ); ++ editorStack->setCurrentWidget( bkmkselector ); + hidetoolbars(); + m_nBkmkAction = cLdTheme; + } +@@ -4794,7 +4776,7 @@ void QTReaderApp::LoadConfig() + { + if (PopulateConfig("configs")) + { +- editorStack->raiseWidget( bkmkselector ); ++ editorStack->setCurrentWidget( bkmkselector ); + hidetoolbars(); + m_nBkmkAction = cLdConfig; + } +@@ -4806,7 +4788,7 @@ void QTReaderApp::TidyConfig() + { + if (PopulateConfig("configs")) + { +- editorStack->raiseWidget( bkmkselector ); ++ editorStack->setCurrentWidget( bkmkselector ); + hidetoolbars(); + m_nBkmkAction = cRmConfig; + } +@@ -4818,7 +4800,7 @@ void QTReaderApp::ExportLinks() + { + if (PopulateConfig("urls")) + { +- editorStack->raiseWidget( bkmkselector ); ++ editorStack->setCurrentWidget( bkmkselector ); + hidetoolbars(); + m_nBkmkAction = cExportLinks; + } +diff --git a/QTReaderApp.h b/QTReaderApp.h +index ab1b7ad..502079f 100644 +--- a/QTReaderApp.h ++++ b/QTReaderApp.h +@@ -35,7 +35,15 @@ + #include <qmap.h> + #include <qlineedit.h> + #include <qstack.h> +-#include <qlistbox.h> ++#include <Qt3Support/Q3ListBox> ++#include <Qt3Support/Q3CString> ++#include <Qt3Support/Q3ProgressBar> ++#include <Qt3Support/Q3MainWindow> ++#include <Qt3Support/Q3Action> ++#include <QStackedWidget> ++#include <qcombobox.h> ++#include <qnamespace.h> ++using namespace Qt; + #ifdef USEQPE + #include <qpe/qpeapplication.h> + #endif +@@ -126,7 +134,7 @@ struct searchrecord + class infowin; + class GraphicWin; + +-class QTReaderApp : public QMainWindow ++class QTReaderApp : public Q3MainWindow + { + Q_OBJECT + +@@ -180,7 +188,7 @@ class QTReaderApp : public QMainWindow + + protected: + void setfontHelper(const QString& lcn, int size = 0); +- QAction* m_bkmkAvail, *m_actFullscreen; ++ Q3Action* m_bkmkAvail, *m_actFullscreen; + CAnnoEdit* m_annoWin; + Bkmk* m_anno; + int m_scrollcolor, m_scrollbarcolor, m_background, m_foreground; +@@ -262,8 +270,8 @@ private slots: + void showAnnotation(); + void do_setencoding(int i); + void do_setfont(const QString&); +- // void buttonActionSelected(QAction*); +- void msgHandler(const QCString&, const QByteArray&); ++ // void buttonActionSelected(Q3Action*); ++ void msgHandler(const Q3CString&, const QByteArray&); + void monospace(bool); + void jump(); + void reparastring(); +@@ -346,35 +354,35 @@ private slots: + void setscrollcolour(); + void setscrollbarcolour(); + void writeUrl(const QString& file, const QString& href); +- QAction *m_preferences_action, *m_open_action, *m_close_action; +- QAction *m_info_action, *m_touch_action, *m_find_action, *m_start_action; +- QAction *m_end_action, *m_jump_action, *m_pageline_action; +- QAction *m_pageup_action, *m_pagedn_action, *m_back_action; +- QAction *m_home_action, *m_forward_action, *m_zoomin_action; +- QAction *m_zoomout_action, *m_setfont_action, *m_mark_action; +- QAction *m_annotate_action, *m_goto_action, *m_delete_action; +- QAction *m_autogen_action, *m_clear_action, *m_save_action; +- QAction *m_tidy_action, *m_startBlock_action, *m_endBlock_action; +- QAction *m_setenc_action, *m_setmono_action, *m_saveconfig_action; +- QAction *m_loadconfig_action, *m_loadtheme_action, *m_toolbarprefs_action, *m_tidyconfig_action; +- QAction *m_exportlinks_action, *m_rotate_action, *m_buttonprefs_action, *m_inverse_action; +- QAction *m_repara_action; ++ Q3Action *m_preferences_action, *m_open_action, *m_close_action; ++ Q3Action *m_info_action, *m_touch_action, *m_find_action, *m_start_action; ++ Q3Action *m_end_action, *m_jump_action, *m_pageline_action; ++ Q3Action *m_pageup_action, *m_pagedn_action, *m_back_action; ++ Q3Action *m_home_action, *m_forward_action, *m_zoomin_action; ++ Q3Action *m_zoomout_action, *m_setfont_action, *m_mark_action; ++ Q3Action *m_annotate_action, *m_goto_action, *m_delete_action; ++ Q3Action *m_autogen_action, *m_clear_action, *m_save_action; ++ Q3Action *m_tidy_action, *m_startBlock_action, *m_endBlock_action; ++ Q3Action *m_setenc_action, *m_setmono_action, *m_saveconfig_action; ++ Q3Action *m_loadconfig_action, *m_loadtheme_action, *m_toolbarprefs_action, *m_tidyconfig_action; ++ Q3Action *m_exportlinks_action, *m_rotate_action, *m_buttonprefs_action, *m_inverse_action; ++ Q3Action *m_repara_action; + #ifdef USEQPE +- QAction *m_grab_action; ++ Q3Action *m_grab_action; + #endif + void addtoolbars(Config* config); + ToolbarPolicy m_tbpol, m_tbpolsave; + ToolBarDock m_tbposition; + bool m_tbmove, m_tbmovesave; +- QToolBar* filebar(); +- QToolBar* viewbar(); +- QToolBar* navbar(); +- QToolBar* markbar(); ++ Q3ToolBar* filebar(); ++ Q3ToolBar* viewbar(); ++ Q3ToolBar* navbar(); ++ Q3ToolBar* markbar(); + void hidetoolbars(); +- void addfilebar(Config* _config, const QString& key, QAction* a); +- void addviewbar(Config* _config, const QString& key, QAction* a); +- void addnavbar(Config* _config, const QString& key, QAction* a); +- void addmarkbar(Config* _config, const QString& key, QAction* a); ++ void addfilebar(Config* _config, const QString& key, Q3Action* a); ++ void addviewbar(Config* _config, const QString& key, Q3Action* a); ++ void addnavbar(Config* _config, const QString& key, Q3Action* a); ++ void addmarkbar(Config* _config, const QString& key, Q3Action* a); + bool checkbar(Config* _config, const QString& key); + #ifdef _SCRIPT + void SaveScript(const char* sname); +@@ -401,9 +409,9 @@ private slots: + + private: + +- QAction* m_scrollButton; ++ Q3Action* m_scrollButton; + +- QAction* m_buttonAction[MAX_ACTIONS]; ++ Q3Action* m_buttonAction[MAX_ACTIONS]; + + CBkmkSelector* bkmkselector; + +@@ -418,27 +426,25 @@ private slots: + #else + bool dosearch(size_t start, CDrawBuffer& test, const QRegExp& arg); + #endif +- QWidgetStack *editorStack; ++ QStackedWidget *editorStack; + QTReader* reader; + QComboBox* m_fontSelector; + // QPEToolBar /* *menu,*/ *fileBar; + #if defined(USEQPE) +- QToolBar *menubar; ++ Q3ToolBar *menubar; + #endif +- QToolBar *fileBar, *navBar, *viewBar, *markBar; ++ Q3ToolBar *fileBar, *navBar, *viewBar, *markBar; + #if defined(USEQPE) + QPEMenuBar *mb; + #else + QMenuBar *mb; + #endif + QFloatBar *searchBar, *regBar/*, *m_fontBar*/; +- QToolBar /* *searchBar, *regBar,*/ *m_fontBar; ++ Q3ToolBar /* *searchBar, *regBar,*/ *m_fontBar; + QLineEdit *searchEdit, *regEdit; + bool searchVisible; + bool regVisible; + bool m_fontVisible, m_twoTouch; +- static unsigned long m_uid; +- long unsigned get_unique_id() { return m_uid++; } + /* + void resizeEvent( QResizeEvent * r) + { +@@ -451,7 +457,7 @@ private slots: + CList<Bkmk>* pOpenlist; + infowin* m_infoWin; + GraphicWin* m_graphicwin; +- QProgressBar* pbar; ++ Q3ProgressBar* pbar; + bool m_fBkmksChanged; + // int m_nRegAction; + regedit_type m_nRegAction; +diff --git a/QtrListView.cpp b/QtrListView.cpp +index 67040f8..e73a395 100644 +--- a/QtrListView.cpp ++++ b/QtrListView.cpp +@@ -1,4 +1,7 @@ + #include "QtrListView.h" ++#include <QtGui/QKeyEvent> ++#include <qnamespace.h> ++using namespace Qt; + + void QtrListView::keyPressEvent(QKeyEvent* e) + { +@@ -19,6 +22,6 @@ void QtrListView::keyPressEvent(QKeyEvent* e) + emit OnCancelButton(); + break; + default: +- QListView::keyPressEvent(e); ++ Q3ListView::keyPressEvent(e); + } + } +diff --git a/QtrListView.h b/QtrListView.h +index c1b7f4d..02a74cc 100644 +--- a/QtrListView.h ++++ b/QtrListView.h +@@ -2,18 +2,19 @@ + #define __QTRLISTVIEW_H + + #include <qlistview.h> ++#include <Qt3Support/Q3ListViewItem> + +-class QtrListView : public QListView ++class QtrListView : public Q3ListView + { + Q_OBJECT + + virtual void keyPressEvent(QKeyEvent* e); + public: +- QtrListView(QWidget* parent, char* name) : QListView(parent, name) {}; ++ QtrListView(QWidget* parent, char* name) : Q3ListView(parent, name) {}; + + signals: +- void OnOKButton(QListViewItem*); +- void OnCentreButton(QListViewItem*); ++ void OnOKButton(Q3ListViewItem*); ++ void OnCentreButton(Q3ListViewItem*); + void OnCancelButton(); + }; + +diff --git a/Reb.cpp b/Reb.cpp +index 65de9f6..9e6e552 100644 +--- a/Reb.cpp ++++ b/Reb.cpp +@@ -105,8 +105,7 @@ QImage* CReb::getPicture(const QString& ref) + char* imgbuffer = new char[rs.len]; + fseek(fin, page2pos(iter.data()), SEEK_SET); + fread(imgbuffer, rs.len, 1, fin); +- QByteArray arr; +- arr.assign((const char*)imgbuffer, rs.len); ++ QByteArray arr((const char*)imgbuffer, rs.len); + QImage* qimage = new QImage(arr); + return qimage; + } +@@ -581,7 +580,7 @@ void RBPage::startpage(UInt32 pos, UInt32 _cp, bool _isCompressed, UInt32 _len) + int CReb::getch() + { + if (tagoffset < tagstring.length()) +- return tagstring[tagoffset++].unicode(); ++ return tagstring.at(tagoffset++).unicode(); + else + return currentpage.getch(this); + } +diff --git a/TableDialog.cpp b/TableDialog.cpp +index b67d534..d0748d6 100644 +--- a/TableDialog.cpp ++++ b/TableDialog.cpp +@@ -4,7 +4,7 @@ CTableDialog::CTableDialog(const QFont& f, const QString& tabtext, bool fs, QWid + { + setCaption("Table View"); + QVBoxLayout *tmp = new QVBoxLayout(this); +- QTextView* qtv = new QTextView(this); ++ Q3TextView* qtv = new Q3TextView(this); + qtv->setFont(f); + tmp->addWidget(qtv); + qtv->setText(tabtext); +diff --git a/TableDialog.h b/TableDialog.h +index 2257a81..14b1cf2 100644 +--- a/TableDialog.h ++++ b/TableDialog.h +@@ -2,8 +2,11 @@ + #define __TABLEDIALOG_H + + #include <qdialog.h> +-#include <qtextview.h> ++#include <Qt3Support/Q3TextView> ++#include <QtGui/QKeyEvent> + #include <qlayout.h> ++#include <qnamespace.h> ++using namespace Qt; + + class CTableDialog : public QDialog + { +diff --git a/ToolbarPrefs.cpp b/ToolbarPrefs.cpp +index 56c4e9b..10fc6ec 100644 +--- a/ToolbarPrefs.cpp ++++ b/ToolbarPrefs.cpp +@@ -22,6 +22,7 @@ + #ifdef USEQPE + #include <qpe/menubutton.h> + #endif ++#include <Qt3Support/Q3GroupBox> + + CBarPrefs::CBarPrefs(const QString& appdir, bool fs, QWidget* parent, const char* name) : QDialog(parent, name, true), config( appdir ) + { +@@ -222,7 +223,7 @@ CFileBarPrefs::CFileBarPrefs( Config& _config, QWidget* parent, const char* nam + config.setGroup( "Toolbar" ); + QVBoxLayout* vb = new QVBoxLayout(this); + +- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "File", this); ++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "File", this); + vb->addWidget(bg); + + open = new QCheckBox( tr("Open"), bg ); +@@ -263,7 +264,7 @@ CNavBarPrefs::CNavBarPrefs( Config& _config, QWidget* parent, const char* name, + config.setGroup( "Toolbar" ); + QVBoxLayout* vb = new QVBoxLayout(this); + +- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "Navigation", this); ++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "Navigation", this); + vb->addWidget(bg); + scroll = new QCheckBox( tr("Scroll"), bg ); + scroll->setChecked(config.readBoolEntry( "Scroll", false )); +@@ -324,7 +325,7 @@ CViewBarPrefs::CViewBarPrefs( Config& _config, QWidget* parent, const char* nam + { + QVBoxLayout* vb = new QVBoxLayout(this); + +- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "View", this); ++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "View", this); + vb->addWidget(bg); + + config.setGroup( "Toolbar" ); +@@ -381,7 +382,7 @@ CMarkBarPrefs::CMarkBarPrefs( Config& _config, QWidget* parent, const char* nam + { + QVBoxLayout* vb = new QVBoxLayout(this); + +- QGroupBox* bg = new QGroupBox(2, Qt::Horizontal, "Marks", this); ++ Q3GroupBox* bg = new Q3GroupBox(2, Qt::Horizontal, "Marks", this); + vb->addWidget(bg); + mark = new QCheckBox( tr("Bookmark"), bg ); + mark->setChecked(config.readBoolEntry( "Mark", false )); +@@ -443,13 +444,13 @@ CMiscBarPrefs::CMiscBarPrefs( QWidget* parent, const char* name, WFlags fl ) + + hl->setMargin( 0 ); + +- QGroupBox* gb = new QGroupBox(1, Qt::Horizontal, "Dialogs", this); ++ Q3GroupBox* gb = new Q3GroupBox(1, Qt::Horizontal, "Dialogs", this); + floating = new QCheckBox(gb); + floating->setText(tr("Floating")); + hl->addWidget( gb, 0, 0 ); + + +- gb = new QGroupBox(1, Qt::Horizontal, "Bars (Restart)", this); ++ gb = new Q3GroupBox(1, Qt::Horizontal, "Bars (Restart)", this); + + // QLabel* ql = new QLabel("Restart to apply changes", gb); + // TextLabel = new QLabel( gb ); +@@ -485,7 +486,7 @@ CMiscBarPrefs::CMiscBarPrefs( QWidget* parent, const char* name, WFlags fl ) + + hl->addWidget(gb, 0, 1); + +- gb = new QGroupBox(1, Qt::Horizontal, "QT Scroll Bar", this); ++ gb = new Q3GroupBox(1, Qt::Horizontal, "QT Scroll Bar", this); + + #ifdef USECOMBO + qtscroll = new QComboBox(gb); +@@ -497,7 +498,7 @@ CMiscBarPrefs::CMiscBarPrefs( QWidget* parent, const char* name, WFlags fl ) + qtscroll->insertItem(tr("Left")); + + hl->addWidget(gb, 1, 0); +- gb = new QGroupBox(1, Qt::Horizontal, "Miniscroll", this); ++ gb = new Q3GroupBox(1, Qt::Horizontal, "Miniscroll", this); + + #ifdef USECOMBO + localscroll = new QComboBox(gb); +@@ -527,7 +528,7 @@ CIndBarPrefs::CIndBarPrefs( Config& _config, QWidget* parent, const char* name, + { + QVBoxLayout* vb = new QVBoxLayout(this); + +- QGroupBox* bg = new QGroupBox(1, Qt::Horizontal, "Indicators", this); ++ Q3GroupBox* bg = new Q3GroupBox(1, Qt::Horizontal, "Indicators", this); + vb->addWidget(bg); + indannotate = new QCheckBox( tr("Annotation"), bg ); + indannotate->setChecked(config.readBoolEntry( "Annotation indicator", false )); +diff --git a/ToolbarPrefs.h b/ToolbarPrefs.h +index 9df8940..2a9d5cd 100644 +--- a/ToolbarPrefs.h ++++ b/ToolbarPrefs.h +@@ -11,12 +11,14 @@ + + #include <qvariant.h> + #include <qwidget.h> +-#include <qtabdialog.h> ++#include <Qt3Support/Q3TabDialog> + #include <qtabwidget.h> + #include <qspinbox.h> + #include <qcheckbox.h> + #include <qcombobox.h> + #include <qlineedit.h> ++#include <qnamespace.h> ++using namespace Qt; + #ifdef USEQPE + #include <qpe/menubutton.h> + #include <qpe/config.h> +@@ -25,6 +27,8 @@ + #endif + #define USECOMBO + ++#include <QtGui/QKeyEvent> ++ + class QVBoxLayout; + class QHBoxLayout; + class QGridLayout; +diff --git a/URLDialog.cpp b/URLDialog.cpp +index dd4568b..9497979 100644 +--- a/URLDialog.cpp ++++ b/URLDialog.cpp +@@ -5,7 +5,7 @@ CURLDialog::CURLDialog(const QString& fname, bool fs, QWidget* parent, const cha + { + setCaption(tr("Save URL")); + QVBoxLayout *tmp = new QVBoxLayout(this); +- QVButtonGroup* vb = new QVButtonGroup(fname, this); ++ Q3VButtonGroup* vb = new Q3VButtonGroup(fname, this); + tmp->addWidget(vb); + m_clipboard = new QCheckBox(tr("Clipboard"), vb); + m_localfile = new QCheckBox(tr("Local file"), vb); +diff --git a/URLDialog.h b/URLDialog.h +index 792d13a..fffaf2b 100644 +--- a/URLDialog.h ++++ b/URLDialog.h +@@ -11,14 +11,17 @@ + + #include <qvariant.h> + #include <qwidget.h> +-#include <qtabdialog.h> ++#include <Qt3Support/Q3TabDialog> + #include <qtabwidget.h> + #include <qspinbox.h> + #include <qcheckbox.h> + #include <qcombobox.h> + #include <qlineedit.h> + //#include <qpe/menubutton.h> +-#include <qvbuttongroup.h> ++#include <Qt3Support/Q3VButtonGroup> ++#include <QtGui/QKeyEvent> ++#include <qnamespace.h> ++using namespace Qt; + + class QVBoxLayout; + class QHBoxLayout; +diff --git a/arrierego.cpp b/arrierego.cpp +index be2a3fa..b4f857f 100644 +--- a/arrierego.cpp ++++ b/arrierego.cpp +@@ -114,8 +114,7 @@ void CArriere::setlink(QString& fn, const QString& wrd) + + QImage* CArriere::imagefromdata(UInt8* imgbuffer, UInt32 imgsize) + { +- QByteArray arr; +- arr.assign((const char*)imgbuffer, imgsize); ++ QByteArray arr((const char*)imgbuffer, imgsize); + + QImage* qimage = new QImage(arr); + +diff --git a/cbkmkselector.h b/cbkmkselector.h +index ec0c6e8..e36d31a 100644 +--- a/cbkmkselector.h ++++ b/cbkmkselector.h +@@ -1,13 +1,15 @@ + #include <qwidget.h> +-#include <qlistbox.h> ++#include <Qt3Support/Q3ListBox> + #include <qpushbutton.h> + #include <qlayout.h> ++#include <qnamespace.h> ++using namespace Qt; + +-class CBkmkSelectorItem : public QListBoxText ++class CBkmkSelectorItem : public Q3ListBoxText + { + int m_ref; + public: +- CBkmkSelectorItem(const QString& _t, int ref) : QListBoxText(_t), m_ref(ref) ++ CBkmkSelectorItem(const QString& _t, int ref) : Q3ListBoxText(_t), m_ref(ref) + { + } + int reference() { return m_ref; } +@@ -18,7 +20,7 @@ class CBkmkSelector : public QWidget + + Q_OBJECT + +- QListBox* bkmkselector; ++ Q3ListBox* bkmkselector; + QPushButton* exitButton; + /* + void keyPressEvent ( QKeyEvent * e ) +@@ -38,7 +40,7 @@ signals: + void selected(int i); + void cancelled(); + private slots: +- void slotSelected(QListBoxItem* t) ++ void slotSelected(Q3ListBoxItem* t) + { + if (t != NULL) + { +@@ -64,13 +66,13 @@ public: + + QVBoxLayout* grid = new QVBoxLayout(this); + QHBoxLayout* hgrid = new QHBoxLayout(); +- bkmkselector = new QListBox(this, tr("Bookmarks")); ++ bkmkselector = new Q3ListBox(this, tr("Bookmarks")); + QPushButton* _sort = new QPushButton(tr("Sort"), this); + connect(_sort, SIGNAL(clicked()), this, SLOT( slotSort() ) ); + exitButton = new QPushButton(tr("Cancel"), this); + // connect(bkmkselector, SIGNAL( selected(int) ), this, SLOT( slotSelected(int) ) ); +- connect(bkmkselector, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( slotSelected(QListBoxItem*) ) ); +- connect(bkmkselector, SIGNAL( returnPressed(QListBoxItem*) ), this, SLOT( slotSelected(QListBoxItem*) ) ); ++ connect(bkmkselector, SIGNAL( clicked(Q3ListBoxItem*) ), this, SLOT( slotSelected(Q3ListBoxItem*) ) ); ++ connect(bkmkselector, SIGNAL( returnPressed(Q3ListBoxItem*) ), this, SLOT( slotSelected(Q3ListBoxItem*) ) ); + connect(exitButton, SIGNAL( clicked() ), this, SLOT( slotCancel() ) ); + grid->addWidget(bkmkselector,1); + grid->addLayout(hgrid); +diff --git a/decompress.cpp b/decompress.cpp +index 6034e01..979b642 100644 +--- a/decompress.cpp ++++ b/decompress.cpp +@@ -2,6 +2,7 @@ + #include "decompress.h" + #include <zlib.h> + #include <stdlib.h> ++#include "uqtcommon.h" + + size_t UnZip(UInt8* compressedbuffer, size_t reclen, UInt8* tgtbuffer, size_t bsize) + { +@@ -60,17 +61,7 @@ size_t (*getdecompressor(char* _s))(UInt8*, size_t, UInt8*, size_t) + + size_t (*getdecompressor(char* _s))(UInt8*, size_t, UInt8*, size_t) + { +-#ifdef USEQPE +-#ifdef OPIE +- QString codecpath(getenv("OPIEDIR")); +-#else +- QString codecpath(getenv("QTDIR")); +-#endif +- codecpath += "/plugins/reader/support/libpluckerdecompress.so"; +-#else +- QString codecpath(getenv("READERDIR")); +- codecpath += "/support/libpluckerdecompress.so"; +-#endif ++ QString codecpath = uqt_supportpath()+"/libpluckerdecompress.so"; + qDebug("Codec:%s", (const char*)codecpath); + if (QFile::exists(codecpath)) + { +diff --git a/ebookcodec.h b/ebookcodec.h +index 4229fb9..091894a 100644 +--- a/ebookcodec.h ++++ b/ebookcodec.h +@@ -1,4 +1,5 @@ + #include "CExpander.h" ++#include "uqtcommon.h" + + #include <qfileinfo.h> + #include <qdir.h> +@@ -22,17 +23,7 @@ class ebookcodec : public CExpander_Interface + } + ebookcodec(const QString& _s) : codec(NULL), handle(NULL), status(0) + { +-#ifdef USEQPE +-#ifdef OPIE +- QString codecpath(getenv("OPIEDIR")); +-#else +- QString codecpath(getenv("QTDIR")); +-#endif +- codecpath += "/plugins/reader/codecs/"; +-#else +- QString codecpath(getenv("READERDIR")); +- codecpath += "/codecs/"; +-#endif ++ QString codecpath = uqt_codecspath(); + codecpath += _s; + if (QFile::exists(codecpath)) + { +diff --git a/fileBrowser.cpp b/fileBrowser.cpp +index c8c371a..688f035 100644 +--- a/fileBrowser.cpp ++++ b/fileBrowser.cpp +@@ -53,18 +53,18 @@ fileBrowser::fileBrowser( bool allownew, QWidget* parent, const char* name, boo + ListView->addColumn( tr( "Name" ) ); + ListView->setSorting( 2, FALSE); + ListView->addColumn( tr( "Size" ) ); +- ListView->setSelectionMode(QListView::Single); ++ ListView->setSelectionMode(Q3ListView::Single); + ListView->setAllColumnsShowFocus( TRUE ); +- ListView->setColumnWidthMode(0, ((modal) ? QListView::Manual : QListView::Maximum)); +- ListView->setColumnWidthMode(1, QListView::Manual); ++ ListView->setColumnWidthMode(0, ((modal) ? Q3ListView::Manual : Q3ListView::Maximum)); ++ ListView->setColumnWidthMode(1, Q3ListView::Manual); + + // signals and slots connections + connect( buttonShowHidden, SIGNAL( toggled(bool) ), this, SLOT( setHidden(bool) ) ); + connect( buttonOk, SIGNAL( clicked() ), this, SLOT( OnRoot() ) ); +- connect( ListView, SIGNAL(doubleClicked( QListViewItem*)), SLOT(listDoubleClicked(QListViewItem *)) ); +- connect( ListView, SIGNAL(clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); +- connect( ListView, SIGNAL(OnOKButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); +- connect( ListView, SIGNAL(OnCentreButton( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); ++ connect( ListView, SIGNAL(doubleClicked( Q3ListViewItem*)), SLOT(listDoubleClicked(Q3ListViewItem *)) ); ++ connect( ListView, SIGNAL(clicked( Q3ListViewItem*)), SLOT(listClicked(Q3ListViewItem *)) ); ++ connect( ListView, SIGNAL(OnOKButton( Q3ListViewItem*)), SLOT(listClicked(Q3ListViewItem *)) ); ++ connect( ListView, SIGNAL(OnCentreButton( Q3ListViewItem*)), SLOT(listClicked(Q3ListViewItem *)) ); + connect( ListView, SIGNAL(OnCancelButton()), SLOT(OnCancel()) ); + + QVBoxLayout* grid = new QVBoxLayout(this); +@@ -143,16 +143,13 @@ void fileBrowser::populateList() + currentDir.setNameFilter(filterStr); + // currentDir.setNameFilter("*.txt;*.etx"); + QString fileL, fileS; +- const QFileInfoList *list = currentDir.entryInfoList(); +- QFileInfoListIterator it(*list); +- QFileInfo *fi; +- while ( (fi=it.current()) ) +- { +- if (fi->fileName() != ".") ++ QFileInfoList list = currentDir.entryInfoList(); ++ for(QFileInfoListIterator it=list.begin();it!=list.end();++it) { ++ if (it->fileName() != ".") + { +- fileS.sprintf( "%10li", fi->size() ); +- fileL.sprintf( "%s",fi->fileName().data() ); +- if( fi->isDir() ) ++ fileS.sprintf( "%10li", it->size() ); ++ fileL.sprintf( "%s",it->fileName().data() ); ++ if( it->isDir() ) + { + fileL+="/"; + } +@@ -160,9 +157,8 @@ void fileBrowser::populateList() + { + //// qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); + } +- new QListViewItem( ListView,fileL,fileS ); ++ new Q3ListViewItem( ListView,fileL,fileS ); + } +- ++it; + } + ListView->setSorting( 2, FALSE); + dirLabel->setText("Current Directory:\n"+currentDir.canonicalPath()); +@@ -174,7 +170,7 @@ void fileBrowser::upDir() + //// qDebug(currentDir.canonicalPath()); + } + +-void fileBrowser::listClicked(QListViewItem *selectedItem) ++void fileBrowser::listClicked(Q3ListViewItem *selectedItem) + { + if (selectedItem == NULL) return; + QString strItem=selectedItem->text(0); +@@ -196,12 +192,12 @@ void fileBrowser::listClicked(QListViewItem *selectedItem) + + if(QDir(strItem).exists()) + { +- currentDir.cd(strItem, TRUE); ++ currentDir.cd(strItem); + populateList(); + } + } else + { +- QListViewItem *selectedItem = ListView->selectedItem(); ++ Q3ListViewItem *selectedItem = ListView->selectedItem(); + if (selectedItem == NULL) + { + filename = ""; +@@ -218,7 +214,7 @@ void fileBrowser::listClicked(QListViewItem *selectedItem) + } + + // you may want to switch these 2 functions. I like single clicks +-void fileBrowser::listDoubleClicked(QListViewItem *selectedItem) ++void fileBrowser::listDoubleClicked(Q3ListViewItem *selectedItem) + { + } + +@@ -253,7 +249,7 @@ void fileBrowser::setHidden(bool _hidden) + + void fileBrowser::onReturn() + { +- QListViewItem *selectedItem = ListView->selectedItem(); ++ Q3ListViewItem *selectedItem = ListView->selectedItem(); + if (selectedItem == NULL) + { + filename = m_filename->text(); +@@ -282,7 +278,7 @@ void fileBrowser::onHome() + + void fileBrowser::setdir(const QString& s) + { +- currentDir.cd(s, TRUE); ++ currentDir.cd(s); + populateList(); + chdir(s); + } +diff --git a/fileBrowser.h b/fileBrowser.h +index c536e96..959e866 100644 +--- a/fileBrowser.h ++++ b/fileBrowser.h +@@ -22,6 +22,9 @@ blah,blah,blah + #include <qstringlist.h> + #include <qlabel.h> + #include <qstring.h> ++#include <qnamespace.h> ++using namespace Qt; ++#include <Qt3Support/Q3ListViewItem> + + class QVBoxLayout; + class QHBoxLayout; +@@ -50,7 +53,7 @@ class fileBrowser : public QDialog + QFile file; + QString getCurrentFile(); + QLineEdit* m_filename; +- int filterspec; ++ QDir::Filters filterspec; + // QDir::FilterSpec filterspec; + + //QListViewItem * item; +@@ -60,8 +63,8 @@ class fileBrowser : public QDialog + QString filename; + private slots: + void upDir(); +- void listDoubleClicked(QListViewItem *); +- void listClicked(QListViewItem *); ++ void listDoubleClicked(Q3ListViewItem *); ++ void listClicked(Q3ListViewItem *); + void OnRoot(); + void OnCancel(); + void setHidden(bool); +diff --git a/hrule.cpp b/hrule.cpp +index d697acb..4705057 100644 +--- a/hrule.cpp ++++ b/hrule.cpp +@@ -1,4 +1,5 @@ + #include <qimage.h> ++#include <qpixmap.h> + + QImage* hRule(int w, int h, unsigned char r, unsigned char g, unsigned char b) + { +diff --git a/infowin.cpp b/infowin.cpp +index 816a09f..0a25571 100644 +--- a/infowin.cpp ++++ b/infowin.cpp +@@ -1,7 +1,7 @@ + #include "infowin.h" + #include "version.h" + #include <stdio.h> +-#include <qmultilineedit.h> ++#include <Qt3Support/Q3MultiLineEdit> + #include <qlayout.h> + #include <qpushbutton.h> + #include "names.h" +@@ -20,9 +20,9 @@ infowin::infowin( QWidget *parent, const char *name, WFlags f) : + QWidget(parent, name, f) + { + QVBoxLayout* vl = new QVBoxLayout(this); +- aboutbox = new QMultiLineEdit(this); ++ aboutbox = new Q3MultiLineEdit(this); + aboutbox->setReadOnly(true); +- aboutbox->setWordWrap(QMultiLineEdit::WidgetWidth); ++ aboutbox->setWordWrap(Q3MultiLineEdit::WidgetWidth); + //grid->addWidget(l, 5, 0); + vl->addWidget(aboutbox); + QGridLayout* grid = new QGridLayout(vl, 10, 2); +diff --git a/infowin.h b/infowin.h +index c003998..92cff3a 100644 +--- a/infowin.h ++++ b/infowin.h +@@ -2,6 +2,9 @@ + #define __INFOWIN_H + + #include <qlabel.h> ++#include <Qt3Support/Q3MultiLineEdit> ++#include <qnamespace.h> ++using namespace Qt; + class QString; + class QMultiLineEdit; + +@@ -17,7 +20,7 @@ Q_OBJECT + QLabel* docSize; + QLabel* docLocation; + QLabel* zoom; +- QMultiLineEdit* aboutbox; ++ Q3MultiLineEdit* aboutbox; + public: + infowin( QWidget *parent=0, const char *name=0, WFlags f = 0); + void setFileSize(int sz) { fileSize->setNum(sz); } +diff --git a/opiedir/include.pro b/opiedir/include.pro +new file mode 100644 +index 0000000..44c572b +--- /dev/null ++++ b/opiedir/include.pro +@@ -0,0 +1,15 @@ ++DEFINES -= OPIE USEQPE ++DEFINES += QT3_SUPPORT ++ ++LIBS -= -lopiecore2 -lopieui2 -lqpe ++LIBS += -L${OPIEDIR}/lib ++ ++QT += core gui qt3support ++ ++isEmpty(UQT_LIBDIR) { ++ UQT_LIBDIR = /usr/lib/uqtreader ++} ++isEmpty(UQT_DATADIR) { ++ UQT_DATADIR = /usr/share/uqtreader ++} ++DEFINES += UQT_LIBDIR='\\"$$UQT_LIBDIR\\"' UQT_DATADIR='\\"$$UQT_DATADIR\\"' +diff --git a/outputcodec.h b/outputcodec.h +index 727575c..dfba5a2 100644 +--- a/outputcodec.h ++++ b/outputcodec.h +@@ -2,6 +2,8 @@ + #include <qfileinfo.h> + #include <qdir.h> + ++#include "uqtcommon.h" ++ + #ifdef USEQPE + #include <qpe/global.h> + #endif +@@ -29,17 +31,8 @@ class outputcodec : public COutput + } + outputcodec(const QString& _s) : codec(NULL), handle(NULL), status(-1) + { +-#ifdef USEQPE +-#ifdef OPIE +- QString codecpath(getenv("OPIEDIR")); +-#else +- QString codecpath(getenv("QTDIR")); +-#endif +- codecpath += "/plugins/reader/outcodecs/lib"; +-#else +- QString codecpath(getenv("READERDIR")); +- codecpath += "/outcodecs/lib"; +-#endif ++ QString codecpath = uqt_outcodecspath(); ++ codecpath += "lib"; + codecpath += _s; + codecpath += ".so"; + if (QFile::exists(codecpath)) +diff --git a/preferences.cpp b/preferences.cpp +index 67960ed..044a003 100755 +--- a/preferences.cpp ++++ b/preferences.cpp +@@ -14,7 +14,7 @@ Config::Config(const QString& _fn) : fname(_fn) + { + QTextStream t(&fl); + QString key, value; +- while (!t.eof()) ++ while (!t.atEnd()) + { + QString data = t.readLine(); + int colon = data.find(':'); +diff --git a/reader/reader.pro b/reader/reader.pro +index dc6a5dd..7552bd1 100644 +--- a/reader/reader.pro ++++ b/reader/reader.pro +@@ -51,7 +51,8 @@ HEADERS = Aportis.h \ + util.h \ + utypes.h \ + version.h \ +- ztxt.h ++ ztxt.h \ ++ preferences.h + + SOURCES = BuffDoc.cpp \ + ButtonPrefs.cpp \ +@@ -76,7 +77,8 @@ SOURCES = BuffDoc.cpp \ + main.cpp \ + orkey.cpp \ + util.cpp \ +- version.cpp ++ version.cpp \ ++ preferences.cpp + + INTERFACES = + DESTDIR = $(OPIEDIR)/bin +diff --git a/striphtml.cpp b/striphtml.cpp +index a2ad56b..1346dc3 100644 +--- a/striphtml.cpp ++++ b/striphtml.cpp +@@ -8,6 +8,7 @@ + #include "CDrawBuffer.h" + #include "striphtml.h" + #include "hrule.h" ++#include "uqtcommon.h" + + #include <qregexp.h> + #include <qimage.h> +@@ -209,14 +210,14 @@ QString striphtml::dehtml(const QString& _info) + QString info; + for (int i = 0; i < _info.length(); i++) + { +- tchar ch = _info[i]; ++ tchar ch = _info[i].unicode(); + if (ch == '%') + { + ch = 0; + for (int j = 0; j < 2; j++) + { + ch <<= 4; +- tchar ch1 = _info[++i]; ++ tchar ch1 = _info[++i].unicode(); + if ('0' <= ch1 && ch1 <= '9') + { + ch += ch1 - '0'; +@@ -285,7 +286,7 @@ bool striphtml::findanchor(const QString& _info) + while (1) + { + // qApp->processEvents(); +- if ((offset = name.match(toQString(test.data()))) != -1) break; ++ if ((offset = name.exactMatch(toQString(test.data()))) != -1) break; + #ifdef USEQPE + if ((offset = id.match(toQString(test.data()))) != -1) break; + #endif +@@ -325,17 +326,7 @@ striphtml::~striphtml() + void striphtml::initentmap() + { + entmap = new QMap<QString, tchar>; +-#ifdef USEQPE +-#ifdef OPIE +- QString fname(getenv("OPIEDIR")); +-#else +- QString fname(getenv("QTDIR")); +-#endif +- fname += "/plugins/reader/data"; +-#else +- QString fname(getenv("READERDIR")); +- fname += "/data"; +-#endif ++ QString fname = uqt_datapath(); + QFileInfo fi; + fi.setFile(fname, "HTMLentities"); + if (fi.exists()) +@@ -347,7 +338,7 @@ void striphtml::initentmap() + { + QTextStream t(&fl); + QString key, value; +- while (!t.eof()) ++ while (!t.atEnd()) + { + QString data = t.readLine(); + int colon = data.find(':'); +diff --git a/uqtcommon.h b/uqtcommon.h +new file mode 100644 +index 0000000..e551740 +--- /dev/null ++++ b/uqtcommon.h +@@ -0,0 +1,57 @@ ++#ifndef __UQTCOMMON_H ++#define __UQTCOMMON_H ++ ++#include <qstring.h> ++ ++#ifdef USEQPE ++# ifdef OPIE ++# define Q_DIR_ENV "OPIEDIR" ++# else ++# define Q_DIR_ENV "QTDIR" ++# endif ++#endif ++ ++inline QString uqt_libdir() { ++# ifdef USEQPE ++ return QString(getenv(Q_DIR_ENV))+"/plugins/reader"; ++# else ++ const char *rd = getenv("READERDIR"); ++ if(rd) return rd; ++ return UQT_LIBDIR; ++# endif ++} ++inline QString uqt_datadir() { ++# ifdef USEQPE ++ return QString(geenv(Q_DIR_ENV)); ++# else ++ const char *rd = getenv("READERDIR"); ++ if(rd) return rd; ++ return UQT_DATADIR; ++# endif ++} ++ ++inline QString uqt_codecspath() { ++ return uqt_libdir()+"/codecs/"; ++} ++inline QString uqt_outcodecspath() { ++ return uqt_libdir()+"/outcodecs/"; ++} ++inline QString uqt_filterspath() { ++ return uqt_libdir()+"/filters/"; ++} ++inline QString uqt_supportpath() { ++ return uqt_libdir()+"/support/"; ++} ++ ++inline QString uqt_picspath() { ++ return uqt_datadir()+"/pics/"; ++} ++inline QString uqt_datapath() { ++# ifdef QPE ++ return uqt_datadir()+"/plugins/reader/data"; ++# else ++ return uqt_datadir()+"/data"; ++# endif ++} ++ ++#endif /* __UQTCOMMON_H */ +diff --git a/version.cpp b/version.cpp +index aafb3d8..743ef38 100644 +--- a/version.cpp ++++ b/version.cpp +@@ -2,9 +2,9 @@ + #include "names.h" + #include <qmessagebox.h> + +-#include <qmultilineedit.h> ++#include <Qt3Support/Q3MultiLineEdit> + #include <qlayout.h> +-#include <qtextview.h> ++#include <Qt3Support/Q3TextView> + class versionbox : public QDialog + { + public: +@@ -19,7 +19,7 @@ public: + box->setWordWrap(QMultiLineEdit::WidgetWidth); + box->setText(txt); + */ +- QTextView* box = new QTextView(this); ++ Q3TextView* box = new Q3TextView(this); + v->addWidget(box); + box->setText(txt); + #ifdef USEQPE 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/opie-reader/uqtreader_cvs.bb b/packages/opie-reader/uqtreader_cvs.bb new file mode 100644 index 0000000000..04b03243c4 --- /dev/null +++ b/packages/opie-reader/uqtreader_cvs.bb @@ -0,0 +1,72 @@ +DESCRIPTION = "qt4-x11 opie-reader ebook reader port" +SECTION = "x11/applications" +PRIORITY = "optional" +LICENSE = "GPL" + +RRECOMMENDS="${PN}-filter-html" + +SRCDATE = "20070601" +PV = "1.2.2opie+cvs${SRCDATE}" +PR = "r3" + +SRC_URI = "${HANDHELDS_CVS};module=opie/noncore/apps/opie-reader \ + ${HANDHELDS_CVS};module=opie/pics \ + ${HANDHELDS_CVS};module=opie/apps \ + file://qt4.patch;patch=1" +S = "${WORKDIR}/opie-reader" + +export OPIEDIR="${S}/opiedir" + +inherit qmake-base qt4x11 + +do_configure() { + ${OE_QMAKE_QMAKE} -recursive opie-reader.pro UQT_DATADIR="${datadir}/${PN}" UQT_LIBDIR="${libdir}/${PN}" +} +do_compile() { + oe_runmake +} +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/opiedir/bin/opie-reader ${D}${bindir}/uqtreader + install -d ${D}${libdir}/${PN} + cp -Rpd ${S}/opiedir/lib/lib*.so.* ${D}${libdir} + for so in ${S}/opiedir/plugins/reader/{codecs,filters,outcodecs,support}/lib*.so ; do + soso="${so#${S}/opiedir/plugins/reader/}" + dd="${D}${libdir}/${PN}/$(dirname "$soso")" + install -d "$dd" + install -m 0755 "$so" "${dd}/$(basename "$soso")" + done + install -d ${D}${datadir}/${PN} + cp -Rpd ${S}/opiedir/plugins/reader/data ${D}${datadir}/${PN} + install -d ${D}${datadir}/${PN}/pics + cp \ + ${WORKDIR}/pics/opie-reader/*.png \ + ${WORKDIR}/pics/inline/{AppsIcon,SettingsIcon,fileopen,close,cut,UtilsIcon,1to1,find,start,finish,rotate,up,down,back,home,forward,paste,fullscreen,repeat,zoom,mag,exec,new,copy,next,enter}.png \ + ${D}${datadir}/${PN}/pics/ + install -d ${D}${datadir}/applications + sed <${WORKDIR}/apps/Applications/opie-reader.desktop \ + -e '/^CanFastLoad/d' -e 's,^Icon=.*,Icon=${datadir}/${PN}/pics/OpieReader.png,g' \ + -e 's,^Exec=.*,Exec=${bindir}/uqtreader,g' \ + -e '$aType=Application' -e 'aCategories=Applications' \ + -e '/^Name/s/Opie/UQT/g' \ + >${D}${datadir}/applications/uqtreader.desktop +} +PACKAGES += "${PN}-pdblib ${PN}-codeclib \ + ${PN}-codec-aportis ${PN}-codec-arrierego ${PN}-codec-chm ${PN}-codec-plucker ${PN}-codec-reb ${PN}-codec-weasel ${PN}-codec-isilo ${PN}-codec-ppms \ + ${PN}-filter-html ${PN}-output-flitecmd" + + +FILES_${PN}-pdblib = "${libdir}/libreader_pdb.so.*" +FILES_${PN}-codeclib = "${libdir}/libreader_codec.so.*" +FILES_${PN}-codec-aportis = "${libdir}/uqtreader/codecs/libAportis.so" +FILES_${PN}-codec-arrierego = "${libdir}/uqtreader/codecs/libArriereGo.so" +FILES_${PN}-codec-chm = "${libdir}/uqtreader/codecs/libCHM.so" +DEBIAN_NOAUTONAME_${PN}-codec-plucker = 1 +FILES_${PN}-codec-plucker = "${libdir}/uqtreader/codecs/libPlucker.so ${libdir}/lib*plucker*.so.* ${libdir}/uqtreader/support/libpluckerdecompress.so" +FILES_${PN}-codec-reb = "${libdir}/uqtreader/codecs/libReb.so" +FILES_${PN}-codec-weasel = "${libdir}/uqtreader/codecs/libWeasel.so" +FILES_${PN}-codec-isilo = "${libdir}/uqtreader/codecs/libiSilo.so" +FILES_${PN}-codec-ppms = "${libdir}/uqtreader/codecs/libppms.so" +FILES_${PN}-filter-html = "${libdir}/uqtreader/filters/libHTMLfilter.so" +FILES_${PN}-output-flitecmd = "${libdir}/uqtreader/outcodecs/libflitecmd.so" +FILES_${PN} = "${bindir}/uqtreader ${datadir}/uqtreader/data/* ${datadir}/uqtreader/pics/* ${datadir}/applications/*.desktop" diff --git a/packages/opie-tinykate/opie-tinykate.inc b/packages/opie-tinykate/opie-tinykate.inc index aeb2fddad8..7d700cb0dd 100644 --- a/packages/opie-tinykate/opie-tinykate.inc +++ b/packages/opie-tinykate/opie-tinykate.inc @@ -4,7 +4,7 @@ PRIORITY = "optional" LICENSE = "GPL" DEPENDS = "libqtaux2" APPNAME = "tinykate" - +PR = "r1" S = "${WORKDIR}/tinykate" @@ -23,7 +23,7 @@ do_install() { install -m 0644 ${WORKDIR}/share/${APPNAME}/syntax/*.* ${D}${palmtopdir}/share/${APPNAME}/syntax/ } -PACKAGES = " \ +PACKAGES += " \ opie-tinykate-syntax-commondev \ opie-tinykate-syntax-documentation \ opie-tinykate-syntax-misc \ diff --git a/packages/opie-tinykate/opie-tinykate_1.2.2.bb b/packages/opie-tinykate/opie-tinykate_1.2.2.bb index e964a4886e..528848b356 100644 --- a/packages/opie-tinykate/opie-tinykate_1.2.2.bb +++ b/packages/opie-tinykate/opie-tinykate_1.2.2.bb @@ -1,7 +1,5 @@ require ${PN}.inc - - SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/noncore/apps/tinykate \ ${HANDHELDS_CVS};tag=${TAG};module=opie/pics \ ${HANDHELDS_CVS};tag=${TAG};module=opie/share \ diff --git a/packages/ossie/ossie-c-wavloader_svn.bb b/packages/ossie/ossie-c-wavloader_svn.bb deleted file mode 100644 index 8f79f4667e..0000000000 --- a/packages/ossie/ossie-c-wavloader_svn.bb +++ /dev/null @@ -1,16 +0,0 @@ -DESCRIPTION = "OSSIE Waveform Loader" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" -PR = "r0" - -DEPENDS = "ossiecf expat" - -S="${WORKDIR}/c_wavLoader" - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/c_wavLoader/trunk;module=c_wavLoader;proto=https" - -inherit autotools - -BROKEN = "1" diff --git a/packages/ossie/ossie-channeldemo_svn.bb b/packages/ossie/ossie-channeldemo_svn.bb deleted file mode 100644 index c7b6ffebff..0000000000 --- a/packages/ossie/ossie-channeldemo_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE Demo channel component" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf" - -S = "${WORKDIR}/ChannelDemo" - - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/ChannelDemo/trunk;module=ChannelDemo;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/ChannelDemo/*.xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-demo_svn.bb b/packages/ossie/ossie-demo_svn.bb deleted file mode 100644 index cef94f40a2..0000000000 --- a/packages/ossie/ossie-demo_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE Demo waveform" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf ossie-channeldemo ossie-rxdemo" -RDEPENDS = "ossie-channeldemo ossie-rxdemo" - -S = "${WORKDIR}/ossie_demo" - - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/waveforms/ossie_demo/trunk;module=ossie_demo;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/waveforms/ossie_demo/*.xml /home/sca/xml/TxDemo/*.xml" -BROKEN = "1" diff --git a/packages/ossie/ossie-gpp-device_svn.bb b/packages/ossie/ossie-gpp-device_svn.bb deleted file mode 100644 index 24099746b0..0000000000 --- a/packages/ossie/ossie-gpp-device_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE General Purpose Processor device" -SECTION = "apps" -PRIORITY = "optional" -MAINTAINER = "Philip Balister philip@balister.org" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf" - -S = "${WORKDIR}/GPP" - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/GPP/trunk;module=GPP;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/GPP/*xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-interpolator_svn.bb b/packages/ossie/ossie-interpolator_svn.bb deleted file mode 100644 index 24d641d0a2..0000000000 --- a/packages/ossie/ossie-interpolator_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE Interpolator component" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf ossie-standardinterfaces ossie-sigproc" - -S = "${WORKDIR}/Interpolator" - - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/Interpolator/trunk;module=Interpolator;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/Interpolator/*.xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-modulator_svn.bb b/packages/ossie/ossie-modulator_svn.bb deleted file mode 100644 index bead988782..0000000000 --- a/packages/ossie/ossie-modulator_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE Modulator component" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf ossie-standardinterfaces ossie-sigproc" - -S = "${WORKDIR}/Modulator" - - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/Modulator/trunk;module=Modulator;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/Modulator/*.xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-nodebooter_svn.bb b/packages/ossie/ossie-nodebooter_svn.bb deleted file mode 100644 index f37df3da74..0000000000 --- a/packages/ossie/ossie-nodebooter_svn.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "OSSIE Node Booter" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf" - -S = "${WORKDIR}/nodebooter" - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/nodebooter/trunk;module=nodebooter;proto=https" - -inherit autotools - -BROKEN = "1" diff --git a/packages/ossie/ossie-randombits_svn.bb b/packages/ossie/ossie-randombits_svn.bb deleted file mode 100644 index 6f9185910a..0000000000 --- a/packages/ossie/ossie-randombits_svn.bb +++ /dev/null @@ -1,19 +0,0 @@ -DESCRIPTION = "OSSIE Random bit generator component" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf ossie-standardinterfaces ossie-sigproc" - -S = "${WORKDIR}/RandomBits" - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/RandomBits/trunk;module=RandomBits;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/RandomBits/*.xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-rxdemo_svn.bb b/packages/ossie/ossie-rxdemo_svn.bb deleted file mode 100644 index 2260cb9956..0000000000 --- a/packages/ossie/ossie-rxdemo_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE Demo receiver component" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf" - -S = "${WORKDIR}/RxDemo" - - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/RxDemo/trunk;module=RxDemo;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/RxDemo/*.xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-sigproc_svn.bb b/packages/ossie/ossie-sigproc_svn.bb deleted file mode 100644 index 20fe0b6460..0000000000 --- a/packages/ossie/ossie-sigproc_svn.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "OSSIE Signal Processing routines" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "LGPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf" - -S = "${WORKDIR}/SigProc" - -SRCDATE = "now" -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/SigProc/trunk;module=SigProc;proto=https" - -inherit autotools pkgconfig - -EXTRA_OECONF_append_arm = " --enable-fpm=arm" - -CXXFLAGS_powerpc = "-lstdc++" - -do_stage () { - autotools_stage_all -} -BROKEN = "1" diff --git a/packages/ossie/ossie-soundout-device_svn.bb b/packages/ossie/ossie-soundout-device_svn.bb deleted file mode 100644 index 83daa5b013..0000000000 --- a/packages/ossie/ossie-soundout-device_svn.bb +++ /dev/null @@ -1,22 +0,0 @@ -DESCRIPTION = "OSSIE sound playback device" -SECTION = "apps" -PRIORITY = "optional" -MAINTAINER = "Philip Balister philip@balister.org" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "alsa-lib ossiecf ossie-standardinterfaces" - -S = "${WORKDIR}/Sound_out" - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/Sound_out/trunk;module=Sound_out;proto=https" - -prefix="/home/sca" - -inherit autotools - -EXTRA_OECONF = "--with-omniorb=${STAGING_BINDIR}/.. IDL=${STAGING_BINDIR_NATIVE}/omniidl" - -FILES_${PN} += "/home/sca/xml/soundCard/*xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-standardinterfaces_svn.bb b/packages/ossie/ossie-standardinterfaces_svn.bb deleted file mode 100644 index 44e2f3899e..0000000000 --- a/packages/ossie/ossie-standardinterfaces_svn.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "OSSIE Standard port interfaces" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "LGPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf" - -S = "${WORKDIR}/standardInterfaces" - -SRCDATE = "now" -SRC_URI = "svn://ossie-dev.mprg.org/repos/ossie/standardInterfaces/trunk;module=standardInterfaces;proto=https" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--with-omniorb=${STAGING_BINDIR}/.. IDL=${STAGING_BINDIR_NATIVE}/omniidl" - -CXXFLAGS_powerpc += "-lstdc++" - -do_stage () { - autotools_stage_all -} -BROKEN = "1" diff --git a/packages/ossie/ossie-tx-random-data_svn.bb b/packages/ossie/ossie-tx-random-data_svn.bb deleted file mode 100644 index 744e505679..0000000000 --- a/packages/ossie/ossie-tx-random-data_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE transmit random bits waveform" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf ossie-randombits ossie-modulator ossie-interpolator ossie-usrp-tx-control ossie-usrp-device ossie-gpp-device" -RDEPENDS = "ossie-randombits ossie-modulator ossie-interpolator ossie-usrp-tx-control ossie-usrp-device ossie-gpp-device" - -S = "${WORKDIR}/TX_Random_data" - - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/waveforms/TX_Random_data/trunk;module=TX_Random_data;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/waveforms/Random_BPSK/*.xml" -BROKEN = "1" diff --git a/packages/ossie/ossie-usrp-device_svn.bb b/packages/ossie/ossie-usrp-device_svn.bb deleted file mode 100644 index e28996ce15..0000000000 --- a/packages/ossie/ossie-usrp-device_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE General Purpose Processor device" -SECTION = "apps" -PRIORITY = "optional" -MAINTAINER = "Philip Balister philip@balister.org" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf usrp ossie-standardinterfaces" - -S = "${WORKDIR}/USRP" - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/USRP/trunk;module=USRP;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/USRP/*xml" - -BROKEN = "1" diff --git a/packages/ossie/ossie-usrp-tx-control_svn.bb b/packages/ossie/ossie-usrp-tx-control_svn.bb deleted file mode 100644 index 756fce9d61..0000000000 --- a/packages/ossie/ossie-usrp-tx-control_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "OSSIE USRP TX side control component" -SECTION = "apps" -PRIORITY = "optional" -LICENSE = "GPL" -PV = "0.0.0+svn${SRCDATE}" - -DEPENDS = "ossiecf ossie-standardinterfaces" - -S = "${WORKDIR}/USRP_TX_Control" - - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/USRP_TX_Control/trunk;module=USRP_TX_Control;proto=https" - -prefix="/home/sca" - -inherit autotools - -FILES_${PN} += "/home/sca/xml/USRP_TX_Control/*.xml" - -BROKEN = "1" diff --git a/packages/ossie/ossiecf_svn.bb b/packages/ossie/ossiecf_svn.bb deleted file mode 100644 index 35bf7523f0..0000000000 --- a/packages/ossie/ossiecf_svn.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "OSSIE Core Framework" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "LGPL" -DEPENDS = "xerces-c omniorb libtool-cross" -PV = "0.0.0+svn${SRCDATE}" - -S = "${WORKDIR}/ossie" - -SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/ossie/trunk;module=ossie;proto=https" - -inherit autotools pkgconfig - -EXTRA_OECONF = "--with-omniorb=${STAGING_BINDIR}/.. IDL=${STAGING_BINDIR_NATIVE}/omniidl" - -CXXFLAGS_powerpc += "-lstdc++" - -do_stage () { - autotools_stage_all -} - -FILES_${PN} += "/home/sca/xml/dtd/*.dtd" - -BROKEN = "1" diff --git a/packages/patcher/patcher-native_20040913.bb b/packages/patcher/patcher-native_20040913.bb index 7da61e91c2..c071d52404 100644 --- a/packages/patcher/patcher-native_20040913.bb +++ b/packages/patcher/patcher-native_20040913.bb @@ -4,7 +4,6 @@ LICENSE = "Perl" DEPENDS = "" SECTION = "base" PRIORITY = "optional" -MAINTAINER = "Holger Schurig <hs4233@mail.mn-solutions.de>" PACKAGES = "" PR = "r1" diff --git a/packages/patcher/patcher_20040913.bb b/packages/patcher/patcher_20040913.bb index af4d91217c..471f75af7b 100644 --- a/packages/patcher/patcher_20040913.bb +++ b/packages/patcher/patcher_20040913.bb @@ -4,7 +4,6 @@ LICENSE = "Perl" DEPENDS = "" SECTION = "base" PRIORITY = "optional" -MAINTAINER = "Holger Schurig <hs4233@mail.mn-solutions.de>" INHIBIT_DEFAULT_DEPS = "1" SRC_URI = "http://www.holgerschurig.de/files/linux/patcher-${PV}.tar.bz2" diff --git a/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb b/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb index 3f4472b501..018f33550f 100644 --- a/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb +++ b/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb @@ -3,7 +3,8 @@ SECTION = "base" PRIORITY = "required" LICENSE = "GPL" DEPENDS = "virtual/kernel" -PR = "r27" +RDEPENDS = "hostap-conf orinoco-conf" +PR = "r28" SRC_URI = "${SOURCEFORGE_MIRROR}/pcmcia-cs/pcmcia-cs-${PV}.tar.gz \ file://busybox.patch;patch=1 \ diff --git a/packages/pcmciautils/pcmciautils-014/makefile_fix.patch b/packages/pcmciautils/pcmciautils-014/makefile_fix.patch index fed5d37bf8..f5bb64b9bd 100644 --- a/packages/pcmciautils/pcmciautils-014/makefile_fix.patch +++ b/packages/pcmciautils/pcmciautils-014/makefile_fix.patch @@ -13,3 +13,76 @@ Index: pcmciautils-014/Makefile INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} -m 644 INSTALL_SCRIPT = ${INSTALL_PROGRAM} +--- pcmciautils-014/Makefile~ 2007-05-25 19:40:39.000000000 +0200 ++++ pcmciautils-014/Makefile 2007-05-25 19:40:39.000000000 +0200 +@@ -258,28 +258,29 @@ + + install-hotplug: + $(INSTALL) -d $(DESTDIR)$(hotplugdir) +- $(INSTALL_PROGRAM) -D hotplug/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.agent +- $(INSTALL_PROGRAM) -D hotplug/pcmcia.rc $(DESTDIR)$(hotplugdir)/pcmcia.rc ++ $(INSTALL_PROGRAM) hotplug/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.agent ++ $(INSTALL_PROGRAM) hotplug/pcmcia.rc $(DESTDIR)$(hotplugdir)/pcmcia.rc + + uninstall-hotplug: + - rm -f $(DESTDIR)$(hotplugdir)/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.rc + + install-socket-hotplug: +- $(INSTALL_PROGRAM) -D hotplug/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent +- $(INSTALL_PROGRAM) -D hotplug/pcmcia_socket.rc $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc ++ $(INSTALL_PROGRAM) hotplug/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent ++ $(INSTALL_PROGRAM) hotplug/pcmcia_socket.rc $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc + + uninstall-socket-hotplug: + - rm -f $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc + install-socket-tools: +- $(INSTALL_PROGRAM) -D $(PCMCIA_SOCKET_STARTUP) $(DESTDIR)$(sbindir)/$(PCMCIA_SOCKET_STARTUP) ++ $(INSTALL) -d $(DESTDIR)$(sbindir) ++ $(INSTALL_PROGRAM) $(PCMCIA_SOCKET_STARTUP) $(DESTDIR)$(sbindir)/$(PCMCIA_SOCKET_STARTUP) + + uninstall-socket-tools: + - rm -f $(DESTDIR)$(sbindir)/$(PCMCIA_SOCKET_STARTUP) + + install-tools: + $(INSTALL) -d $(DESTDIR)$(sbindir) +- $(INSTALL_PROGRAM) -D $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(PCCARDCTL) +- $(INSTALL_PROGRAM) -D $(PCMCIA_CHECK_BROKEN_CIS) $(DESTDIR)$(sbindir)/$(PCMCIA_CHECK_BROKEN_CIS) ++ $(INSTALL_PROGRAM) $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(PCCARDCTL) ++ $(INSTALL_PROGRAM) $(PCMCIA_CHECK_BROKEN_CIS) $(DESTDIR)$(sbindir)/$(PCMCIA_CHECK_BROKEN_CIS) + $(SYMLINK) $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(LSPCMCIA) + + uninstall-tools: +@@ -289,18 +290,20 @@ + + install-config: + $(INSTALL) -d $(DESTDIR)$(pcmciaconfdir) +- $(INSTALL_DATA) -D config/config.opts $(DESTDIR)$(pcmciaconfdir)/config.opts ++ $(INSTALL_DATA) config/config.opts $(DESTDIR)$(pcmciaconfdir)/config.opts + + uninstall-config: + # - rm -f $(DESTDIR)$(pcmciaconfdir)/config.opts + + install-udev: +- $(INSTALL_DATA) -D $(UDEV_RULES_FILE) $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules ++ $(INSTALL) -d $(DESTDIR)$(udevrulesdir) ++ $(INSTALL_DATA) $(UDEV_RULES_FILE) $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules + + uninstall-udev: + - rm -f $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules + + install-man: ++ $(INSTALL) -d $(DESTDIR)$(mandir)/man8 + $(INSTALL_DATA) -D man/man8/pccardctl.8 $(DESTDIR)$(mandir)/man8/pccardctl.8 + $(SYMLINK) pccardctl.8 $(DESTDIR)$(mandir)/man8/lspcmcia.8 + +--- pcmciautils-014/Makefile~ 2007-05-25 19:43:01.000000000 +0200 ++++ pcmciautils-014/Makefile 2007-05-25 19:43:01.000000000 +0200 +@@ -304,7 +304,7 @@ + + install-man: + $(INSTALL) -d $(DESTDIR)$(mandir)/man8 +- $(INSTALL_DATA) -D man/man8/pccardctl.8 $(DESTDIR)$(mandir)/man8/pccardctl.8 ++ $(INSTALL_DATA) man/man8/pccardctl.8 $(DESTDIR)$(mandir)/man8/pccardctl.8 + $(SYMLINK) pccardctl.8 $(DESTDIR)$(mandir)/man8/lspcmcia.8 + + uninstall-man: 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 f30692f576..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 = "r7" +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 fa9f2bcbcc..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 = "r11" +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-native_0.205.bb b/packages/perl/libextutils-depends-perl-native_0.205.bb new file mode 100644 index 0000000000..e0216cbfb5 --- /dev/null +++ b/packages/perl/libextutils-depends-perl-native_0.205.bb @@ -0,0 +1,5 @@ +SECTION = "libs" + +inherit native + +require libextutils-depends-perl_${PV}.bb diff --git a/packages/perl/libextutils-depends-perl_0.205.bb b/packages/perl/libextutils-depends-perl_0.205.bb new file mode 100644 index 0000000000..af4f6ffd8f --- /dev/null +++ b/packages/perl/libextutils-depends-perl_0.205.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "ExtUtils::Depends - Easily build XS extensions that depend on XS extensions" +SECTION = "libs" +LICENSE = "Artistic|GPL" +PR = "r3" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RM/RMCFARLA/Gtk2-Perl/ExtUtils-Depends-${PV}.tar.gz" + +S = "${WORKDIR}/ExtUtils-Depends-${PV}" + +inherit cpan 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-native_1.07.bb b/packages/perl/libextutils-pkgconfig-perl-native_1.07.bb new file mode 100644 index 0000000000..b5cd092dbd --- /dev/null +++ b/packages/perl/libextutils-pkgconfig-perl-native_1.07.bb @@ -0,0 +1,5 @@ +SECTION = "libs" + +inherit native + +require libextutils-pkgconfig-perl_${PV}.bb diff --git a/packages/perl/libextutils-pkgconfig-perl_1.07.bb b/packages/perl/libextutils-pkgconfig-perl_1.07.bb new file mode 100644 index 0000000000..d023beac69 --- /dev/null +++ b/packages/perl/libextutils-pkgconfig-perl_1.07.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "ExtUtils::PkgConfig - simplistic interface to pkg-config" +SECTION = "libs" +LICENSE = "Artistic|GPL" +PR = "r4" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RM/RMCFARLA/Gtk2-Perl/ExtUtils-PkgConfig-${PV}.tar.gz" + +S = "${WORKDIR}/ExtUtils-PkgConfig-${PV}" + +inherit cpan diff --git a/packages/perl/libhtml-mason-perl_1.35.bb b/packages/perl/libhtml-mason-perl_1.35.bb new file mode 100644 index 0000000000..71e96005e8 --- /dev/null +++ b/packages/perl/libhtml-mason-perl_1.35.bb @@ -0,0 +1,35 @@ +SECTION = "libs" +LICENSE = "Artistic|GPL" +DEPENDS = "libexception-class-perl-native libparams-validate-perl-native \ + libcache-cache-perl-native libclass-container-perl-native" +RDEPENDS_${PN} = "libexception-class-perl libparams-validate-perl \ + libcache-cache-perl libclass-container-perl perl-module-strict \ + perl-module-warnings perl-module-file-basename perl-module-file-path \ + perl-module-file-spec perl-module-file-spec-unix perl-module-file-temp \ + perl-module-carp-heavy perl-module-io-handle perl-module-io \ + 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 = "r1" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/HTML-Mason-${PV}.tar.gz" + +S = "${WORKDIR}/HTML-Mason-${PV}" + +inherit cpan_build + +do_install_append () { + # Fix up paths to the perl interpreter + for i in ${D}${bindir}/*.pl; do + sed -i -e "s#${STAGING_BINDIR}/perl#${bindir}/perl#g" $i + done + + # Install the html documentation and example files + install -m 0755 -d ${D}${docdir}/${PN}/html \ + ${D}${docdir}/${PN}/examples/samples \ + ${D}${docdir}/${PN}/examples/eg + cp -pRP ${S}/htdocs ${D}${docdir}/${PN}/html + cp -pRP ${S}/eg ${D}${docdir}/${PN}/examples/eg + cp -pRP ${S}/samples ${D}${docdir}/${PN}/examples/samples +} + 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 d56f0a99d4..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 = "r11" +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 f9490c0c41..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 = "r7" +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 f3a11d2d60..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 = "r11" +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 1081d98135..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 = "r6" +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 b1676bb2fd..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 = "r7" +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/generate-sh.patch b/packages/perl/perl-5.8.8/generate-sh.patch index 4c2b0bd752..50ce00b42f 100644 --- a/packages/perl/perl-5.8.8/generate-sh.patch +++ b/packages/perl/perl-5.8.8/generate-sh.patch @@ -1,16 +1,46 @@ Use the ld flags from the supplied configuration file. For sh we need the flags that specify to build PIC code so that the shared libraries work. ---- perl-5.8.7/Cross/generate_config_sh~ 2006-09-25 16:34:09.000000000 +1000 -+++ perl-5.8.7/Cross/generate_config_sh 2006-09-25 16:34:09.000000000 +1000 -@@ -19,8 +19,8 @@ +Index: perl-5.8.8/Cross/generate_config_sh +=================================================================== +--- perl-5.8.8.orig/Cross/generate_config_sh 2003-09-05 18:31:08.000000000 +1000 ++++ perl-5.8.8/Cross/generate_config_sh 2007-05-30 09:12:50.000000000 +1000 +@@ -19,10 +19,10 @@ $callbacks->{'ar'} = [\&simple_process, ["AR", "arm-linux-ar"]]; $callbacks->{'archname'} = [\&simple_process, ["SYS", "armv4l-linux"]]; $callbacks->{'cc'} = [\&simple_process, ["CC", "arm-linux-gcc"]]; -$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; -$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; +-$callbacks->{'ccflags'} = [\&simple_process, ["CFLAGS", "-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; +-$callbacks->{'ccflags_uselargefiles'} = [\&simple_process, ["CFLAGS", "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; +#$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; +#$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; - $callbacks->{'ccflags'} = [\&simple_process, ["CFLAGS", "-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; - $callbacks->{'ccflags_uselargefiles'} = [\&simple_process, ["CFLAGS", "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; ++$callbacks->{'ccflags'} = [\&simple_process_insert, ["CFLAGS", "-fno-strict-aliasing -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; ++$callbacks->{'ccflags_uselargefiles'} = [\&simple_process_insert, ["CFLAGS", "-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; $callbacks->{'ccname'} = [\&simple_process, ["CC", "arm-linux-gcc"]]; + $callbacks->{'cpp'} = [\&simple_process, ["CCP", "arm-linux-cpp"]]; + $callbacks->{'cppflags'} = [\&simple_process, ["CCPFLAGS", "-fno-strict-aliasing"]]; +@@ -105,6 +105,23 @@ + + } + ++# Insert env var into the variables value ++sub simple_process_insert { ++ my $key = shift; ++ my $value = shift; ++ my $envvar = $callbacks->{$key}->[1][0]; ++ ++ if ($ENV{$envvar}) { ++ # Strip quotes from value ++ $value =~ s/^\'//; ++ $value =~ s/\'$//; ++ # Remove -I/usr/local/... from the value ++ $value =~ s#\W-I/usr/local/\w+\W##g; ++ # Prepend env var (OE setting) to value ++ print("$key=\'$ENV{$envvar} $value\'\n"); ++ } ++} ++ + sub library_munge { + my $key = shift; + my $value = shift; 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-5.8.8/native-ssp.patch b/packages/perl/perl-5.8.8/native-ssp.patch new file mode 100644 index 0000000000..f815aad452 --- /dev/null +++ b/packages/perl/perl-5.8.8/native-ssp.patch @@ -0,0 +1,14 @@ +Fix for compiling with ssp enabled gcc: +See http://bugs.openembedded.org/show_bug.cgi?id=1980 + +diff -Naur perl-5.8.7.orig/cflags.SH perl-5.8.7/cflags.SH +--- perl-5.8.7.orig/cflags.SH 2002-09-30 10:59:07.000000000 +0000 ++++ perl-5.8.7/cflags.SH 2005-10-02 04:08:39.000000000 +0000 +@@ -165,6 +165,8 @@ + esac + + : Can we perhaps use $ansi2knr here ++ [[ $file == regcomp ]] && export ccflags="${ccflags} -fno-stack-protector" ++ [[ $file == regexec ]] && export ccflags="${ccflags} -fno-stack-protector" + echo "$cc -c -DPERL_CORE $ccflags $optimize $warn" + eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $warn"' diff --git a/packages/perl/perl-native_5.8.8.bb b/packages/perl/perl-native_5.8.8.bb index c9d9b51771..ea839e00e8 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 = "r12" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}" @@ -12,7 +12,12 @@ 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" + +# This sloppy patch breaks normal gcc +# file://native-ssp.patch;patch=1 S = "${WORKDIR}/perl-${PV}" @@ -26,7 +31,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 +64,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 c8e7afebc7..edd0618a86 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 = "r16" +PR = "r20" # Major part of version PVM = "5.8" @@ -17,6 +17,7 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \ file://perl-moreconfig.patch;patch=1 \ file://letgcc-find-errno.patch;patch=1 \ file://generate-sh.patch;patch=1 \ + file://perl-5.8.8-gcc-4.2.patch;patch=1 \ file://09_fix_installperl.patch;patch=1 \ file://52_debian_extutils_hacks.patch;patch=1 \ file://53_debian_mod_paths.patch;patch=1 \ @@ -37,7 +38,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 +59,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 +127,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/pointercal/files/h2200/pointercal b/packages/pointercal/files/h2200/pointercal deleted file mode 100644 index 13329047d8..0000000000 --- a/packages/pointercal/files/h2200/pointercal +++ /dev/null @@ -1 +0,0 @@ -23214 147 -3929622 156 -28248 24825082 65536 diff --git a/packages/pointercal/files/hx4700/pointercal b/packages/pointercal/files/hx4700/pointercal deleted file mode 100644 index 62b97378a9..0000000000 --- a/packages/pointercal/files/hx4700/pointercal +++ /dev/null @@ -1 +0,0 @@ --1109 0 33398576 7 1479 -3859852 65536 diff --git a/packages/pointercal/files/magician/pointercal b/packages/pointercal/files/magician/pointercal deleted file mode 100644 index 7ea2d11310..0000000000 --- a/packages/pointercal/files/magician/pointercal +++ /dev/null @@ -1 +0,0 @@ --553 0 16838922 0 -718 22062080 65536 diff --git a/packages/pointercal/pointercal_0.0.bb b/packages/pointercal/pointercal_0.0.bb index 7d47cb8d78..563e62900e 100644 --- a/packages/pointercal/pointercal_0.0.bb +++ b/packages/pointercal/pointercal_0.0.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Touchscreen calibration data" SECTION = "base" -PR = "r0" +PR = "r1" SRC_URI = "file://pointercal" S = "${WORKDIR}" diff --git a/packages/powertop/powertop_1.2.bb b/packages/powertop/powertop_1.5.bb index 2f9c7e44b0..ab84161ddc 100644 --- a/packages/powertop/powertop_1.2.bb +++ b/packages/powertop/powertop_1.5.bb @@ -1,9 +1,17 @@ DESCRIPTION = "PowerTOP, a tool that helps you find what software is using the most power." HOMEPAGE = "http://www.linuxpowertop.org/" LICENSE = "GPLv2" +DEPENDS = "ncurses" SRC_URI = "http://www.linuxpowertop.org/download/powertop-${PV}.tar.gz" +CFLAGS += "${LDFLAGS}" + +do_configure() { + # We do not build ncurses with wide char support + sed -i -e "s/lncursesw/lncurses/" ${S}/Makefile +} + do_install() { oe_runmake install DESTDIR=${D} } diff --git a/packages/pptp-linux/pptp-linux-1.5.0/.mtn2git_empty b/packages/pptp-linux/pptp-linux-1.5.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pptp-linux/pptp-linux-1.5.0/.mtn2git_empty diff --git a/packages/pptp-linux/pptp-linux/makefile.patch b/packages/pptp-linux/pptp-linux-1.5.0/makefile.patch index ea2b5711a2..ea2b5711a2 100644 --- a/packages/pptp-linux/pptp-linux/makefile.patch +++ b/packages/pptp-linux/pptp-linux-1.5.0/makefile.patch diff --git a/packages/pptp-linux/pptp-linux/options.pptp b/packages/pptp-linux/pptp-linux-1.5.0/options.pptp index f446e22a6a..f446e22a6a 100644 --- a/packages/pptp-linux/pptp-linux/options.pptp +++ b/packages/pptp-linux/pptp-linux-1.5.0/options.pptp diff --git a/packages/pptp-linux/pptp-linux-1.7.1/.mtn2git_empty b/packages/pptp-linux/pptp-linux-1.7.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pptp-linux/pptp-linux-1.7.1/.mtn2git_empty diff --git a/packages/pptp-linux/pptp-linux-1.7.1/options.pptp b/packages/pptp-linux/pptp-linux-1.7.1/options.pptp new file mode 100644 index 0000000000..f446e22a6a --- /dev/null +++ b/packages/pptp-linux/pptp-linux-1.7.1/options.pptp @@ -0,0 +1,30 @@ +# +# Lock the port +# +lock + +# +# We don't need the tunnel server to authenticate itself +# +noauth + +# +# Turn off transmission protocols we know won't be used +# +nobsdcomp +nodeflate + +# +# We want MPPE +# (option naming specific to ppp 2.4.0 with unofficial patch) +# +#mppe-40 +mppe-128 +#mppe-stateless + +# +# We want a sane mtu/mru +# (ppp 2.4.0 with unofficial patch) +# +#mtu 1000 +#mru 1000 diff --git a/packages/pptp-linux/pptp-linux_1.7.1.bb b/packages/pptp-linux/pptp-linux_1.7.1.bb new file mode 100644 index 0000000000..b233cef723 --- /dev/null +++ b/packages/pptp-linux/pptp-linux_1.7.1.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "PPTP Client is a Linux, FreeBSD, NetBSD \ +and OpenBSD client for the proprietary Microsoft Point-to-Point \ +Tunneling Protocol, PPTP. Allows connection to a PPTP based \ +Virtual Private Network (VPN) as used by employers and some \ +cable and ADSL internet service providers." +HOMEPAGE = "http://pptpclient.sourceforge.net" +SECTION = "network" +LICENSE = "GPL" +RDEPENDS = "ppp" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \ + file://options.pptp" + +S = "${WORKDIR}/pptp-${PV}" + +do_compile() { + oe_runmake +} +do_install() { + install -d ${D}${sbindir} ${D}${sysconfdir}/ppp ${D}${mandir}/man8 + install -m 555 pptp ${D}${sbindir} + install -m 644 pptp.8 ${D}${mandir}/man8 + install -m 644 ${WORKDIR}/options.pptp ${D}${sysconfdir}/ppp +} diff --git a/packages/prismstumbler/prismstumbler-0.7.3+0.7.4pre1/wireless.patch b/packages/prismstumbler/prismstumbler-0.7.3+0.7.4pre1/wireless.patch new file mode 100644 index 0000000000..dfa579f7b1 --- /dev/null +++ b/packages/prismstumbler/prismstumbler-0.7.3+0.7.4pre1/wireless.patch @@ -0,0 +1,12 @@ +diff -ur prismstumbler-0.7.4pre1_old/src/daemon/cards.c prismstumbler-0.7.4pre1/src/daemon/cards.c +--- prismstumbler-0.7.4pre1_old/src/daemon/cards.c 2006-03-28 19:31:26.000000000 +0200 ++++ prismstumbler-0.7.4pre1/src/daemon/cards.c 2007-05-22 14:59:15.000000000 +0200 +@@ -9,6 +9,8 @@ + + #include <stdio.h> + #include <sys/socket.h> ++#include <linux/types.h> ++#include <net/if.h> + #include <linux/wireless.h> + #include <glib.h> + #include <string.h> diff --git a/packages/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb b/packages/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb index 9311f894d0..3005476e50 100644 --- a/packages/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb +++ b/packages/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb @@ -1,5 +1,5 @@ SECTION = "x11/network" -PR = "r1" +PR = "r2" PACKAGES = "prismstumbler prismstumbler-frontend prismstumbler-doc" DESCRIPTION = "Prismstumbler wireless LAN scanner" @@ -10,7 +10,8 @@ RDEPENDS = "wireless-tools" RRECOMMENDS = "gpsd" SRC_URI = "http://projects.linuxtogo.org/frs/download.php/14/${PN}-0.7.4pre1.tar.gz \ - file://gpsapi.patch;patch=1" + file://gpsapi.patch;patch=1 \ + file://wireless.patch;patch=1" S = "${WORKDIR}/${PN}-0.7.4pre1" diff --git a/packages/prismstumbler/prismstumbler_0.7.3.bb b/packages/prismstumbler/prismstumbler_0.7.3.bb index c0bfdcc5be..eaebe2087f 100644 --- a/packages/prismstumbler/prismstumbler_0.7.3.bb +++ b/packages/prismstumbler/prismstumbler_0.7.3.bb @@ -4,7 +4,7 @@ PR = "r5" PACKAGES = "prismstumbler prismstumbler-frontend prismstumbler-doc" DESCRIPTION = "Prismstumbler wireless LAN scanner" LICENSE = "GPL" -DEPENDS = "libpcap gtk+ wireless-tools sqlite zlib" +DEPENDS = "libpcap gtk+ wireless-tools sqlite zlib libxpm" RDEPENDS = "wireless-tools" SRC_URI = "${SOURCEFORGE_MIRROR}/prismstumbler/${PN}-${PV}.tar.bz2 \ diff --git a/packages/pulseaudio/libatomics-ops_1.2.bb b/packages/pulseaudio/libatomics-ops_1.2.bb new file mode 100644 index 0000000000..c4e838eb78 --- /dev/null +++ b/packages/pulseaudio/libatomics-ops_1.2.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "A library for atomic integer operations" +LICENSE = "MIT" + +SRC_URI = "http://www.hpl.hp.com/research/linux/atomic_ops/download/libatomic_ops-1.2.tar.gz" +S = "${WORKDIR}/libatomic_ops-${PV}" + +inherit autotools pkgconfig + +do_stage() { + autotools_stage_all +} diff --git a/packages/pulseaudio/pulse.inc b/packages/pulseaudio/pulse.inc new file mode 100644 index 0000000000..d4a9c5ef54 --- /dev/null +++ b/packages/pulseaudio/pulse.inc @@ -0,0 +1,108 @@ +DESCRIPTION = "Pulseaudio is a sound server for Linux and Unix-like operating systems." +HOMEPAGE = "http://www.pulseaudio.org" +AUTHOR = "Lennart Poettering" +SECTION = "libs/multimedia" +LICENSE = "LGPL" + +DEPENDS = "libatomics-ops liboil avahi libsamplerate0 libsndfile1 libtool" +# optional +DEPENDS += "alsa-lib" + +PR = "r2" + +SRC_URI = "http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-${PV}.tar.gz" + +SRC_URI += "file://volatiles.04_pulse" + + +inherit autotools pkgconfig + +EXTRA_OECONF = "\ + --disable-lynx \ + --without-x \ + --without-glib \ + --without-jack \ + --with-alsa \ + --with-oss \ + " + +PARALLEL_MAKE = "" + +export TARGET_PFPU="${TARGET_FPU}" + +do_install_append() { + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/volatiles.04_pulse + + if [ "x${TARGET_PFPU}" == "xsoft" ] ; then + sed -i -e s:\;\ resample-method\ =\ sinc-fastest:resample-method\ =\ trivial: ${D}${sysconfdir}/pulse/daemon.conf + fi +} + + +PACKAGES =+ "libpulsecore libpulse libpulse-simple libpulse-browse libpulse-mainloop-glib pulseaudio-server \ + pulseaudio-misc pulseaudio-gconf-helper" + +#upgrade path: +RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf" + + +PACKAGES_DYNAMIC = "pulseaudio-lib* pulseaudio-module* libpulse-lib* libpulse-module* " + + +FILES_libpulsecore = "${libdir}/libpulsecore.so.*" +FILES_libpulse = "${libdir}/libpulse.so.*" +FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*" +FILES_libpulse-browse = "${libdir}/libpulse-browse.so.*" +FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*" + +FILES_${PN}-dbg += "${libexecdir}/pulse/.debug \ + ${libdir}/pulse-0.9/modules/.debug" +FILES_${PN}-dev += "${libdir}/pulse-0.9/modules/*.la" +FILES_${PN}-conf = "${sysconfdir}" +FILES_${PN}-bin = "${bindir}/* \ + ${sysconfdir}/default/volatiles/volatiles.04_pulse" +FILES_${PN}-server = "${bindir}/pulseaudio ${sysconfdir}" +FILES_${PN}-gconf-helper = "${libexecdir}/pulse/gconf-helper" +FILES_${PN}-misc = "${bindir}/*" + +CONFFILES_pulseaudio-server = "\ + ${sysconfdir}/pulse/default.pa \ + ${sysconfdir}/pulse/daemon.conf \ + ${sysconfdir}/pulse/client.conf \ + " +pkg_postinst_libppulse() { +if test "x$D" != "x"; then + exit 1 +else + grep -q pulse: /etc/group || addgroup pulse + grep -q pulse: /etc/passwd || \ + adduser --disabled-password --home=/var/run/pulse/ --system \ + --ingroup pulse --no-create-home -g "Pulse audio daemon" pulse + /etc/init.d/populate-volatile.sh update +fi +} + +pkg_postrm_libpulse() { +if test "x$D" != "x"; then + exit 1 +else + deluser pulse +fi +} + + + + +do_stage() { + autotools_stage_all +} + + +python populate_packages_prepend() { + #bb.data.setVar('PKG_pulseaudio', 'pulseaudio', d) + + plugindir = bb.data.expand('${libdir}/pulse-0.9/modules/', d) + do_split_packages(d, plugindir, '^module-(.*)\.so$', 'pulseaudio-module-%s', 'PulseAudio module for %s', extra_depends='' ) + do_split_packages(d, plugindir, '^lib(.*)\.so$', 'pulseaudio-lib-%s', 'PulseAudio library for %s', extra_depends='' ) +} diff --git a/packages/pulseaudio/pulseaudio_0.9.5.bb b/packages/pulseaudio/pulseaudio_0.9.5.bb index 35fd9a8342..3a4ab46cae 100644 --- a/packages/pulseaudio/pulseaudio_0.9.5.bb +++ b/packages/pulseaudio/pulseaudio_0.9.5.bb @@ -1,95 +1,3 @@ -DESCRIPTION = "Pulseaudio is a sound server for Linux and Unix-like operating systems." -HOMEPAGE = "http://www.pulseaudio.org" -AUTHOR = "Lennart Poettering" -SECTION = "libs/multimedia" -LICENSE = "LGPL" +require pulse.inc -DEPENDS = "liboil avahi libsamplerate0 libsndfile1 libtool" -# optional -DEPENDS += "alsa-lib" - - -PR = "r7" - -SRC_URI = "http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-${PV}.tar.gz" - -SRC_URI += "file://volatiles.04_pulse" - - -inherit autotools pkgconfig - -EXTRA_OECONF = "\ - --disable-lynx \ - --without-x \ - --without-glib \ - --without-jack \ - --with-alsa \ - --with-oss \ - " - -PARALLEL_MAKE = "" - -export TARGET_FPU="${TARGET_FPU}" - -do_install_append() { - install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/volatiles.04_pulse - - if [ "x${TARGET_FPU}" == "xsoft" ] ; then - sed -i -e s:\;\ resample-method\ =\ sinc-fastest:resample-method\ =\ trivial: ${D}${sysconfdir}/pulse/daemon.conf - fi -} - - -LEAD_SONAME = "libpulse.so" - -PACKAGES =+ "${PN}-bin ${PN}-conf" -PACKAGES_DYNAMIC = "pulseaudio-module-* pulseaudio-lib-*" - -FILES_${PN}-dbg += "${libexecdir}/pulse/.debug \ - ${libdir}/pulse-0.9/modules/.debug" -FILES_${PN}-dev += "${libdir}/pulse-0.9/modules/*.la" -FILES_${PN}-conf = "${sysconfdir}" -FILES_${PN}-bin = "${bindir}/* \ - ${sysconfdir}/default/volatiles/volatiles.04_pulse" - -CONFFILES_${PN}-conf = "\ - ${sysconfdir}/pulse/default.pa \ - ${sysconfdir}/pulse/daemon.conf \ - ${sysconfdir}/pulse/client.conf \ - " -pkg_postinst_${PN}-bin() { -if test "x$D" != "x"; then - exit 1 -else - grep -q pulse: /etc/group || addgroup pulse - grep -q pulse: /etc/passwd || \ - adduser --disabled-password --home=/var/run/pulse/ --system \ - --ingroup pulse --no-create-home -g "Pulse audio daemon" pulse - /etc/init.d/populate-volatile.sh update -fi -} - -pkg_postrm${PN}-bin() { -if test "x$D" != "x"; then - exit 1 -else - deluser pulse -fi -} - - - - -do_stage() { - autotools_stage_all -} - - -python populate_packages_prepend() { - #bb.data.setVar('PKG_pulseaudio', 'pulseaudio', d) - - plugindir = bb.data.expand('${libdir}/pulse-0.9/modules/', d) - do_split_packages(d, plugindir, '^module-(.*)\.so$', 'pulseaudio-module-%s', 'PulseAudio module for %s', extra_depends='' ) - do_split_packages(d, plugindir, '^lib(.*)\.so$', 'pulseaudio-lib-%s', 'PulseAudio library for %s', extra_depends='' ) -} +PR = "r10" diff --git a/packages/pulseaudio/pulseaudio_0.9.6.bb b/packages/pulseaudio/pulseaudio_0.9.6.bb new file mode 100644 index 0000000000..cd088c9843 --- /dev/null +++ b/packages/pulseaudio/pulseaudio_0.9.6.bb @@ -0,0 +1,3 @@ +require pulse.inc + +DEFAULT_PREFERENCE = "-1" diff --git a/packages/python/fix-path.inc b/packages/python/fix-path.inc new file mode 100644 index 0000000000..0738c59ada --- /dev/null +++ b/packages/python/fix-path.inc @@ -0,0 +1,22 @@ +do_install_append() { + for i in `find ${D} -name "*.py"` ; do \ + sed -i -e s:${D}::g $i + done + + for i in `find ${D} -name "*.la"` ; do \ + sed -i -e s:${STAGING_LIBDIR}:${libdir}:g $i + done + + if test -e ${D}${bindir} ; then + for i in ${D}${bindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i + done + fi + + if test -e ${D}${sbindir} ; then + for i in ${D}${sbindir}/* ; do \ + sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i + done + fi +} + diff --git a/packages/python/python-gst_0.10.7.bb b/packages/python/python-gst_0.10.7.bb index d206c0ab12..ef4cac7b6b 100644 --- a/packages/python/python-gst_0.10.7.bb +++ b/packages/python/python-gst_0.10.7.bb @@ -1,7 +1,8 @@ DESCRIPTION = "Python Gstreamer bindings" SECTION = "devel/python" LICENSE = "LGPL" -DEPENDS = "gstreamer" +DEPENDS = "gstreamer python-pygobject" +PR = "r1" SRC_URI = "http://gstreamer.freedesktop.org/src/gst-python/gst-python-${PV}.tar.bz2 \ file://python-path.patch;patch=1" @@ -20,3 +21,5 @@ do_configure_prepend() { do_stage() { autotools_stage_all } + +FILES_${PN}-dbg = "${libdir}/python2.4/site-packages/gst-0.10/gst/.debug/" diff --git a/packages/python/python-pygtk2_2.10.3.bb b/packages/python/python-pygtk2_2.10.3.bb index a71765dfbc..d3811ddddd 100644 --- a/packages/python/python-pygtk2_2.10.3.bb +++ b/packages/python/python-pygtk2_2.10.3.bb @@ -5,7 +5,7 @@ DEPENDS = "gtk+ libglade python-pycairo python-pygobject" RDEPENDS = "python-shell" SRCNAME = "pygtk" LICENSE = "LGPL" -PR = "ml3" +PR = "ml4" SRC_URI = "ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.10/${SRCNAME}-${PV}.tar.bz2 \ file://fix-gtkunixprint.patch;patch=1 \ @@ -21,6 +21,8 @@ do_configure_prepend() { install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/ } +require fix-path.inc + FILES_${PN}-dbg += "${libdir}/python2.4/site-packages/gtk-2.0/*/.debug" FILES_${PN}-dbg += "${libdir}/python2.4/site-packages/gtk-2.0/.debug" diff --git a/packages/python/python-pyqt4_4.0.bb b/packages/python/python-pyqt4_4.2.bb index 64a9a71f68..64a9a71f68 100644 --- a/packages/python/python-pyqt4_4.0.bb +++ b/packages/python/python-pyqt4_4.2.bb diff --git a/packages/python/python-pysqlite2_2.2.2.bb b/packages/python/python-pysqlite2_2.2.2.bb index 37be3bc0ea..89d4030f5c 100644 --- a/packages/python/python-pysqlite2_2.2.2.bb +++ b/packages/python/python-pysqlite2_2.2.2.bb @@ -4,10 +4,15 @@ PRIORITY = "optional" LICENSE = "PSF" RDEPENDS = "python-core python-re python-lang python-datetime" DEPENDS = "sqlite3" -SRCNAME = "pysqlite" -PR = "ml1" +SRCNAME = "pysqlite2" +PR = "ml2" -SRC_URI = "http://initd.org/pub/software/pysqlite/releases/2.2/${PV}/${SRCNAME}-${PV}.tar.gz" -S = "${WORKDIR}/${SRCNAME}-${PV}" +SRC_URI = "http://initd.org/pub/software/pysqlite/releases/2.2/${PV}/pysqlite-${PV}.tar.gz" +S = "${WORKDIR}/pysqlite-${PV}" inherit distutils + +do_install_append() { + install -d ${D}${docdir}/doc + mv ${D}/${datadir}/pysqlite2-doc ${D}${docdir}/${SRCNAME} +} diff --git a/packages/qmake/qmake2-native-2.01a/0001-fix-mkspecs.patch b/packages/qmake/qmake2-native-2.01a/0001-fix-mkspecs.patch new file mode 100644 index 0000000000..abebfdfa27 --- /dev/null +++ b/packages/qmake/qmake2-native-2.01a/0001-fix-mkspecs.patch @@ -0,0 +1,123 @@ +From 594157753a24d0575aaf948dc0e9500f6bdb2178 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sat, 2 Jun 2007 16:39:58 +0200 +Subject: [PATCH] fix mkspecs + +--- + mkspecs/common/g++.conf | 18 +++++++++--------- + mkspecs/common/linux.conf | 26 +++++++++++++------------- + 2 files changed, 22 insertions(+), 22 deletions(-) + +diff --git a/mkspecs/common/g++.conf b/mkspecs/common/g++.conf +index f5a5c8e..4007c7e 100644 +--- a/mkspecs/common/g++.conf ++++ b/mkspecs/common/g++.conf +@@ -2,12 +2,12 @@ + # qmake configuration for common gcc + # + +-QMAKE_CC = gcc +-QMAKE_CFLAGS += -pipe ++QMAKE_CC = $(OE_QMAKE_CC) ++QMAKE_CFLAGS += -pipe $(OE_QMAKE_CFLAGS) + QMAKE_CFLAGS_DEPS += -M + QMAKE_CFLAGS_WARN_ON += -Wall -W + QMAKE_CFLAGS_WARN_OFF += -w +-QMAKE_CFLAGS_RELEASE += -O2 ++QMAKE_CFLAGS_RELEASE += -O2 + QMAKE_CFLAGS_DEBUG += -g + QMAKE_CFLAGS_SHLIB += -fPIC + QMAKE_CFLAGS_STATIC_LIB += -fPIC +@@ -16,8 +16,8 @@ QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden + QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} + QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE} + +-QMAKE_CXX = g++ +-QMAKE_CXXFLAGS += $$QMAKE_CFLAGS ++QMAKE_CXX = $(OE_QMAKE_CXX) ++QMAKE_CXXFLAGS += $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) + QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS + QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON + QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF +@@ -30,9 +30,9 @@ QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden + QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} + QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + +-QMAKE_LINK = g++ +-QMAKE_LINK_SHLIB = g++ +-QMAKE_LFLAGS += ++QMAKE_LINK = $(OE_QMAKE_LINK) ++QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) ++QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) + QMAKE_LFLAGS_RELEASE += + QMAKE_LFLAGS_DEBUG += + QMAKE_LFLAGS_APP += +@@ -40,7 +40,7 @@ QMAKE_LFLAGS_SHLIB += -shared + QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB + QMAKE_LFLAGS_SONAME += -Wl,-soname, + QMAKE_LFLAGS_THREAD += +-QMAKE_RPATH = -Wl,-rpath, ++QMAKE_RPATH = -Wl,-rpath-link, + + QMAKE_PCH_OUTPUT_EXT = .gch + +diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf +index 3796a87..52acf16 100644 +--- a/mkspecs/common/linux.conf ++++ b/mkspecs/common/linux.conf +@@ -7,26 +7,26 @@ QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD + + QMAKE_INCDIR = + QMAKE_LIBDIR = +-QMAKE_INCDIR_X11 = /usr/X11R6/include +-QMAKE_LIBDIR_X11 = /usr/X11R6/lib +-QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] +-QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] +-QMAKE_INCDIR_OPENGL = /usr/X11R6/include +-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib ++QMAKE_INCDIR_X11 = ++QMAKE_LIBDIR_X11 = ++QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) ++QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) ++QMAKE_INCDIR_OPENGL = ++QMAKE_LIBDIR_OPENGL = + + QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl +-QMAKE_LIBS_X11 = -lXext -lX11 -lm +-QMAKE_LIBS_X11SM = -lSM -lICE ++QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11) ++QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM) + QMAKE_LIBS_NIS = -lnsl + QMAKE_LIBS_OPENGL = -lGLU -lGL + QMAKE_LIBS_OPENGL_QT = -lGL + QMAKE_LIBS_THREAD = -lpthread + +-QMAKE_MOC = $$[QT_INSTALL_BINS]/moc +-QMAKE_UIC = $$[QT_INSTALL_BINS]/uic ++QMAKE_MOC = $(OE_QMAKE_MOC) ++QMAKE_UIC = $(OE_QMAKE_UIC) + +-QMAKE_AR = ar cqs ++QMAKE_AR = $(OE_QMAKE_AR) cqs + QMAKE_RANLIB = + + QMAKE_TAR = tar -cf +@@ -38,11 +38,11 @@ QMAKE_COPY_DIR = $(COPY) -r + QMAKE_MOVE = mv -f + QMAKE_DEL_FILE = rm -f + QMAKE_DEL_DIR = rmdir +-QMAKE_STRIP = strip ++QMAKE_STRIP = $(OE_QMAKE_STRIP) + QMAKE_STRIPFLAGS_LIB += --strip-unneeded + QMAKE_CHK_DIR_EXISTS = test -d + QMAKE_MKDIR = mkdir -p + QMAKE_INSTALL_FILE = install -m 644 -p + QMAKE_INSTALL_PROGRAM = install -m 755 -p + +-include(unix.conf) +\ No newline at end of file ++include(unix.conf) +-- +1.5.1.6 + diff --git a/packages/qmake/qmake2-native-2.01a/linux-oe-qmake.conf b/packages/qmake/qmake2-native-2.01a/linux-oe-qmake.conf index d803f036fc..f58481a693 100644 --- a/packages/qmake/qmake2-native-2.01a/linux-oe-qmake.conf +++ b/packages/qmake/qmake2-native-2.01a/linux-oe-qmake.conf @@ -1,90 +1 @@ -# -# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org -# - -MAKEFILE_GENERATOR = UNIX -TEMPLATE = app -CONFIG += qt warn_on release incremental link_prl -QT += core gui -QMAKE_INCREMENTAL_STYLE = sublib - -QMAKE_CC = $(OE_QMAKE_CC) -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_YACCFLAGS_MANGLE = -p $base -b $base -QMAKE_YACC_HEADER = $base.tab.h -QMAKE_YACC_SOURCE = $base.tab.c -QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS) $(CFLAGS_EXTRA) -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = $(if $(CFLAGS_RELEASE),$(CFLAGS_RELEASE), -O2) -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = -D_REENTRANT -QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden - -QMAKE_CXX = $(OE_QMAKE_CXX) -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) $(CXXFLAGS_EXTRA) -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD -QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = $(OE_QMAKE_INCDIR_X11) -QMAKE_LIBDIR_X11 = $(OE_QMAKE_LIBDIR_X11) -QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) -QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = $(OE_QMAKE_LINK) -QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) -QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS) $(LFLAGS_EXTRA) -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_RPATH = -Wl,-rpath-link, - -QMAKE_LIBS = $(LIBS_EXTRA) -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11) -QMAKE_LIBS_X11SM = -QMAKE_LIBS_QT = -l$(OE_QMAKE_LIBS_QT) -QMAKE_LIBS_QT_THREAD = -l$(OE_QMAKE_LIBS_QT)-mt -QMAKE_LIBS_QT_OPENGL = -lqgl -QMAKE_LIBS_THREAD = -lpthread - -QMAKE_MOC = $(OE_QMAKE_MOC) -QMAKE_UIC = $(OE_QMAKE_UIC) - -QMAKE_AR = $(OE_QMAKE_AR) cqs -QMAKE_RANLIB = - -QMAKE_TAR = tar -cf -QMAKE_GZIP = gzip -9f - -QMAKE_COPY = cp -f -QMAKE_COPY_FILE = $(COPY) -QMAKE_COPY_DIR = $(COPY) -r -QMAKE_MOVE = mv -f -QMAKE_DEL_FILE = rm -f -QMAKE_DEL_DIR = rmdir -QMAKE_STRIP = $(OE_QMAKE_STRIP) -QMAKE_STRIPFLAGS_LIB += --strip-unneeded -QMAKE_CHK_DIR_EXISTS = test -d -QMAKE_MKDIR = mkdir -p - +include(../linux-g++/qmake.conf) diff --git a/packages/qmake/qmake2-native_2.01a.bb b/packages/qmake/qmake2-native_2.01a.bb index dab5b6a3b4..b4a736cb76 100644 --- a/packages/qmake/qmake2-native_2.01a.bb +++ b/packages/qmake/qmake2-native_2.01a.bb @@ -4,9 +4,12 @@ HOMEPAGE = "http://www.trolltech.com" SECTION = "devel" LICENSE = "GPL QPL" -QTVER = "qt-x11-opensource-src-4.2.3" +PR = "r1" + +QTVER = "qt-x11-opensource-src-4.3.0" SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/${QTVER}.tar.gz \ + file://0001-fix-mkspecs.patch;patch=1 \ file://linux-oe-qmake.conf" S = "${WORKDIR}/${QTVER}" @@ -30,6 +33,19 @@ do_configure() { PLATFORM=${HOST_OS}-oe-g++ export PLATFORM # yes, TARGET_SYS is correct, because this is a 'cross'-qmake-native :) :M: + export OE_QMAKE_CC="${CC}" + export OE_QMAKE_CFLAGS="${CFLAGS}" + export OE_QMAKE_CXX="${CXX}" + export OE_QMAKE_CXXFLAGS="-fno-exceptions -fno-rtti ${CXXFLAGS}" + export OE_QMAKE_LDFLAGS="${LDFLAGS}" + export OE_QMAKE_LINK="${CCLD}" + export OE_QMAKE_AR="${AR}" + export OE_QMAKE_STRIP="${STRIP}" + export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic" + export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc" + export OE_QMAKE_RCC="non-existant" + export OE_QMAKE_QMAKE="${STAGING_BINDIR_NATIVE}/qmake" + export OE_QMAKE_RPATH="-Wl,-rpath-link," echo yes | ./configure -prefix ${STAGING_DIR}/${CROSS_SYS}/qt4 ${EXTRA_OECONF} || die "Configuring qt failed" } diff --git a/packages/qpegps/qpegps.inc b/packages/qpegps/qpegps.inc new file mode 100644 index 0000000000..2e10bf40a6 --- /dev/null +++ b/packages/qpegps/qpegps.inc @@ -0,0 +1,35 @@ +DESCRIPTION = "A GPS navigation application for the Opie environment" +SECTION = "opie/applications" +PRIORITY = "optional" +LICENSE = "GPL" +HOMEPAGE = "http://qpegps.sourceforge.net/" + +RRECOMMENDS = "gpsd" + +SRC_URI = "${SOURCEFORGE_MIRROR}/qpegps/qpegps_${PV}_src.zip \ + file://qpegps.desktop \ + file://qpegps.png" +S = "${WORKDIR}/qpegps" + +inherit palmtop + +QMAKE_PROFILES = "qpegps.pro" +EXTRA_QMAKEVARS_POST = "LIBS=-lqpe LIBS+=-lgps" +OE_QMAKE_CFLAGS += " -DQWS " + +do_install() { + install -d ${D}${palmtopdir}/bin \ + ${D}${palmtopdir}/apps/Applications \ + ${D}${palmtopdir}/pics/qpegps \ + ${D}${palmtopdir}/help/html/qpegps_icons \ + ${D}${palmtopdir}/qpegps/maps \ + ${D}${palmtopdir}/qpegps/icons \ + ${D}${palmtopdir}/qpegps/tracks + install -m 0755 qpegps ${D}${palmtopdir}/bin/ + install -m 0644 ${WORKDIR}/qpegps.desktop ${D}${palmtopdir}/apps/Applications/ + install -m 0644 ${WORKDIR}/qpegps.png ${D}${palmtopdir}/pics/qpegps/ + install -m 0644 doc/qpegps.html ${D}${palmtopdir}/help/html/ + install -m 0644 doc/qpegps_icons/*.png ${D}${palmtopdir}/help/html/qpegps_icons/ + install -m 0644 icons/*.xpm ${D}${palmtopdir}/qpegps/icons/ + install -m 0644 datum/*.dat ${D}${palmtopdir}/qpegps/ +} diff --git a/packages/qpegps/qpegps_0.9.2.3.3.bb b/packages/qpegps/qpegps_0.9.2.3.3.bb index 7eaa456d74..4cdb945321 100644 --- a/packages/qpegps/qpegps_0.9.2.3.3.bb +++ b/packages/qpegps/qpegps_0.9.2.3.3.bb @@ -1,33 +1 @@ -DESCRIPTION = "A GPS navigation application for the Opie environment." -SECTION = "opie/applications" -PRIORITY = "optional" -RRECOMMENDS = "gpsd" -LICENSE = "GPL" -HOMEPAGE = "http://qpegps.sourceforge.net/" -PR = "r0" - -SRC_URI = "${SOURCEFORGE_MIRROR}/qpegps/qpegps_${PV}_src.zip \ - file://qpegps.desktop \ - file://qpegps.png" -S = "${WORKDIR}/qpegps_my" - -inherit palmtop - -QMAKE_PROFILES = "qpegps.pro" - -do_install() { - install -d ${D}${palmtopdir}/bin \ - ${D}${palmtopdir}/apps/Applications \ - ${D}${palmtopdir}/pics/qpegps \ - ${D}${palmtopdir}/help/html/qpegps_icons \ - ${D}${palmtopdir}/qpegps/maps \ - ${D}${palmtopdir}/qpegps/icons \ - ${D}${palmtopdir}/qpegps/tracks - install -m 0755 qpegps ${D}${palmtopdir}/bin/ - install -m 0644 ${WORKDIR}/qpegps.desktop ${D}${palmtopdir}/apps/Applications/ - install -m 0644 ${WORKDIR}/qpegps.png ${D}${palmtopdir}/pics/qpegps/ - install -m 0644 doc/qpegps.html ${D}${palmtopdir}/help/html/ - install -m 0644 doc/qpegps_icons/*.png ${D}${palmtopdir}/help/html/qpegps_icons/ - install -m 0644 icons/*.xpm ${D}${palmtopdir}/qpegps/icons/ - install -m 0644 datum/*.dat ${D}${palmtopdir}/qpegps/ -} +require qpegps.inc diff --git a/packages/qpegps/qpegps_0.9.3.bb b/packages/qpegps/qpegps_0.9.3.bb index a4712f3dea..4cdb945321 100644 --- a/packages/qpegps/qpegps_0.9.3.bb +++ b/packages/qpegps/qpegps_0.9.3.bb @@ -1,35 +1 @@ -DESCRIPTION = "Navigation application for use with GPS adapters" -SECTION = "opie/applications" -PRIORITY = "optional" - -RRECOMMENDS = "gpsd" -LICENSE = "GPL" -HOMEPAGE = "http://qpegps.sourceforge.net/" -PR = "r0" - -SRC_URI = "${SOURCEFORGE_MIRROR}/qpegps/qpegps_${PV}_src.zip \ - file://qpegps.desktop \ - file://qpegps.png" -S = "${WORKDIR}/qpegps" - -inherit palmtop - -QMAKE_PROFILES = "qpegps.pro" -EXTRA_QMAKEVARS_POST = "LIBS=-lqpe LIBS+=-lgps" - -do_install() { - install -d ${D}${palmtopdir}/bin \ - ${D}${palmtopdir}/apps/Applications \ - ${D}${palmtopdir}/pics/qpegps \ - ${D}${palmtopdir}/help/html/qpegps_icons \ - ${D}${palmtopdir}/qpegps/maps \ - ${D}${palmtopdir}/qpegps/icons \ - ${D}${palmtopdir}/qpegps/tracks - install -m 0755 qpegps ${D}${palmtopdir}/bin/ - install -m 0644 ${WORKDIR}/qpegps.desktop ${D}${palmtopdir}/apps/Applications/ - install -m 0644 ${WORKDIR}/qpegps.png ${D}${palmtopdir}/pics/qpegps/ - install -m 0644 doc/qpegps.html ${D}${palmtopdir}/help/html/ - install -m 0644 doc/qpegps_icons/*.png ${D}${palmtopdir}/help/html/qpegps_icons/ - install -m 0644 icons/*.xpm ${D}${palmtopdir}/qpegps/icons/ - install -m 0644 datum/*.dat ${D}${palmtopdir}/qpegps/ -} +require qpegps.inc diff --git a/packages/vera-fonts/qpf-bitstream-vera-sans-mono_1.10.bb b/packages/qpf-fonts/qpf-bitstream-vera-sans-mono_1.10.bb index 10d2d4acdd..10d2d4acdd 100644 --- a/packages/vera-fonts/qpf-bitstream-vera-sans-mono_1.10.bb +++ b/packages/qpf-fonts/qpf-bitstream-vera-sans-mono_1.10.bb diff --git a/packages/vera-fonts/qpf-bitstream-vera_1.10.bb b/packages/qpf-fonts/qpf-bitstream-vera_1.10.bb index 86f2ef9446..86f2ef9446 100644 --- a/packages/vera-fonts/qpf-bitstream-vera_1.10.bb +++ b/packages/qpf-fonts/qpf-bitstream-vera_1.10.bb diff --git a/packages/qsvn/files/.mtn2git_empty b/packages/qsvn/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/qsvn/files/.mtn2git_empty diff --git a/packages/qsvn/files/build.patch b/packages/qsvn/files/build.patch new file mode 100644 index 0000000000..086f532a70 --- /dev/null +++ b/packages/qsvn/files/build.patch @@ -0,0 +1,23 @@ +--- qsvn-0.3.0/qsvn.pro 2007-06-11 00:47:22.514013379 +0200 ++++ qsvn-0.3.0/qsvn.pro 2007-06-11 00:47:49.206941206 +0200 +@@ -7,9 +7,6 @@ + UI_DIR = .ui + OBJECTS_DIR = .obj + +- INCLUDEPATH += /usr/include/subversion-1 \ +- /usr/include/apr-0 +- + LIBS += -lsvn_client-1 \ + -lsvn_delta-1 \ + -lsvn_diff-1 \ +@@ -18,8 +15,8 @@ + -lsvn_repos-1 \ + -lsvn_subr-1 \ + -lsvn_wc-1 \ +- -lapr-0 \ +- -laprutil-0 ++ -lapr-1 \ ++ -laprutil-1 + } + + win32 { diff --git a/packages/qsvn/qsvn_0.3.0.bb b/packages/qsvn/qsvn_0.3.0.bb index 13653ea898..575e9359b7 100644 --- a/packages/qsvn/qsvn_0.3.0.bb +++ b/packages/qsvn/qsvn_0.3.0.bb @@ -7,7 +7,8 @@ SECTION = "network" DEPENDS = "apr-util subversion" PR = "r0" -SRC_URI = "http://download2.berlios.de/qsvn/qsvn-${PV}-src.tar.gz" +SRC_URI = "http://download2.berlios.de/qsvn/qsvn-${PV}-src.tar.gz \ + file://build.patch;patch=1" inherit qmake qt4x11 diff --git a/packages/qt/qt-x11-free-common.inc b/packages/qt/qt-x11-free-common.inc index d052b54c47..d21787786f 100644 --- a/packages/qt/qt-x11-free-common.inc +++ b/packages/qt/qt-x11-free-common.inc @@ -84,5 +84,4 @@ FILES_qt-x11-designer = "${bindir}/designer" FILES_qt-x11-assistant = "${bindir}/assistant" FILES_qt-x11-qvfb = "${bindir}/qvfb" FILES_qt-x11-qtconfig = "${bindir}/qtconfig" -FILES_qt-x11-plugins-debug += "${prefix}/plugins/*/.debug" - +FILES_qt-x11-plugins-debug += "${prefix}/plugins/*/.debug ${D}/qt-x11-plugins-debug" diff --git a/packages/qt/qt4-x11-free-4.3.0/.mtn2git_empty b/packages/qt/qt4-x11-free-4.3.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/.mtn2git_empty diff --git a/packages/qt/qt4-x11-free-4.3.0/0001-cross-compile.patch b/packages/qt/qt4-x11-free-4.3.0/0001-cross-compile.patch new file mode 100644 index 0000000000..42f7b5575c --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/0001-cross-compile.patch @@ -0,0 +1,174 @@ +From 64210fec17ab819f21769e3e82bb26e9f2ccfdb4 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sun, 3 Jun 2007 18:30:37 +0200 +Subject: [PATCH] cross compile + +--- + configure | 137 ++---------------------------------------------------------- + 1 files changed, 5 insertions(+), 132 deletions(-) + +diff --git a/configure b/configure +index 6b3ccd2..b3c2a52 100755 +--- a/configure ++++ b/configure +@@ -733,7 +733,7 @@ while [ "$#" -gt 0 ]; do + UNKNOWN_ARG=yes + fi + ;; +- -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-mysql_config) ++ -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-mysql_config|-crossarch) + VAR=`echo $1 | sed "s,^-\(.*\),\1,"` + shift + VAL="$1" +@@ -1109,6 +1109,9 @@ while [ "$#" -gt 0 ]; do + xplatform) + XPLATFORM="$VAL" + ;; ++ crossarch) ++ CROSSARCH="$VAL" ++ ;; + debug-and-release) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_DEBUG_RELEASE="$VAL" +@@ -2092,137 +2095,7 @@ if [ "$OPT_VERBOSE" = "yes" ]; then + echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)" + fi + +-if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then +- case "$CFG_EMBEDDED" in +- x86) +- ARCH=i386 +- ;; +- x86_64) +- ARCH=x86_64 +- ;; +- ipaq|sharp) +- ARCH=arm +- ;; +- *) +- ARCH="$CFG_EMBEDDED" +- ;; +- esac +-else +- case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in +- IRIX*:*:*) +- ARCH=`uname -p` +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " SGI ($ARCH)" +- fi +- ;; +- SunOS:5*:*) +- case "$UNAME_MACHINE" in +- sun4u*|sun4v*) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " Sun SPARC (sparc)" +- fi +- ARCH=sparc +- ;; +- i86pc) +- case "$PLATFORM" in +- *-64) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 64-bit AMD 80x86 (x86_64)" +- fi +- ARCH=x86_64 +- ;; +- *) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 32-bit Intel 80x86 (i386)" +- fi +- ARCH=i386 +- ;; +- esac +- esac +- ;; +- Darwin:*:*) +- case "$UNAME_MACHINE" in +- Power?Macintosh) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 32-bit Apple PowerPC (powerpc)" +- fi +- ;; +- x86) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 32-bit Intel 80x86 (i386)" +- fi +- ;; +- esac +- ARCH=macosx +- ;; +- AIX:*:00????????00) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 64-bit IBM PowerPC (powerpc)" +- fi +- ARCH=powerpc +- ;; +- HP-UX:*:9000*) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " HP PA-RISC (parisc)" +- fi +- ARCH=parisc +- ;; +- *:*:i?86) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 32-bit Intel 80x86 (i386)" +- fi +- ARCH=i386 +- ;; +- *:*:x86_64|*:*:amd64) +- if [ "$PLATFORM" = "linux-g++-32" ]; then +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 32 bit on 64-bit AMD 80x86 (i386)" +- fi +- ARCH=i386 +- else +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 64-bit AMD 80x86 (x86_64)" +- fi +- ARCH=x86_64 +- fi +- ;; +- *:*:ppc) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 32-bit PowerPC (powerpc)" +- fi +- ARCH=powerpc +- ;; +- *:*:ppc64) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " 64-bit PowerPC (powerpc)" +- fi +- ARCH=powerpc +- ;; +- *:*:s390*) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " IBM S/390 (s390)" +- fi +- ARCH=s390 +- ;; +- *:*:*) +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " Trying '$UNAME_MACHINE'..." +- fi +- ARCH="$UNAME_MACHINE" +- ;; +- esac +-fi +- +-if [ -d "$relpath/src/corelib/arch/$ARCH" ]; then +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " '$ARCH' is supported" +- fi +-else +- if [ "$OPT_VERBOSE" = "yes" ]; then +- echo " '$ARCH' is unsupported, using 'generic'" +- fi +- ARCH=generic +-fi ++ARCH="$CROSSARCH" + + if [ "$OPT_VERBOSE" = "yes" ]; then + echo "System architecture: '$ARCH'" +-- +1.5.0.7 + diff --git a/packages/qt/qt4-x11-free-4.3.0/0002-fix-resinit-declaration.patch b/packages/qt/qt4-x11-free-4.3.0/0002-fix-resinit-declaration.patch new file mode 100644 index 0000000000..e479a64a2b --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/0002-fix-resinit-declaration.patch @@ -0,0 +1,25 @@ +From acfeb18aa94bad6b2066e91cd15570889baaa252 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sat, 2 Jun 2007 16:04:01 +0200 +Subject: [PATCH] fix resinit declaration + +--- + src/qt3support/network/q3dns.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/qt3support/network/q3dns.cpp b/src/qt3support/network/q3dns.cpp +index 9bc7b16..bfc333e 100644 +--- a/src/qt3support/network/q3dns.cpp ++++ b/src/qt3support/network/q3dns.cpp +@@ -30,7 +30,7 @@ + # include <netinet/in.h> + # include <arpa/nameser.h> + # include <resolv.h> +-extern "C" int res_init(); ++extern "C" int res_init() throw(); + #endif + + // POSIX Large File Support redefines open -> open64 +-- +1.5.0.7 + diff --git a/packages/qt/qt4-x11-free-4.3.0/0003-no-tools.patch b/packages/qt/qt4-x11-free-4.3.0/0003-no-tools.patch new file mode 100644 index 0000000000..5412c90377 --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/0003-no-tools.patch @@ -0,0 +1,25 @@ +From 03cbda241413e4ae727b2a92ff452162aa7ad440 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sat, 2 Jun 2007 16:06:01 +0200 +Subject: [PATCH] no tools + +--- + src/src.pro | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/src.pro b/src/src.pro +index 6e08180..957d3dc 100644 +--- a/src/src.pro ++++ b/src/src.pro +@@ -3,7 +3,7 @@ TEMPLATE = subdirs + # this order is important + unset(SRC_SUBDIRS) + win32:SRC_SUBDIRS += src_winmain +-SRC_SUBDIRS += src_tools_moc src_tools_rcc src_tools_uic src_corelib src_xml src_gui src_sql src_network src_svg src_script ++SRC_SUBDIRS += src_corelib src_xml src_gui src_sql src_network src_svg src_script + contains(QT_CONFIG, opengl): SRC_SUBDIRS += src_opengl + contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support + !cross_compile { +-- +1.5.0.7 + diff --git a/packages/qt/qt4-x11-free-4.3.0/0004-no-qmake.patch b/packages/qt/qt4-x11-free-4.3.0/0004-no-qmake.patch new file mode 100644 index 0000000000..359f6df9d5 --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/0004-no-qmake.patch @@ -0,0 +1,25 @@ +From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sat, 2 Jun 2007 16:06:59 +0200 +Subject: [PATCH] no qmake + +--- + configure | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure b/configure +index b3c2a52..1901e57 100755 +--- a/configure ++++ b/configure +@@ -3271,7 +3271,7 @@ END { + } + + # build qmake +-if true; then ###[ '!' -f "$outpath/bin/qmake" ]; ++if false; then ###[ '!' -f "$outpath/bin/qmake" ]; + echo "Creating qmake. Please wait..." + + OLD_QCONFIG_H= +-- +1.5.0.7 + diff --git a/packages/qt/qt4-x11-free-4.3.0/0005-fix-mkspecs.patch b/packages/qt/qt4-x11-free-4.3.0/0005-fix-mkspecs.patch new file mode 100644 index 0000000000..93692699dc --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/0005-fix-mkspecs.patch @@ -0,0 +1,123 @@ +From aa0377910cfd8d0fce6bdc9355994a4e267b1696 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sat, 2 Jun 2007 16:39:58 +0200 +Subject: [PATCH] fix mkspecs + +--- + mkspecs/common/g++.conf | 18 +++++++++--------- + mkspecs/common/linux.conf | 26 +++++++++++++------------- + 2 files changed, 22 insertions(+), 22 deletions(-) + +diff --git a/mkspecs/common/g++.conf b/mkspecs/common/g++.conf +index f5a5c8e..4007c7e 100644 +--- a/mkspecs/common/g++.conf ++++ b/mkspecs/common/g++.conf +@@ -2,12 +2,12 @@ + # qmake configuration for common gcc + # + +-QMAKE_CC = gcc +-QMAKE_CFLAGS += -pipe ++QMAKE_CC = $(OE_QMAKE_CC) ++QMAKE_CFLAGS += -pipe $(OE_QMAKE_CFLAGS) + QMAKE_CFLAGS_DEPS += -M + QMAKE_CFLAGS_WARN_ON += -Wall -W + QMAKE_CFLAGS_WARN_OFF += -w +-QMAKE_CFLAGS_RELEASE += -O2 ++QMAKE_CFLAGS_RELEASE += -O2 + QMAKE_CFLAGS_DEBUG += -g + QMAKE_CFLAGS_SHLIB += -fPIC + QMAKE_CFLAGS_STATIC_LIB += -fPIC +@@ -16,8 +16,8 @@ QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden + QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} + QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE} + +-QMAKE_CXX = g++ +-QMAKE_CXXFLAGS += $$QMAKE_CFLAGS ++QMAKE_CXX = $(OE_QMAKE_CXX) ++QMAKE_CXXFLAGS += $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) + QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS + QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON + QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF +@@ -30,9 +30,9 @@ QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden + QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} + QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + +-QMAKE_LINK = g++ +-QMAKE_LINK_SHLIB = g++ +-QMAKE_LFLAGS += ++QMAKE_LINK = $(OE_QMAKE_LINK) ++QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) ++QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) + QMAKE_LFLAGS_RELEASE += + QMAKE_LFLAGS_DEBUG += + QMAKE_LFLAGS_APP += +@@ -40,7 +40,7 @@ QMAKE_LFLAGS_SHLIB += -shared + QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB + QMAKE_LFLAGS_SONAME += -Wl,-soname, + QMAKE_LFLAGS_THREAD += +-QMAKE_RPATH = -Wl,-rpath, ++QMAKE_RPATH = -Wl,-rpath-link, + + QMAKE_PCH_OUTPUT_EXT = .gch + +diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf +index 3796a87..52acf16 100644 +--- a/mkspecs/common/linux.conf ++++ b/mkspecs/common/linux.conf +@@ -7,26 +7,26 @@ QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD + + QMAKE_INCDIR = + QMAKE_LIBDIR = +-QMAKE_INCDIR_X11 = /usr/X11R6/include +-QMAKE_LIBDIR_X11 = /usr/X11R6/lib +-QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] +-QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] +-QMAKE_INCDIR_OPENGL = /usr/X11R6/include +-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib ++QMAKE_INCDIR_X11 = ++QMAKE_LIBDIR_X11 = ++QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) ++QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) ++QMAKE_INCDIR_OPENGL = ++QMAKE_LIBDIR_OPENGL = + + QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl +-QMAKE_LIBS_X11 = -lXext -lX11 -lm +-QMAKE_LIBS_X11SM = -lSM -lICE ++QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11) ++QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM) + QMAKE_LIBS_NIS = -lnsl + QMAKE_LIBS_OPENGL = -lGLU -lGL + QMAKE_LIBS_OPENGL_QT = -lGL + QMAKE_LIBS_THREAD = -lpthread + +-QMAKE_MOC = $$[QT_INSTALL_BINS]/moc +-QMAKE_UIC = $$[QT_INSTALL_BINS]/uic ++QMAKE_MOC = $(OE_QMAKE_MOC) ++QMAKE_UIC = $(OE_QMAKE_UIC) + +-QMAKE_AR = ar cqs ++QMAKE_AR = $(OE_QMAKE_AR) cqs + QMAKE_RANLIB = + + QMAKE_TAR = tar -cf +@@ -38,11 +38,11 @@ QMAKE_COPY_DIR = $(COPY) -r + QMAKE_MOVE = mv -f + QMAKE_DEL_FILE = rm -f + QMAKE_DEL_DIR = rmdir +-QMAKE_STRIP = strip ++QMAKE_STRIP = $(OE_QMAKE_STRIP) + QMAKE_STRIPFLAGS_LIB += --strip-unneeded + QMAKE_CHK_DIR_EXISTS = test -d + QMAKE_MKDIR = mkdir -p + QMAKE_INSTALL_FILE = install -m 644 -p + QMAKE_INSTALL_PROGRAM = install -m 755 -p + +-include(unix.conf) +\ No newline at end of file ++include(unix.conf) +-- +1.5.0.7 + diff --git a/packages/qt/qt4-x11-free-4.3.0/0006-freetype-host-includes.patch b/packages/qt/qt4-x11-free-4.3.0/0006-freetype-host-includes.patch new file mode 100644 index 0000000000..cc8e115fee --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/0006-freetype-host-includes.patch @@ -0,0 +1,23 @@ +From c9ab62bd9a56643574b3ae6e59e0ca776d4860d2 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Mon, 4 Jun 2007 14:48:50 +0200 +Subject: [PATCH] freetype host includes + +--- + config.tests/unix/freetype/freetype.pri | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/config.tests/unix/freetype/freetype.pri b/config.tests/unix/freetype/freetype.pri +index 84974bf..ab9a6f2 100644 +--- a/config.tests/unix/freetype/freetype.pri ++++ b/config.tests/unix/freetype/freetype.pri +@@ -1,5 +1,5 @@ + !cross_compile { +- TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH ++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH + for(p, TRY_INCLUDEPATHS) { + p = $$join(p, "", "", "/freetype2") + exists($$p):INCLUDEPATH *= $$p +-- +1.5.0.7 + diff --git a/packages/qt/qt4-x11-free-4.3.0/0007-openssl-host-includes.patch b/packages/qt/qt4-x11-free-4.3.0/0007-openssl-host-includes.patch new file mode 100644 index 0000000000..35b71d9694 --- /dev/null +++ b/packages/qt/qt4-x11-free-4.3.0/0007-openssl-host-includes.patch @@ -0,0 +1,23 @@ +From d45943adb443ad4b85ca4504952dee743c675e1e Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Mon, 4 Jun 2007 14:58:34 +0200 +Subject: [PATCH] openssl host includes + +--- + config.tests/unix/openssl/openssl.pri | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/config.tests/unix/openssl/openssl.pri b/config.tests/unix/openssl/openssl.pri +index 756e5fe..19b4061 100644 +--- a/config.tests/unix/openssl/openssl.pri ++++ b/config.tests/unix/openssl/openssl.pri +@@ -1,5 +1,5 @@ + !cross_compile { +- TRY_INCLUDEPATHS = /include /usr/include /usr/local/include $$QMAKE_INCDIR $$INCLUDEPATH ++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$INCLUDEPATH + for(p, TRY_INCLUDEPATHS) { + pp = $$join(p, "", "", "/openssl") + exists($$pp):INCLUDEPATH *= $$p +-- +1.5.0.7 + diff --git a/packages/qt/qt4-x11-free_4.1.2.bb b/packages/qt/qt4-x11-free_4.1.2.bb index 25c64379d9..32eb3ced35 100644 --- a/packages/qt/qt4-x11-free_4.1.2.bb +++ b/packages/qt/qt4-x11-free_4.1.2.bb @@ -25,18 +25,7 @@ export QTDIR = "${S}" STAGING_QT_DIR = "${STAGING_DIR}/${TARGET_SYS}/qt4" EXTRA_OEMAKE = "-e" -def qt_arch(d): - import bb, re - arch = bb.data.getVar('TARGET_ARCH', d, 1) - if re.match("^i.86$", arch): - arch = "x86" - elif re.match("^arm.*", arch): - arch = "arm" - elif arch == "x86_64": - arch = "x86" - elif arch == "mipsel": - arch = "mips" - return arch +require qt4_arch.inc QT_ARCH := "${@qt_arch(d)}" diff --git a/packages/qt/qt4-x11-free_4.3.0.bb b/packages/qt/qt4-x11-free_4.3.0.bb new file mode 100644 index 0000000000..35fa1ccd62 --- /dev/null +++ b/packages/qt/qt4-x11-free_4.3.0.bb @@ -0,0 +1,183 @@ +SECTION = "x11/libs" +PRIORITY = "optional" +HOMEPAGE = "http://www.trolltech.com" +LICENSE = "GPL QPL" +DEPENDS = "pkgconfig-native uicmoc4-native qmake2-native freetype jpeg virtual/libx11 xft libxext libxrender libxrandr libxcursor dbus openssl" +RDEPENDS_${PN} = "${NONDEV_PACKAGES}" +PROVIDES = "qt4x11" + +PR = "r5" + +SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-${PV}.tar.gz \ + file://0001-cross-compile.patch;patch=1 \ + file://0002-fix-resinit-declaration.patch;patch=1 \ + file://0003-no-tools.patch;patch=1 \ + file://0004-no-qmake.patch;patch=1 \ + file://0005-fix-mkspecs.patch;patch=1 \ + file://0006-freetype-host-includes.patch;patch=1 \ + file://0007-openssl-host-includes.patch;patch=1" +S = "${WORKDIR}/qt-x11-opensource-src-${PV}" + +PARALLEL_MAKE = "" + +inherit qmake-base qt4x11 + +export QTDIR = "${S}" +STAGING_QT_DIR = "${STAGING_DIR}/${TARGET_SYS}/qt4" +EXTRA_OEMAKE = "-e" + +require qt4_arch.inc + +QT_ARCH := "${@qt_arch(d)}" + +# FIXME: +# * add missing options +QT_CONFIG_FLAGS = "-release -shared -qt-zlib -system-libjpeg -no-nas-sound -no-sm -no-libmng -qt-libpng -no-gif -no-xinerama \ + -no-tablet -no-xkb -no-nis -no-cups -no-opengl \ + -no-sse -no-sse2 -no-mmx -no-3dnow \ + -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 \ + -qdbus \ + -verbose -stl -no-accessibility \ + -pch -no-glib" + +EXTRA_ENV = 'QMAKE="${STAGING_BINDIR_NATIVE}/qmake2 -after DEFINES+=QT_NO_XIM INCPATH+=${STAGING_INCDIR} \ + INCPATH+=${STAGING_INCDIR}/freetype2 LIBS+=-L${STAGING_LIBDIR}" \ + QMAKESPEC="${QMAKESPEC}" LINK="${CXX} -Wl,-rpath-link,${STAGING_LIBDIR}" \ + AR="${TARGET_PREFIX}ar cqs" \ + MOC="${STAGING_BINDIR_NATIVE}/moc4" UIC="${STAGING_BINDIR_NATIVE}/uic4" MAKE="make -e"' + +do_configure() { + echo "DEFINES -= QT_NO_CAST_TO_ASCII" >>src/qbase.pri + echo "DEFINES += QT_NO_XIM" >>src/qbase.pri + unset QMAKESPEC + ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake + ln -s linux-g++ mkspecs/${TARGET_OS}-oe-g++ + #export QMAKESPEC="linux-oe-g++" + #rm -rf ./mkspecs + #ln -sf ${QMAKE_MKSPEC_PATH} ./mkspecs + echo yes | ./configure -prefix / -platform ${TARGET_OS}-oe-g++ -crossarch ${QT_ARCH} ${QT_CONFIG_FLAGS} -fast \ + -L${STAGING_LIBDIR} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/freetype2 -I${STAGING_INCDIR}/mysql +} + +# FIXME: Might want to compile the cross tools for the -dev packages as well... +do_compile() { + unset CFLAGS CXXFLAGS + install -m 0755 ${STAGING_BINDIR_NATIVE}/rcc4 ${S}/bin/rcc + install -m 0755 ${STAGING_BINDIR_NATIVE}/moc4 ${S}/bin/moc + install -m 0755 ${STAGING_BINDIR_NATIVE}/uic4 ${S}/bin/uic + + oe_runmake ${EXTRA_ENV} +} + +PARTS = "3Support AssistantClient Core DBus Designer DesignerComponents Gui Network Script Sql Svg Test Xml" + +do_stage() { + oe_runmake install INSTALL_ROOT=/ + install -m 0755 ${STAGING_BINDIR_NATIVE}/rcc4 ${STAGING_QT_DIR}/bin/rcc + install -m 0755 ${STAGING_BINDIR_NATIVE}/moc4 ${STAGING_QT_DIR}/bin/moc + install -m 0755 ${STAGING_BINDIR_NATIVE}/uic4 ${STAGING_QT_DIR}/bin/uic + sed -i -e 's,^QMAKE_RPATHDIR.*,QMAKE_RPATHDIR=${STAGING_QT_DIR}/lib,g' ${STAGING_QT_DIR}/mkspecs/qconfig.pri + for pc in ${STAGING_QT_DIR}/lib/pkgconfig/Qt{AssistantClient,DBus,Test,UiTools}.pc ; do + sed -i -e 's,${S}/lib,${STAGING_QT_DIR}/lib,g' $pc + done + for pc in ${STAGING_QT_DIR}/lib/pkgconfig/*.pc ; do + install -m 0644 $pc ${PKG_CONFIG_PATH}/ + done +} + +# FIXME: Might want to call oe_runmake install INSTALL_ROOT=${D}/${prefix} as well... +# FIXME: Might want to install everything into ${libdir}/qt4/* to match the usual packing... +do_install() { + install -d ${D}${libdir} + install -d ${D}${bindir} + install -d ${D}${includedir} + for part in ${PARTS} + do + oe_libinstall -so -C lib libQt$part ${D}${libdir} + done + oe_libinstall -a -C lib libQtUiTools ${D}${libdir} + cp -pPR include/* ${D}${includedir} + cp -pPR plugins ${D}${libdir} + cp -pPR bin/* ${D}${bindir} + + install -d ${D}${bindir}/qt4-examples + for binary in `find examples -perm 0755 -type f` + do + install -m 0755 $binary ${D}${bindir}/qt4-examples/ + done + install -d ${D}${bindir}/qt4-demos + for binary in `find demos -perm 0755 -type f` + do + install -m 0755 $binary ${D}${bindir}/qt4-demos/ + done + rm ${D}${bindir}/rcc ${D}${bindir}/uic ${D}${bindir}/moc +} + +NONDEV_PACKAGES = "libqtcore4 libqtgui4 libqtnetwork4 \ + libqtsql4 libqtsvg4 libqttest4 \ + libqtxml4 \ + libqtdesigner4 libqtdesignercomponents4 \ + libqt3support4 \ + libqtassistantclient4 libqtscript4 \ + libqtdbus4 \ + qt4-assistant qt4-common qt4-designer qt4-demos qt4-examples qt4-linguist \ + qt4-pixeltool qt4-dbus \ + qt4-plugins-accessible qt4-plugins-codecs qt4-plugins-designer qt4-plugins-imageformats qt4-plugins-sqldrivers \ + qt4-plugins-inputmethods qt4-plugins-iconengines" + +PACKAGES += "libqtcore4-dev libqtgui4-dev libqtnetwork4-dev libqtsql4-dev libqtsvg4-dev libqttest4-dev \ + libqtxml4-dev libqtdesigner4-dev libqtdesignercomponents4-dev libqt3support4-dev \ + libqtassistantclient4-dev libqtscript4-dev libqtdbus4-dev \ + ${NONDEV_PACKAGES}" + +ALLOW_EMPTY = "1" +FILES_${PN} = "" + +FILES_libqtcore4 = "${libdir}/libQtCore.so.*" +FILES_libqtcore4-dev = "${libdir}/libQtCore.so" +FILES_libqtgui4 = "${libdir}/libQtGui.so.*" +FILES_libqtgui4-dev = "${libdir}/libQtGui.so" +FILES_libqtnetwork4 = "${libdir}/libQtNetwork.so.*" +FILES_libqtnetwork4-dev = "${libdir}/libQtNetwork.so" +FILES_libqtsql4 = "${libdir}/libQtSql.so.*" +FILES_libqtsql4-dev = "${libdir}/libQtSql.so" +FILES_libqtsvg4 = "${libdir}/libQtSvg.so.*" +FILES_libqtsvg4-dev = "${libdir}/libQtSvg.so" +FILES_libqttest4 = "${libdir}/libQtTest.so.*" +FILES_libqttest4-dev = "${libdir}/libQtTest.so" +FILES_libqtxml4 = "${libdir}/libQtXml.so.*" +FILES_libqtxml4-dev = "${libdir}/libQtXml.so" +FILES_libqtdesigner4 = "${libdir}/libQtDesigner.so.*" +FILES_libqtdesigner4-dev = "${libdir}/libQtDesigner.so" +FILES_libqtdesignercomponents4 = "${libdir}/libQtDesignerComponents.so.*" +FILES_libqtdesignercomponents4-dev = "${libdir}/libQtDesignerComponents.so" +FILES_libqt3support4 = "${libdir}/libQt3Support.so.*" +FILES_libqt3support4-dev = "${libdir}/libQt3Support.so" +FILES_libqtassistantclient4 = "${libdir}/libQtAssistantClient.so.*" +FILES_libqtassistantclient4-dev = "${libdir}/libQtAssistantClient.so" +FILES_libqtscript4 = "${libdir}/libQtScript.so.*" +FILES_libqtscript4-dev = "${libdir}/libQtScript.so" +FILES_libqtdbus4 = "${libdir}/libQtDBus.so.*" +FILES_libqtdbus4-dev = "${libdir}/libQtDBus.so" + +FILES_qt4-plugins-accessible = "${libdir}/plugins/accessible/*.so" +FILES_qt4-plugins-codecs = "${libdir}/plugins/codecs/*.so" +FILES_qt4-plugins-designer = "${libdir}/plugins/designer/*.so" +FILES_qt4-plugins-imageformats = "${libdir}/plugins/imageformats/*.so" +FILES_qt4-plugins-sqldrivers = "${libdir}/plugins/sqldrivers/*.so" +FILES_qt4-plugins-inputmethods = "${libdir}/plugins/inputmethods/*.so" +FILES_qt4-plugins-iconengines = "${libdir}/plugins/iconengines/*.so" + +FILES_qt4-assistant = "${bindir}/*assistant*" +FILES_qt4-designer = "${bindir}/*designer*" +FILES_qt4-linguist = "${bindir}/*linguist* ${bindir}/lrelease ${bindir}/lupdate ${bindir}/qm2ts" +FILES_qt4-pixeltool = "${bindir}/pixeltool" +FILES_qt4-dbus = "${bindir}/qdbus ${bindir}/qdbusxml2cpp ${bindir}/qdbuscpp2xml ${bindir}/qdbusviewer" + +FILES_qt4-common = "${bindir}/qtconfig" +FILES_qt4-examples = "${bindir}/qt4-examples/*" +FILES_qt4-demos = "${bindir}/qtdemo ${bindir}/qt4-demos/*" + +FILES_${PN}-dev += "${bindir}/rcc ${bindir}/uic* ${bindir}/moc ${bindir}/qmake ${bindir}/syncqt \ + ${bindir}/qt3to4 ${bindir}/findtr" +FILES_${PN}-dbg += "${bindir}/*/.debug ${plugindir}/.debug" diff --git a/packages/qt/qt4_arch.inc b/packages/qt/qt4_arch.inc new file mode 100644 index 0000000000..11bfed8a1c --- /dev/null +++ b/packages/qt/qt4_arch.inc @@ -0,0 +1,13 @@ +def qt_arch(d): + import bb, re + arch = bb.data.getVar('TARGET_ARCH', d, 1) + if re.match("^i.86$", arch): + arch = "x86" + elif re.match("^arm.*", arch): + arch = "arm" + elif arch == "x86_64": + arch = "x86" + elif arch == "mipsel": + arch = "mips" + return arch + diff --git a/packages/quake/quetoo_0.6.1.bb b/packages/quake/quetoo_0.6.1.bb new file mode 100644 index 0000000000..9428f501f4 --- /dev/null +++ b/packages/quake/quetoo_0.6.1.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "Initially a fork of the Quake2Forge project, this engine aims to provide security and performance enhancements." +LICENSE = "GPLv2" + +DEPENDS = "libsdl-x11 zlib mesa" +SRC_URI = "http://tastyspleen.net/~jdolan/quetoo-${PV}-full.tar.bz2" + +inherit autotools pkgconfig + + +EXTRA_OECONF = "\ + --with-sdl \ + --with-zlib \ + " + +do_configure() { + gnu-configize + libtoolize --force + oe_runconf + rm config.log +} + +do_install_append() { + mv ${D}${bindir}/${TARGET_PREFIX}quetoo ${D}${bindir}/quetoo +} + +FILES_${PN}-dbg += "${libdir}/quetoo/baseq2/.debug" diff --git a/packages/rfakeap/rfakeap_0.2.bb b/packages/rfakeap/rfakeap_0.2.bb index 1854e20286..702399e0f5 100644 --- a/packages/rfakeap/rfakeap_0.2.bb +++ b/packages/rfakeap/rfakeap_0.2.bb @@ -2,7 +2,6 @@ SECTION = "console/network" DESCRIPTION = "Raw Fake AP" HOMEPAGE = "http://rfakeap.tuxfamily.org/" LICENSE = "GPLv2" -MAINTAINER = "Zero_Chaos <sidhayn@hotmail.com>" DEPENDS = "libpcap" PV="0.2" PR="r1" diff --git a/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch b/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch index 4ea5908737..381a44d303 100644 --- a/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch +++ b/packages/rp-pppoe/rp-pppoe-3.8/configure_in_cross.patch @@ -1,26 +1,63 @@ ---- rp-pppoe-3.8/src/configure.in 2007/04/30 07:21:25 1.1 -+++ rp-pppoe-3.8/src/configure.in 2007/04/30 07:22:06 -@@ -5,6 +5,12 @@ +Index: src/configure.in +=================================================================== +--- rp-pppoe-3.8.orig/src/configure.in 2006-04-03 00:29:42.000000000 +1000 ++++ rp-pppoe-3.8/src/configure.in 2007-06-07 22:19:36.000000000 +1000 +@@ -5,6 +5,13 @@ dnl pppd directory for kernel-mode PPPoE PPPD_DIR=ppp-2.4.1.pppoe2 +dnl hard code some paths +PPPD=/usr/sbin/pppd +ID=/usr/bin/id ++ECHO=/bin/echo +AC_ARG_VAR(PPPD) +AC_ARG_VAR(ID) + AC_CONFIG_HEADER(config.h) AC_PREFIX_DEFAULT(/usr) -@@ -131,15 +137,10 @@ +@@ -44,7 +51,7 @@ + AC_MSG_RESULT($ac_cv_struct_sockaddr_ll) + + if test "$ac_cv_struct_sockaddr_ll" = yes ; then +-AC_DEFINE(HAVE_STRUCT_SOCKADDR_LL) ++AC_DEFINE([HAVE_STRUCT_SOCKADDR_LL], [], [Have struct SOCKADDR_LL]) + fi + + dnl Check for N_HDLC line discipline +@@ -55,7 +62,7 @@ + ac_cv_n_hdlc=no) + AC_MSG_RESULT($ac_cv_n_hdlc) + if test "$ac_cv_n_hdlc" = yes ; then +-AC_DEFINE(HAVE_N_HDLC) ++AC_DEFINE([HAVE_N_HDLC], [], [Have N_HDLC]) + fi + + AC_ARG_ENABLE(plugin, [ --enable-plugin=pppd_src_path build pppd plugin], ac_cv_pluginpath=$enableval, ac_cv_pluginpath=no) +@@ -100,13 +107,13 @@ + if test "$ac_cv_header_linux_if_pppox_h" = yes ; then + if test "$ac_cv_pluginpath" != no ; then + LINUX_KERNELMODE_PLUGIN=rp-pppoe.so +- AC_DEFINE(HAVE_LINUX_KERNEL_PPPOE) ++ AC_DEFINE([HAVE_LINUX_KERNEL_PPPOE], [], [Have kernel PPPoE]) + PPPD_INCDIR=$ac_cv_pluginpath + fi + fi + + if test "$ac_cv_debugging" = "yes" ; then +- AC_DEFINE(DEBUGGING_ENABLED) ++ AC_DEFINE([DEBUGGING_ENABLED], [], [Debugging enabled]) + fi + + AC_SUBST(LINUX_KERNELMODE_PLUGIN) +@@ -131,15 +138,8 @@ AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned long) -dnl Check for location of pppd -AC_PATH_PROG(PPPD, pppd, NOTFOUND, $PATH:/sbin:/usr/sbin:/usr/local/sbin) - AC_PATH_PROG(ECHO, echo, echo) - +-AC_PATH_PROG(ECHO, echo, echo) +- -dnl Check for setsid (probably Linux-specific) -AC_PATH_PROG(SETSID, setsid, "", $PATH:/sbin:/usr/sbin:/usr/local/sbin) - @@ -30,7 +67,7 @@ dnl Check for Linux-specific kernel support for PPPoE AC_MSG_CHECKING(for Linux 2.4.X kernel-mode PPPoE support) -@@ -183,44 +184,8 @@ +@@ -183,44 +183,8 @@ CFLAGS="$CFLAGS -Wall -Wstrict-prototypes -ansi" fi @@ -76,7 +113,7 @@ AC_TRY_RUN([ union foo { struct bar { -@@ -245,6 +210,7 @@ +@@ -245,10 +209,11 @@ } }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev, $ECHO "no defaults for cross-compiling"; exit 0) @@ -84,3 +121,16 @@ if test "$rpppoe_cv_pack_bitfields" = "rev" ; then AC_MSG_RESULT(reversed) +- AC_DEFINE(PACK_BITFIELDS_REVERSED) ++ AC_DEFINE([PACK_BITFIELDS_REVERSED], [], [Reversed bitfields]) + else + AC_MSG_RESULT(normal) + fi +@@ -312,6 +277,7 @@ + AC_SUBST(RDYNAMIC) + AC_SUBST(LIBEVENT) + AC_SUBST(ECHO) ++AC_SUBST(HAVE_STRUCT_SOCKADDR_LL) + + datadir_evaluated=`eval echo $datadir` + AC_SUBST(datadir_evaluated) diff --git a/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.default b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.default new file mode 100644 index 0000000000..996d57f3cf --- /dev/null +++ b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.default @@ -0,0 +1,22 @@ +# PPPoE Server options + +# Maximum segment size, not used for in kernel PPPoE +#MSS=1412 + +# Device(s) - Space seperated list of devices to listen on +#DEVICES="eth1" + +# Local IP +#LOCAL_IP=10.0.0.1 + +# Starting remote IP +#REMOTE_IP=10.67.15.1 + +# Service name +#SERVICE_NAME="acme" + +# Maximum number of sessions, default is 16 +#MAX_SESSIONS=64 + +# Access concentrator name, default is the hostname +#ACCESS_CONCENTRATOR_NAME="pppoe-rtr-1" diff --git a/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.init b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.init new file mode 100755 index 0000000000..21afe0be39 --- /dev/null +++ b/packages/rp-pppoe/rp-pppoe-3.8/pppoe-server.init @@ -0,0 +1,59 @@ +#! /bin/sh + +test -f /usr/sbin/pppoe-server || exit 0 +test -f /etc/default/pppoe-server && . /etc/default/pppoe-server + +case $1 in + start) + OPTIONS="" + if [ -n "$MSS" ]; then + OPTIONS="$OPTIONS -m $MSS" + fi + if [ -n "$DEVICES" ]; then + for i in $DEVICES; do + OPTIONS="$OPTIONS -I $i" + done + fi + if [ -n "$LOCAL_IP" ]; then + OPTIONS="$OPTIONS -L $LOCAL_IP" + fi + if [ -n "$REMOTE_IP" ]; then + OPTIONS="$OPTIONS -R $REMOTE_IP" + fi + if [ -n "$SERVICE_NAME" ]; then + OPTIONS="$OPTIONS -S $SERVICE_NAME" + fi + if [ -n "$MAX_SESSIONS" ]; then + OPTIONS="$OPTIONS -N $MAX_SESSIONS" + fi + if [ -n "$ACCESS_CONCENTRATOR_NAME" ]; then + OPTIONS="$OPTIONS -C $ACCESS_CONCENTRATOR_NAME" + fi + echo -n "Starting PPPoE server: pppoe-server" + start-stop-daemon --start --quiet --exec /usr/sbin/pppoe-server -- $OPTIONS + echo "." + ;; + stop) + echo -n "Stopping PPPoE server: pppoe-server" + start-stop-daemon --stop --quiet --exec /usr/sbin/pppoe-server -- $OPTIONS + echo "." + ;; + status) + pid=$(pidof pppoe-server) + if [ -n "$pid" ] ; then + echo "Running with pid $pid" + else + echo "Not running" + fi + ;; + restart|force-reload) + $0 stop + $0 start + ;; + *) + echo "Usage: /etc/init.d/pppoe-server {start|stop|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 diff --git a/packages/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch b/packages/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch new file mode 100644 index 0000000000..e3b0482984 --- /dev/null +++ b/packages/rp-pppoe/rp-pppoe-3.8/top-autoconf.patch @@ -0,0 +1,25 @@ +The autoconf stuff is all in a subdirectory, which is rather annoying +as OE expects patches to be applied and autoconf stuff to be done in +S. This adds enough autoconf at the top level to allow it to be +called there - all it does is run a sub autoconf stuff in the src +directory. + +Index: rp-pppoe-3.8/Makefile.am +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rp-pppoe-3.8/Makefile.am 2007-06-08 15:58:16.000000000 +1000 +@@ -0,0 +1,5 @@ ++PACKAGE = rp-pppoe ++VERSION = 3.8 ++ ++dnl AM_CFLAGS = -Wall -DDEBUG ++SUBDIRS = src +Index: rp-pppoe-3.8/configure.in +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ rp-pppoe-3.8/configure.in 2007-06-08 15:58:16.000000000 +1000 +@@ -0,0 +1,4 @@ ++AC_INIT(src/pppoe.c) ++AM_INIT_AUTOMAKE([rp-pppoe], [3.8]) ++AC_CONFIG_SUBDIRS(src) ++AC_OUTPUT(Makefile) diff --git a/packages/rp-pppoe/rp-pppoe-3.8/update-config.patch b/packages/rp-pppoe/rp-pppoe-3.8/update-config.patch new file mode 100644 index 0000000000..5642e3cfee --- /dev/null +++ b/packages/rp-pppoe/rp-pppoe-3.8/update-config.patch @@ -0,0 +1,30 @@ +Set the timeout to 0 since we don't want pppoe to try reconnecting, +we want whatever is calling it to reconnect. Lots of odd things +happen when you have pppoe retrying itself. + +The path for the plugin is wrong, it's now part of ppp and is in a +ppp's plugin lib directory. If no path is specified then that's where +ppp looks, so that's what we do here. + +Index: rp-pppoe-3.8/configs/pppoe.conf +=================================================================== +--- rp-pppoe-3.8.orig/configs/pppoe.conf 2006-04-03 00:29:41.000000000 +1000 ++++ rp-pppoe-3.8/configs/pppoe.conf 2007-06-08 16:02:47.000000000 +1000 +@@ -66,7 +66,7 @@ + # to connect forever after pppoe-start is called. Otherwise, it will + # give out after CONNECT_TIMEOUT seconds and will not attempt to + # connect again, making it impossible to reach. +-CONNECT_TIMEOUT=30 ++CONNECT_TIMEOUT=0 + + # How often in seconds pppoe-start polls to check if link is up + CONNECT_POLL=2 +@@ -115,7 +115,7 @@ + FIREWALL=NONE + + # Linux kernel-mode plugin for pppd. If you want to try the kernel-mode +-# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so ++# plugin, use LINUX_PLUGIN=rp-pppoe.so + LINUX_PLUGIN= + + # Any extra arguments to pass to pppoe. Normally, use a blank string diff --git a/packages/rp-pppoe/rp-pppoe_3.8.bb b/packages/rp-pppoe/rp-pppoe_3.8.bb index c4d5ff88d2..35faf8839b 100644 --- a/packages/rp-pppoe/rp-pppoe_3.8.bb +++ b/packages/rp-pppoe/rp-pppoe_3.8.bb @@ -2,28 +2,54 @@ DESCRIPTION = "A user-mode PPPoE client and server suite for Linux" HOMEPAGE = "http://www.roaringpenguin.com/en/penguin/openSourceProducts/rpPppoe" SECTION = "console/network" LICENSE = "GPLv2" -RDEPENDS = "ppp" -PR = "r0" +RDEPENDS_${PN} = "ppp" +RDEPENDS_${PN}-server = "${PN}" +RRECOMMENDS_${PN} = "ppp-oe" +PR = "r5" SRC_URI = "http://www.roaringpenguin.com/files/download/${P}.tar.gz \ - file://configure_in_cross.patch;patch=1;pnum=2 \ - file://pppoe-src-restrictions.patch;patch=1;pnum=2" + file://top-autoconf.patch;patch=1 \ + file://configure_in_cross.patch;patch=1 \ + file://pppoe-src-restrictions.patch;patch=1 \ + file://update-config.patch;patch=1 \ + file://pppoe-server.default \ + file://pppoe-server.init" -S = "${WORKDIR}/${P}/src" - -inherit autotools +inherit autotools update-rc.d do_install() { - # Set timeout to 0. Fixes lots of reconnect issues - # Can't patch this in because it's outside of what we have {S} set to. - sed -i -e 's,\(CONNECT_TIMEOUT=\)30,\10,g' ${S}/../configs/pppoe.conf + # Install init script and default settings + install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d + install -m 0644 ${WORKDIR}/pppoe-server.default ${D}${sysconfdir}/default/pppoe-server + install -m 0755 ${WORKDIR}/pppoe-server.init ${D}${sysconfdir}/init.d/pppoe-server # Install oe_runmake -C ${S} RPM_INSTALL_ROOT=${D} docdir=${docdir} install } -pkg_postinst() { +# Insert server package before main package +PACKAGES = "${PN}-dbg ${PN}-server ${PN}-relay ${PN}-sniff ${PN} ${PN}-doc" + +FILES_${PN}-server = "${sysconfdir}/default/pppoe-server \ + ${sysconfdir}/init.d/pppoe-server \ + ${sbindir}/pppoe-server \ + ${sysconfdir}/ppp/pppoe-server-options" +FILES_${PN}-relay = "${sbindir}/pppoe-relay" +FILES_${PN}-sniff = "${sbindir}/pppoe-sniff" + +pkg_postinst_${PN} () { if [ x"$D" != "x" ]; then exit 1 fi chmod 4755 ${sbindir}/pppoe } + +CONFFILES_${PN} = "${sysconfdir}/ppp/pppoe.conf \ + ${sysconfdir}/ppp/firewall-standalone \ + ${sysconfdir}/ppp/firewall-masq" +CONFFILES_${PN}-server = "${sysconfdir}/ppp/pppoe-server-options \ + ${sysconfdir}/default/pppoe-server" + +INITSCRIPT_PACKAGES = "${PN}-server" +INITSCRIPT_NAME_${PN}-server = "pppoe-server" +INITSCRIPT_PARAMS_${PN}-server = "defaults 92 08" + diff --git a/packages/rt2x00/rt2570-k2wrlz_1.6.0.bb b/packages/rt2x00/rt2570-k2wrlz_1.6.0.bb new file mode 100644 index 0000000000..b22a3955a6 --- /dev/null +++ b/packages/rt2x00/rt2570-k2wrlz_1.6.0.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Driver for Ralink rt2570 USB 802.11g WiFi sticks" +HOMEPAGE = "http://rt2x00.serialmonkey.com/" +SECTION = "kernel/modules" +LICENSE = "GPL" + +SRC_URI = "http://homepages.tu-darmstadt.de/~p_larbig/wlan/${PN}-${PV}.tar.bz2" + +inherit module + +S = "${WORKDIR}/${PN}-${PV}/Module/" + +EXTRA_OEMAKE = "KERNDIR=${STAGING_KERNEL_DIR}" + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra + install -m 0644 rt2570${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra/ +} diff --git a/packages/rt2x00/rt73-k2wrlz_1.0.0.bb b/packages/rt2x00/rt73-k2wrlz_1.0.0.bb new file mode 100644 index 0000000000..764f779cbd --- /dev/null +++ b/packages/rt2x00/rt73-k2wrlz_1.0.0.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Enhanced Driver for Ralink rt73 USB 802.11g WiFi sticks" +HOMEPAGE = "http://homepages.tu-darmstadt.de/~p_larbig/wlan" +SECTION = "kernel/modules" +LICENSE = "GPL" + +SRC_URI= "http://homepages.tu-darmstadt.de/~p_larbig/wlan/rt73-k2wrlz-1.0.0.tar.bz2" +inherit module + +S = "${WORKDIR}/${PN}-${PV}/Module/" + +do_compile() { + export KERNDIR=${STAGING_KERNEL_DIR} + module_do_compile +} + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra + install -m 0644 rt73${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra/ +} diff --git a/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb b/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb index ee8534dc01..f53d175a80 100644 --- a/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb +++ b/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb @@ -2,7 +2,6 @@ DESCRIPTION = "Boots a S3C2410 device with a user supplied kernel zImage" DEPENDS = "libusb-native" SECTION = "devel" AUTHOR = "Harald Welte" -MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" LICENSE = "GPL" PR = "r0" diff --git a/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb b/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb index 53b2d0c8e0..0ec6642dc2 100644 --- a/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb +++ b/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb @@ -1,7 +1,6 @@ DESCRIPTION = "Jtag utility to interface w/ a S3C2410 device" SECTION = "devel" AUTHOR = "Harald Welte" -MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>" LICENSE = "GPL" PR = "r1" diff --git a/packages/salsa-lib/.mtn2git_empty b/packages/salsa-lib/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/salsa-lib/.mtn2git_empty diff --git a/packages/salsa-lib/salsa-lib_0.0.1.bb b/packages/salsa-lib/salsa-lib_0.0.1.bb new file mode 100644 index 0000000000..474c4d40dd --- /dev/null +++ b/packages/salsa-lib/salsa-lib_0.0.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Small ALSA library replacement for embedded system" +AUTHOR = "Takashi Iwai <tiwai@suse.de>" +HOMEPAGE = "http://www.alsa-project.org" +SECTION = "libs/multimedia" +LICENSE = "LGPL" +SRC_URI = "ftp://ftp.suse.com/pub/people/tiwai/salsa-lib/salsa-lib-${PV}.tar.bz2" + +# as it overwrite alsa.pc only use if sure. +DEFAULT_PREFERRENCE = "-1" + +inherit autotools pkgconfig + diff --git a/packages/scummvm/scummvm-qpe_0.6.1b.bb b/packages/scummvm/scummvm-qpe_0.6.1b.bb index 44035e633c..b66d58671a 100644 --- a/packages/scummvm/scummvm-qpe_0.6.1b.bb +++ b/packages/scummvm/scummvm-qpe_0.6.1b.bb @@ -1,7 +1,8 @@ require scummvm.inc -DEPENDS = "libsdl-qpe libmad tremor libogg zlib libmpeg2" -S="${WORKDIR}/scummvm-${PV}/" +DEPENDS = "libsdl-qpe libmad tremor libogg zlib mpeg2dec" + +S = "${WORKDIR}/scummvm-${PV}/" do_compile() { oe_runmake CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS} -lmpeg2" \ diff --git a/packages/scummvm/scummvm.inc b/packages/scummvm/scummvm.inc index 24b1e5a12a..28257fab4b 100644 --- a/packages/scummvm/scummvm.inc +++ b/packages/scummvm/scummvm.inc @@ -3,7 +3,7 @@ SECTION = "games" PRIORITY = "optional" LICENSE = "GPL" -SRC_URI = "http://puzzle.dl.sourceforge.net/scummvm/scummvm-${PV}.tar.bz2" +SRC_URI = "${SOURCEFORGE_MIRROR}/scummvm/scummvm-${PV}.tar.bz2" inherit autotools diff --git a/packages/scummvm/scummvm_0.6.0.bb b/packages/scummvm/scummvm_0.6.0.bb index 1aecd20bc4..852ca5ff1e 100644 --- a/packages/scummvm/scummvm_0.6.0.bb +++ b/packages/scummvm/scummvm_0.6.0.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Virtual Machine for LucasArts Adventures for Qt/Embedded based palmtop environments w/ SDL." SECTION = "opie/games" PRIORITY = "optional" -DEPENDS = "libsdl-qpe libmad tremor libogg zlib libmpeg2" +DEPENDS = "libsdl-qpe libmad tremor libogg zlib mpeg2dec" LICENSE = "GPL" SRC_URI = "${SOURCEFORGE_MIRROR}/scummvm/scummvm-${PV}.tar.bz2 \ diff --git a/packages/scummvm/scummvm_0.6.1b.bb b/packages/scummvm/scummvm_0.6.1b.bb index 67762708a9..a1d3dce944 100644 --- a/packages/scummvm/scummvm_0.6.1b.bb +++ b/packages/scummvm/scummvm_0.6.1b.bb @@ -1,5 +1,5 @@ require scummvm.inc -DEPENDS = "virtual/libsdl libmad tremor libogg zlib libmpeg2" +DEPENDS = "virtual/libsdl libmad tremor libogg zlib mpeg2dec" SRC_URI += " file://mouse.patch;patch=1 \ file://gcc-4.x.x-accept.patch;patch=1 \ file://sh3-linux-new-arch.patch;patch=1 \ diff --git a/packages/scummvm/scummvm_0.9.0.bb b/packages/scummvm/scummvm_0.9.0.bb index 9719ee200e..0403e6ae90 100644 --- a/packages/scummvm/scummvm_0.9.0.bb +++ b/packages/scummvm/scummvm_0.9.0.bb @@ -1,5 +1,5 @@ require scummvm.inc -DEPENDS = "virtual/libsdl libmad libvorbis libogg zlib libmpeg2" +DEPENDS = "virtual/libsdl libmad libvorbis libogg zlib mpeg2dec" SRC_URI += "file://sh3-arch-0.9.0+.patch;patch=1" EXTRA_OECONF += "--enable-lure \ diff --git a/packages/scummvm/scummvm_0.9.1.bb b/packages/scummvm/scummvm_0.9.1.bb new file mode 100644 index 0000000000..5d1e2c1e27 --- /dev/null +++ b/packages/scummvm/scummvm_0.9.1.bb @@ -0,0 +1,16 @@ +DEFAULT_PREFERENCE = "-1" + +require scummvm.inc +DEPENDS = "virtual/libsdl libmad libvorbis libogg zlib mpeg2dec" + +EXTRA_OECONF += "--enable-lure \ + --enable-agi \ + --enable-cine \ + " + +do_compile() { + oe_runmake CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS} -lmpeg2" \ + DEFINES="-DUNIX -DSCUMM_NEED_ALIGNMENT -DUSE_MAD -DUSE_VORBIS -DUSE_ZLIB -DUSE_MPEG2" +} + + 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/slugos-init/files/turnup b/packages/slugos-init/files/turnup index c852f911c8..10bccb8279 100644 --- a/packages/slugos-init/files/turnup +++ b/packages/slugos-init/files/turnup @@ -8,9 +8,93 @@ # configuration # The following variables control which directories in /var end # up on the rootfs and which end up in a temporary file system. -INRAM_MEMSTICK="/var/cache /var/lock /var/log /var/run /var/tmp /var/lib/ipkg" -INRAM_NFS="/var/cache /var/lock /var/run /var/tmp" -INRAM_DISK="" +INRAM_MEMSTICK="\ +### SlugOS from-memory-stick boot. +d root root 0755 /var/backups none +d root root 0755 /var/volatile/cache none +l root root 0755 /var/cache /var/volatile/cache +d root root 0755 /var/lib none +d root root 2755 /var/local none +d root root 1777 /var/volatile/lock none +l root root 1777 /var/lock /var/volatile/lock +d root root 0755 /var/volatile/log none +l root root 0755 /var/log /var/volatile/log +d root root 0755 /var/volatile/run none +l root root 0755 /var/run /var/volatile/run +d root root 0755 /var/spool none +d root root 1777 /var/volatile/tmp none +l root root 1777 /var/tmp /var/volatile/tmp +d root root 0755 /var/lock/subsys none +d root root 0755 /var/lib/dropbear none +d root root 0755 /var/lib/misc none +f root root 0664 /var/log/wtmp none +f root root 0664 /var/run/utmp none" + +INRAM_NFS="\ +### SlugOS from-NFS boot. +d root root 0755 /var/backups none +d root root 0755 /var/volatile/cache none +l root root 0755 /var/cache /var/volatile/cache +d root root 0755 /var/lib none +d root root 2755 /var/local none +d root root 1777 /var/volatile/lock none +l root root 1777 /var/lock /var/volatile/lock +d root root 0755 /var/log none +d root root 0755 /var/volatile/run none +l root root 0755 /var/run /var/volatile/run +d root root 0755 /var/spool none +d root root 1777 /var/volatile/tmp none +l root root 1777 /var/tmp /var/volatile/tmp +d root root 0755 /var/lock/subsys none +d root root 0755 /var/lib/dropbear none +d root root 0755 /var/lib/misc none +d root root 0755 /var/lib/ipkg none +f root root 0664 /var/log/wtmp none +f root root 0664 /var/run/utmp none" + +INRAM_DISK="\ +### SlugOS from-disk boot. +d root root 0755 /var/backups none +d root root 0755 /var/cache none +d root root 0755 /var/lib none +d root root 2755 /var/local none +d root root 1777 /var/lock none +d root root 0755 /var/log none +d root root 0755 /var/run none +d root root 0755 /var/spool none +d root root 1777 /var/tmp none +d root root 0755 /var/lock/subsys none +d root root 0755 /var/lib/dropbear none +d root root 0755 /var/lib/misc none +d root root 0755 /var/lib/ipkg none +f root root 0664 /var/log/wtmp none +f root root 0664 /var/run/utmp none" + +INRAM_HEADER="\ +# This configuration file lists filesystem objects that should get verified +# during startup and be created if missing. +# +# Every line must either be a comment starting with # +# or a definition of format: +# <type> <owner> <group> <mode> <path> <linksource> +# where the items are separated by whitespace ! +# +# <type> : d|f|l : (d)irectory|(f)ile|(l)ink +# +# A linking example: +# l root root 0777 /var/test /tmp/testfile +# f root root 0644 /var/test none +# +# Understanding links: +# When populate-volatile is to verify/create a directory or file, it will first +# check it's existence. If a link is found to exist in the place of the target, +# the path of the target is replaced with the target the link points to. +# Thus, if a link is in the place to be verified, the object will be created +# in the place the link points to instead. +# This explains the order of \"link before object\" as in the example above, where +# a link will be created at /var/test pointing to /tmp/testfile and due to this +# link the file defined as /var/test will actually be created as /tmp/testfile. +#" # # force: override certain checks @@ -209,7 +293,6 @@ setup_bootdev() { # Removes the /var tmpfs entry from /etc/fstab. # Creates links from /var into /media/ram for NFS and Memstick. setup_var() { - local ram_targets directory test -n "$1" -a -d "$1"/var || { echo "turnup: setup_var($1,$2): expected a directory" >&2 @@ -220,35 +303,30 @@ setup_var() { *) echo "turnup: setup_var($1,$2): expected 'disk', 'nfs' or 'memstick'" >&2 return 1;; esac - # - # populate /var, there is a shell script to do this, but it uses - # absolute path names - chroot "$1" /bin/busybox sh /etc/init.d/populate-volatile.sh || { - echo "turnup: /var: could not populate directory" >&2 - return 1 - } + # populate /var. We just need to create the /var/volatile mount + # point, the populate-volatile script does the work at boot time. + echo "turnup: ensuring /var/volatile mountpoint exists" + test -d "$1"/var/volatile || mkdir "$1"/var/volatile + + # we need to put in place the correct configuration file for + # the populate-volatile script to use at boot time. The config + # file is already in place for the flash boot, and it's the same + # file for the ram boot. case "$2" in - disk) ram_targets="$INRAM_DISK";; - nfs) ram_targets="$INRAM_NFS";; - memstick) - ram_targets="$INRAM_MEMSTICK";; + disk) echo "$INRAM_HEADER" > "$1"/etc/default/volatiles/00_core + echo "$INRAM_DISK" >>"$1"/etc/default/volatiles/00_core;; + nfs) echo "$INRAM_HEADER" > "$1"/etc/default/volatiles/00_core + echo "$INRAM_NFS" >>"$1"/etc/default/volatiles/00_core;; + memstick) echo "$INRAM_HEADER" > "$1"/etc/default/volatiles/00_core + echo "$INRAM_MEMSTICK" >>"$1"/etc/default/volatiles/00_core;; esac - for directory in $ram_targets - do - rm -rf "$1/$directory" - ln -s "/media/ram/$directory" "$1/$directory" - done - # the startup link is left for the moment, this seems safer - #rm "$1"/etc/rc?.d/[KS]??populate-var.sh - # remove the /var tmpfs entry from the new /etc/fstab + # remove the /var tmpfs entry from the new /etc/fstab, if it is + # present in the first place. sed -i '\@[ ]/var[ ][ ]*tmpfs[ ]@d' "$1"/etc/fstab - echo "turnup: tmpfs will no longer be mounted on /var" >&2 + echo "turnup: ensuring tmpfs will not be mounted on /var" >&2 # - # Previous versions of turnup removed populate-var.sh from the - # startup links, this one doesn't, so /var can be made back into - # a tmpfs just by a change to /etc/fstab. return 0 } diff --git a/packages/slugos-init/slugos-init_0.10.bb b/packages/slugos-init/slugos-init_0.10.bb index ac6f6c3ac0..77e1efb314 100644 --- a/packages/slugos-init/slugos-init_0.10.bb +++ b/packages/slugos-init/slugos-init_0.10.bb @@ -4,7 +4,7 @@ PRIORITY = "required" LICENSE = "GPL" DEPENDS = "base-files devio" RDEPENDS = "busybox devio" -PR = "r83" +PR = "r84" SRC_URI = "file://boot/flash \ file://boot/disk \ diff --git a/packages/sqlite/sqlite3-3.3.17/.mtn2git_empty b/packages/sqlite/sqlite3-3.3.17/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/sqlite/sqlite3-3.3.17/.mtn2git_empty diff --git a/packages/sqlite/sqlite3-3.3.17/libtool.patch b/packages/sqlite/sqlite3-3.3.17/libtool.patch new file mode 100644 index 0000000000..ccf9993ed2 --- /dev/null +++ b/packages/sqlite/sqlite3-3.3.17/libtool.patch @@ -0,0 +1,25 @@ +Index: sqlite-3.2.1/Makefile.in +=================================================================== +--- sqlite-3.2.1.orig/Makefile.in 2005-03-23 17:09:39.000000000 +0100 ++++ sqlite-3.2.1/Makefile.in 2005-04-25 23:11:20.000000000 +0200 +@@ -15,7 +15,10 @@ + # The toplevel directory of the source tree. This is the directory + # that contains this "Makefile.in" and the "configure.in" script. + # +-TOP = @srcdir@ ++TOP = $(srcdir) ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++top_builddir = . + + # C Compiler and options for use in building executables that + # will run on the platform that is doing the build. +@@ -96,7 +99,7 @@ + exec_prefix = @exec_prefix@ + libdir = @libdir@ + INSTALL = @INSTALL@ +-LIBTOOL = ./libtool ++LIBTOOL = @LIBTOOL@ + ALLOWRELEASE = @ALLOWRELEASE@ + + # libtool compile/link/install diff --git a/packages/sqlite/sqlite3.inc b/packages/sqlite/sqlite3.inc index 01290c2e41..68cc3e1c33 100644 --- a/packages/sqlite/sqlite3.inc +++ b/packages/sqlite/sqlite3.inc @@ -5,9 +5,8 @@ DEPENDS = "readline ncurses" LICENSE = "PD" SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \ - file://cross-compile.patch;patch=1 \ - file://libtool.patch;patch=1 \ - file://ldflags.patch;patch=1" + file://libtool.patch;patch=1" + S = "${WORKDIR}/sqlite-${PV}" inherit autotools pkgconfig diff --git a/packages/sqlite/sqlite3_3.3.12.bb b/packages/sqlite/sqlite3_3.3.12.bb index 59c13ee01f..3d642f0ffc 100644 --- a/packages/sqlite/sqlite3_3.3.12.bb +++ b/packages/sqlite/sqlite3_3.3.12.bb @@ -1,2 +1,3 @@ require sqlite3.inc -PR = "r0" +PR = "r1" +SRC_URI += "file://cross-compile.patch;patch=1 file://ldflags.patch;patch=1" diff --git a/packages/sqlite/sqlite3_3.3.13.bb b/packages/sqlite/sqlite3_3.3.13.bb index 59c13ee01f..3d642f0ffc 100644 --- a/packages/sqlite/sqlite3_3.3.13.bb +++ b/packages/sqlite/sqlite3_3.3.13.bb @@ -1,2 +1,3 @@ require sqlite3.inc -PR = "r0" +PR = "r1" +SRC_URI += "file://cross-compile.patch;patch=1 file://ldflags.patch;patch=1" diff --git a/packages/sqlite/sqlite3_3.3.17.bb b/packages/sqlite/sqlite3_3.3.17.bb new file mode 100644 index 0000000000..cee00874bd --- /dev/null +++ b/packages/sqlite/sqlite3_3.3.17.bb @@ -0,0 +1,3 @@ +require sqlite3.inc +PR = "r0" + diff --git a/packages/starling/starling_0.2.bb b/packages/starling/starling_0.2.bb new file mode 100644 index 0000000000..9b389c53cc --- /dev/null +++ b/packages/starling/starling_0.2.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Starling audio player for GPE" +SECTION = "gpe/multimedia" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "gtk+ libgpewidget gstreamer gst-plugins-good gst-plugins-bad esound sqlite3 libsoup" +RDEPENDS = "pulseaudio-bin \ + gst-plugin-audioconvert \ + gst-plugin-esd \ + gst-plugin-typefindfunctions \ + gst-plugin-decodebin \ + gst-plugin-volume" +RRECOMMENDS = "gst-plugin-mad \ + gst-plugin-modplug \ + gst-plugin-ivorbis \ + gst-plugin-tcp" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit gpe autotools + diff --git a/packages/subversion/subversion_1.4.3.bb b/packages/subversion/subversion_1.4.3.bb index c0a2a02e08..1b73017d25 100644 --- a/packages/subversion/subversion_1.4.3.bb +++ b/packages/subversion/subversion_1.4.3.bb @@ -5,7 +5,7 @@ RDEPENDS = "neon" LICENSE = "Apache/BSD" HOMEPAGE = "http://subversion.tigris.org" -DEFAULT_PREFERENCE = "-1" +PR = "r1" SRC_URI = "http://subversion.tigris.org/downloads/${P}.tar.bz2 \ file://disable-revision-install.patch;patch=1 \ @@ -27,3 +27,7 @@ do_configure() { aclocal -I build/ -I build/ac-macros/ && autoconf oe_runconf } + +do_stage() { + autotools_stage_all +} diff --git a/packages/sysconf/files/sysconfsetup b/packages/sysconf/files/sysconfsetup index 7b91a0e331..602442f4ff 100644 --- a/packages/sysconf/files/sysconfsetup +++ b/packages/sysconf/files/sysconfsetup @@ -16,12 +16,6 @@ # reinit: always do a complete auto restore # reload: just reload sysconf (no config files!) # -# /etc/default/functions contains useful utility functions - it's -# in a separate file so that it can be loaded by any script -# load_functions "source" -# load the functions in '/sbin/source' - relies on /sbin/source being -# a shell script and having support for this function. - # load_functions "source" # load the functions in '/sbin/source' - relies on /sbin/source being # a shell script and having support for this function. diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb index cc86b9365f..d89d781202 100644 --- a/packages/tasks/task-base.bb +++ b/packages/tasks/task-base.bb @@ -1,8 +1,11 @@ DESCRIPTION = "Merge machine and distro options to create a basic machine task/package" -PR = "r31" +PR = "r36" -PACKAGES = 'task-boot \ +DEPENDS = "task-boot" +PROVIDES = "${PACKAGES}" +PACKAGES = ' \ task-base \ + task-base-extended \ task-distro-base \ task-machine-base \ \ @@ -41,27 +44,11 @@ PACKAGE_ARCH = "all" # packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH # PACKAGE_ARCH_task-base = "${MACHINE_ARCH}" -PACKAGE_ARCH_task-boot = "${MACHINE_ARCH}" PACKAGE_ARCH_task-machine-base = "${MACHINE_ARCH}" PACKAGE_ARCH_task-base-apm = "${MACHINE_ARCH}" PACKAGE_ARCH_task-base-pcmcia = "${MACHINE_ARCH}" # -# udev, devfsd, mdev (from busybox) or none -# -DISTRO_DEV_MANAGER ?= "${@base_contains("MACHINE_FEATURES", "kernel26", "udev","",d)} " - -# -# sysvinit, upstart -# -DISTRO_INIT_MANAGER ?= "sysvinit sysvinit-pidof" - -# -# tinylogin, getty -# -DISTRO_LOGIN_MANAGER ?= "tinylogin" - -# # linux-hotplug or none # HOTPLUG ?= "${@base_contains("MACHINE_FEATURES", "kernel24", "linux-hotplug","",d)} " @@ -116,6 +103,34 @@ RDEPENDS_task-base = "\ ${@base_contains('DISTRO_FEATURES', 'raid', 'task-base-raid', '',d)} \ " +RDEPENDS_task-base-extended = "\ + task-base \ + ${ADD_WIFI} \ + ${ADD_BT} \ + " + +ADD_WIFI = "" +ADD_BT = "" + +python __anonymous () { + # If Distro want wifi and machine feature wifi/pci/pcmcia/usbhost (one of them) + # then include task-base-wifi in task-base + + import bb + + if not hasattr(__builtins__, 'set'): + from sets import Set as set + + distro_features = set(bb.data.getVar("DISTRO_FEATURES", d, 1).split()) + machine_features= set(bb.data.getVar("MACHINE_FEATURES", d, 1).split()) + + if "bluetooth" in distro_features and not "bluetooth" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features): + bb.data.setVar("ADD_BT", "task-base-bluetooth", d) + + if "wifi" in distro_features and not "wifi" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features): + bb.data.setVar("ADD_WIFI", "task-base-wifi", d) +} + # # packages added by distribution # @@ -128,26 +143,6 @@ RRECOMMENDS_task-distro-base = "${DISTRO_EXTRA_RRECOMMENDS}" RDEPENDS_task-machine-base = "${MACHINE_EXTRA_RDEPENDS}" RRECOMMENDS_task-machine-base = "${MACHINE_EXTRA_RRECOMMENDS}" -# -# minimal set of packages - needed to boot -# -RDEPENDS_task-boot = "\ - kernel \ - base-files \ - base-passwd \ - busybox \ - initscripts \ - modutils-initscripts \ - netbase \ - update-alternatives \ - ${DISTRO_DEV_MANAGER} \ - ${DISTRO_INIT_MANAGER} \ - ${DISTRO_LOGIN_MANAGER} \ - ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" - -RRECOMMENDS_task-boot = "\ - ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" - RDEPENDS_task-base-kernel24 = "\ modutils-depmod" @@ -204,7 +199,6 @@ RDEPENDS_task-base-pcmcia = "\ ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-firmware', '',d)} \ ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-support', '',d)} \ ${@base_contains('DISTRO_FEATURES', 'wifi', 'spectrum-fw', '',d)} \ - ${@base_contains('DISTRO_FEATURES', 'wifi', 'hostap-conf', '',d)} \ " RRECOMMENDS_task-base-pcmcia = "\ @@ -266,7 +260,8 @@ RRECOMMENDS_task-base-usbgadget = "\ kernel-module-gadgetfs \ kernel-module-g-file-storage \ kernel-module-g-serial \ - kernel-module-g-ether" + kernel-module-g-ether \ + usb-gadget-mode" RDEPENDS_task-base-usbhost = "\ usbutils " diff --git a/packages/tasks/task-boot.bb b/packages/tasks/task-boot.bb new file mode 100644 index 0000000000..95eb55b748 --- /dev/null +++ b/packages/tasks/task-boot.bb @@ -0,0 +1,53 @@ +DESCRIPTION = "Basic task to get a device booting" +PR = "r35" + +PROVIDES = "${PACKAGES}" +PACKAGES = 'task-boot' + +ALLOW_EMPTY = "1" + +# packages which content depend on MACHINE_FEATURES need to be MACHINE_ARCH +# +PACKAGE_ARCH = "${MACHINE_ARCH}" + +# +# udev, devfsd, mdev (from busybox) or none +# +DISTRO_DEV_MANAGER ?= "${@base_contains("MACHINE_FEATURES", "kernel26", "udev","",d)} " + +# +# sysvinit, upstart +# +DISTRO_INIT_MANAGER ?= "sysvinit sysvinit-pidof" + +# +# tinylogin, getty +# +DISTRO_LOGIN_MANAGER ?= "tinylogin" + +# +# those ones can be set in machine config to supply packages needed to get machine booting +# +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" + +# +# minimal set of packages - needed to boot +# +RDEPENDS_task-boot = "\ + kernel \ + base-files \ + base-passwd \ + busybox \ + initscripts \ + modutils-initscripts \ + netbase \ + update-alternatives \ + ${DISTRO_DEV_MANAGER} \ + ${DISTRO_INIT_MANAGER} \ + ${DISTRO_LOGIN_MANAGER} \ + ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" + +RRECOMMENDS_task-boot = "\ + ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" + diff --git a/packages/tasks/task-hentges-base.bb b/packages/tasks/task-hentges-base.bb new file mode 100644 index 0000000000..89b39aeba9 --- /dev/null +++ b/packages/tasks/task-hentges-base.bb @@ -0,0 +1,28 @@ +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: task-hentges-base.bb +# Date: 20070516 (YMD) + +DESCRIPTION = "task-hentges-base" +HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" +LICENSE = "MIT" + +###################################################################################### + +ALLOW_EMPTY = "1" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +###################################################################################### + +PV = "${HENTGES_PV}" +PR = "${HENTGES_PR}" + +###################################################################################### + +#DEPENDS = "${HENTGES_DEPENDS}" +# +RDEPENDS = "${HENTGES_BASE_RDEPENDS}" diff --git a/packages/tasks/task-hentges-x11.bb b/packages/tasks/task-hentges-x11.bb new file mode 100644 index 0000000000..db658e9014 --- /dev/null +++ b/packages/tasks/task-hentges-x11.bb @@ -0,0 +1,29 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: task-hentges-x11.bb +# Date: 20070522 (YMD) + +DESCRIPTION = "task-hentges-x11" +HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" +LICENSE = "MIT" + +###################################################################################### + +ALLOW_EMPTY = "1" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +###################################################################################### + +PV = "${HENTGES_PV}" +PR = "${HENTGES_PR}" + +###################################################################################### + +DEPENDS = "task-angstrom-x11" + +RDEPENDS = "${HENTGES_X11_RDEPENDS}" diff --git a/packages/tasks/task-ossie.bb b/packages/tasks/task-ossie.bb deleted file mode 100644 index b550d709ff..0000000000 --- a/packages/tasks/task-ossie.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "Meta-package for OSSIE Software Defined Radio (SDR)" -LICENSE = "MIT" -RDEPENDS = "${OSSIE_BASE} ${OSSIE_PLATFORM} ${OSSIE_COMPONENTS} ${OSSIE_WAVEFORMS}" -PR = "r0" - -PACKAGES = "task-ossie" - -ALLOW_EMPTY = "1" - -PACKAGE_INSTALL = "${OSSIE_BASE} ${OSSIE_PLATFORM} ${OSSIE_COMPONENTS} ${OSSIE_WAVEFORMS}" - -OSSIE_BASE = "screen procps xerces-c omniorb usrp" -OSSIE_PLATFORM = "ossiecf ossie-standardinterfaces ossie-nodebooter ossie-c-wavloader" -OSSIE_COMPONENTS = "ossie-gpp-device ossie-usrp-device ossie-soundout-device" -OSSIE_WAVEFORMS = "ossie-demo ossie-tx-random-data ossie-log-data" 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.4.bb b/packages/telepathy/empathy_0.4.bb new file mode 100644 index 0000000000..d5e699ceb7 --- /dev/null +++ b/packages/telepathy/empathy_0.4.bb @@ -0,0 +1,18 @@ +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" +RDEPENDS = "telepathy-mission-control" +RRECOMMENDS = "telepathy-gabble" + +PR="r0" + +inherit gnome + +SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/empathy/0.4/empathy-${PV}.tar.bz2 \ + " + +FILES_${PN} += "${datadir}/mission-control/profiles/*.profile \ + ${datadir}/dbus-1/services/*.service \ + ${datadir}/telepathy/managers/*.chandler \ + ${datadir}/icons" diff --git a/packages/telepathy/empathy_0.5.bb b/packages/telepathy/empathy_0.5.bb new file mode 100644 index 0000000000..e7b2af1d57 --- /dev/null +++ b/packages/telepathy/empathy_0.5.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Empathy: a Telepathy based IM client" +HOMEPAGE = "http://blogs.gnome.org/view/xclaesse/2007/04/26/0" +LICENSE = "GPL" +DEPENDS = "telepathy-mission-control libtelepathy gtk+ gconf libglade gnome-vfs" +RDEPENDS = "telepathy-mission-control" +RRECOMMENDS = "telepathy-gabble" + +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 \ + ${datadir}/telepathy/managers/*.chandler \ + ${datadir}/icons" diff --git a/packages/telepathy/telepathy-mission-control_4.22.bb b/packages/telepathy/telepathy-mission-control_4.22.bb new file mode 100644 index 0000000000..2215d0a515 --- /dev/null +++ b/packages/telepathy/telepathy-mission-control_4.22.bb @@ -0,0 +1,42 @@ +DESCRIPTION = "Telepathy Mission Control" +HOMEPAGE = "http://mission-control.sourceforge.net/" +LICENSE = "LGPL" +SECTION = "libs" +DEPENDS = "libtelepathy dbus-glib gconf" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/mission-control/telepathy-mission-control-${PV}.tar.gz" + +inherit autotools pkgconfig + +PACKAGES =+ " \ + libmissioncontrol \ + libmissioncontrol-config \ + libmissioncontrol-server \ + libmissioncontrol-dev \ + libmissioncontrol-config-dev \ + libmissioncontrol-server-dev \ + libmissioncontrol-dbg \ + libmissioncontrol-config-dbg \ + libmissioncontrol-server-dbg \ +" + +FILES_${PN} += "${datadir}/dbus*" + +FILES_libmissioncontrol = "${libdir}/libmissioncontrol.so.*" +FILES_libmissioncontrol-config = "${libdir}/libmissioncontrol-config.so.*" +FILES_libmissioncontrol-server = "${libdir}/libmissioncontrol-server.so.*" + +FILES_libmissioncontrol-dev = "${libdir}/libmissioncontrol.* \ + ${includedir}/libmissioncontrol/ \ + ${libdir}/pkgconfig/libmissioncontrol.pc" +FILES_libmissioncontrol-config-dev = "${libdir}/libmissioncontrol-config.*" +FILES_libmissioncontrol-server-dev = "${libdir}/libmissioncontrol-server.*" + +FILES_libmissioncontrol-dbg = "${libdir}/.debug/libmissioncontrol.so.*" +FILES_libmissioncontrol-config-dbg = "${libdir}/.debug/libmissioncontrol-config.so.*" +FILES_libmissioncontrol-server-dbg = "${libdir}/.debug/libmissioncontrol-server.so.*" + +do_stage() { + autotools_stage_all +} 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/vera-fonts/ttf-bitstream-vera_1.10.bb b/packages/ttf-fonts/ttf-bitstream-vera_1.10.bb index 871bc1d37c..871bc1d37c 100644 --- a/packages/vera-fonts/ttf-bitstream-vera_1.10.bb +++ b/packages/ttf-fonts/ttf-bitstream-vera_1.10.bb diff --git a/packages/ttyrec/ttyrec_1.0.8.bb b/packages/ttyrec/ttyrec_1.0.8.bb index 324751b4ba..bf58f245cb 100644 --- a/packages/ttyrec/ttyrec_1.0.8.bb +++ b/packages/ttyrec/ttyrec_1.0.8.bb @@ -8,7 +8,6 @@ # Date: 20070403 (YMD) DESCRIPTION = "ttyrec is a tty recorder. Recorded data can be played back with the included ttyplay command." -MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" HOMEPAGE = "http://0xcc.net/ttyrec/index.html.en" ###################################################################################### diff --git a/packages/twisted/twisted-2.5.0/.mtn2git_empty b/packages/twisted/twisted-2.5.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/twisted/twisted-2.5.0/.mtn2git_empty diff --git a/packages/twisted/twisted-2.5.0/remove-zope-check.patch b/packages/twisted/twisted-2.5.0/remove-zope-check.patch new file mode 100644 index 0000000000..2bd1b191da --- /dev/null +++ b/packages/twisted/twisted-2.5.0/remove-zope-check.patch @@ -0,0 +1,18 @@ +Index: Twisted-2.5.0/TwistedCore-2.5.0/twisted/__init__.py +=================================================================== +--- Twisted-2.5.0.orig/TwistedCore-2.5.0/twisted/__init__.py 2007-03-05 16:30:08.117422472 +0100 ++++ Twisted-2.5.0/TwistedCore-2.5.0/twisted/__init__.py 2007-03-05 16:30:13.810553949 +0100 +@@ -14,13 +14,6 @@ + raise RuntimeError("Twisted requires Python 2.3 or later.") + del sys + +-# Ensure zope.interface is installed +-try: +- from zope.interface import Interface +- del Interface +-except ImportError: +- raise ImportError("you need zope.interface installed " +- "(http://zope.org/Products/ZopeInterface/)") + + # Ensure compat gets imported + from twisted.python import compat diff --git a/packages/twisted/twisted_1.2.0.bb b/packages/twisted/twisted_1.2.0.bb index 3424f8c387..40f8218fbb 100644 --- a/packages/twisted/twisted_1.2.0.bb +++ b/packages/twisted/twisted_1.2.0.bb @@ -1,14 +1,19 @@ -DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \ -Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \ -(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more." +DESCRIPTION = "Twisted is an event-driven networking framework written in \ +Python and licensed under the LGPL. \ Twisted supports TCP, UDP, SSL/TLS, \ +multicast, Unix sockets, a large number of protocols (including HTTP, NNTP, \ +IMAP, SSH, IRC, FTP, and others), and much more." HOMEPAGE = "http://www.twistedmatrix.com" SECTION = "console/network" PRIORITY = "optional" LICENSE = "LGPL" RDEPENDS = "python-core" +PR = "r1" SRC_URI = "http://tmrc.mit.edu/mirror/twisted/old/Twisted-${PV}.tar.bz2" S = "${WORKDIR}/Twisted-${PV}" inherit distutils +FILES_${PN}-dbg += "${libdir}/python2.4/site-packages/twisted/protocols/.debug" +FILES_${PN}-dbg += "${libdir}/python2.4/site-packages/twisted/runner/.debug" +FILES_${PN}-dbg += "${libdir}/python2.4/site-packages/twisted/spread/.debug" diff --git a/packages/twisted/twisted_2.5.0.bb b/packages/twisted/twisted_2.5.0.bb new file mode 100644 index 0000000000..c7620e4b84 --- /dev/null +++ b/packages/twisted/twisted_2.5.0.bb @@ -0,0 +1,180 @@ +DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \ +Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \ +(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more." +HOMEPAGE = "http://www.twistedmatrix.com" +SECTION = "console/network" +PRIORITY = "optional" +LICENSE = "LGPL" +RDEPENDS = "python-core python-zopeinterface" +RDEPENDS_python-twisted += "python-twisted-bin python-twisted-conch python-twisted-core \ + python-twisted-lore python-twisted-mail python-twisted-names \ + python-twisted-news python-twisted-runner python-twisted-web \ + python-twisted-words" +PR = "r6" + +SRC_URI = "http://tmrc.mit.edu/mirror/twisted/Twisted/2.5/Twisted-${PV}.tar.bz2 \ + file://remove-zope-check.patch;patch=1" + +S = "${WORKDIR}/Twisted-${PV}" + +inherit distutils + +PACKAGES += "python-twisted-zsh python-twisted-test python-twisted-protocols \ + python-twisted-runner-dbg \ + python-twisted-bin python-twisted-conch python-twisted-lore \ + python-twisted-mail python-twisted-names python-twisted-news python-twisted-runner \ + python-twisted-web python-twisted-words python-twisted python-twisted-core \ + " + +ALLOW_EMPTY = "1" +FILES_${PN} = "" +FILES_python-twisted = "" + +FILES_python-twisted-test = " \ +${libdir}/python2.4/site-packages/twisted/python/web/test \ +" + +FILES_python-twisted-protocols = " \ +${libdir}/python2.4/site-packages/twisted/python/protocols/ \ +" + +FILES_python-twisted-zsh = " \ +${libdir}/python2.4/site-packages/twisted/python/zsh \ +${libdir}/python2.4/site-packages/twisted/python/zshcomp.* \ +" + +FILES_python-twisted-bin = " \ +${libdir}/python2.4/site-packages/twisted/protocols/_c_urlarg.so \ +${libdir}/python2.4/site-packages/twisted/spread/cBanana.so" + +FILES_python-twisted-conch = " \ +${bindir}/ckeygen \ +${bindir}/tkconch \ +${bindir}/conch \ +${bindir}/conchftp \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_conch.py \ +${libdir}/python2.4/site-packages/twisted/conch \ +" + +FILES_python-twisted-core = " \ +${bindir}/manhole \ +${bindir}/mktap \ +${bindir}/twistd \ +${bindir}/tap2deb \ +${bindir}/tap2rpm \ +${bindir}/tapconvert \ +${bindir}/tkmktap \ +${bindir}/trial \ +${libdir}/python2.4/site-packages/twisted/*.py \ +${libdir}/python2.4/site-packages/twisted/plugins/__init__.py \ +${libdir}/python2.4/site-packages/twisted/plugins/notestplugin.py \ +${libdir}/python2.4/site-packages/twisted/plugins/testplugin.py \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_ftp.py \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_inet.py \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_manhole.py \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_portforward.py \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_socks.py \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_telnet.py \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_trial.py \ +${libdir}/python2.4/site-packages/twisted/plugins/dropin.cache \ +${libdir}/python2.4/site-packages/twisted/application \ +${libdir}/python2.4/site-packages/twisted/cred \ +${libdir}/python2.4/site-packages/twisted/enterprise \ +${libdir}/python2.4/site-packages/twisted/internet \ +${libdir}/python2.4/site-packages/twisted/manhole \ +${libdir}/python2.4/site-packages/twisted/manhole \ +${libdir}/python2.4/site-packages/twisted/persisted \ +${libdir}/python2.4/site-packages/twisted/protocols\ +${libdir}/python2.4/site-packages/twisted/python\ +${libdir}/python2.4/site-packages/twisted/python/timeoutqueue.py \ +${libdir}/python2.4/site-packages/twisted/python/filepath.py \ +${libdir}/python2.4/site-packages/twisted/python/dxprofile.py \ +${libdir}/python2.4/site-packages/twisted/python/plugin.py \ +${libdir}/python2.4/site-packages/twisted/python/htmlizer.py \ +${libdir}/python2.4/site-packages/twisted/python/__init__.py \ +${libdir}/python2.4/site-packages/twisted/python/dispatch.py \ +${libdir}/python2.4/site-packages/twisted/python/hook.py \ +${libdir}/python2.4/site-packages/twisted/python/threadpool.py \ +${libdir}/python2.4/site-packages/twisted/python/otp.py \ +${libdir}/python2.4/site-packages/twisted/python/usage.py \ +${libdir}/python2.4/site-packages/twisted/python/roots.py \ +${libdir}/python2.4/site-packages/twisted/python/versions.py \ +${libdir}/python2.4/site-packages/twisted/python/urlpath.py \ +${libdir}/python2.4/site-packages/twisted/python/util.py \ +${libdir}/python2.4/site-packages/twisted/python/components.py \ +${libdir}/python2.4/site-packages/twisted/python/logfile.py \ +${libdir}/python2.4/site-packages/twisted/python/runtime.py \ +${libdir}/python2.4/site-packages/twisted/python/reflect.py \ +${libdir}/python2.4/site-packages/twisted/python/context.py \ +${libdir}/python2.4/site-packages/twisted/python/threadable.py \ +${libdir}/python2.4/site-packages/twisted/python/rebuild.py \ +${libdir}/python2.4/site-packages/twisted/python/failure.py \ +${libdir}/python2.4/site-packages/twisted/python/lockfile.py \ +${libdir}/python2.4/site-packages/twisted/python/formmethod.py \ +${libdir}/python2.4/site-packages/twisted/python/finalize.py \ +${libdir}/python2.4/site-packages/twisted/python/win32.py \ +${libdir}/python2.4/site-packages/twisted/python/dist.py \ +${libdir}/python2.4/site-packages/twisted/python/shortcut.py \ +${libdir}/python2.4/site-packages/twisted/python/zipstream.py \ +${libdir}/python2.4/site-packages/twisted/python/release.py \ +${libdir}/python2.4/site-packages/twisted/python/syslog.py \ +${libdir}/python2.4/site-packages/twisted/python/log.py \ +${libdir}/python2.4/site-packages/twisted/python/compat.py \ +${libdir}/python2.4/site-packages/twisted/python/zshcomp.py \ +${libdir}/python2.4/site-packages/twisted/python/procutils.py \ +${libdir}/python2.4/site-packages/twisted/python/text.py \ +${libdir}/python2.4/site-packages/twisted/python/_twisted_zsh_stub \ +${libdir}/python2.4/site-packages/twisted/scripts/ \ +${libdir}/python2.4/site-packages/twisted/spread/ \ +${libdir}/python2.4/site-packages/twisted/tap/ \ +${libdir}/python2.4/site-packages/twisted/trial/ \ +${libdir}/python2.4/site-packages/twisted/__init__.py \ +${libdir}/python2.4/site-packages/twisted/_version.py \ +${libdir}/python2.4/site-packages/twisted/copyright.py \ +${libdir}/python2.4/site-packages/twisted/im.py \ +${libdir}/python2.4/site-packages/twisted/plugin.py \ +" + +FILES_python-twisted-lore = " \ +${bindir}/bookify \ +${bindir}/lore \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_lore.py \ +${libdir}/python2.4/site-packages/twisted/lore \ +" + +FILES_python-twisted-mail = " \ +${bindir}/mailmail \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_mail.py \ +${libdir}/python2.4/site-packages/twisted/mail \ +" + +FILES_python-twisted-names = " \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_names.py \ +${libdir}/python2.4/site-packages/twisted/names \ +" + +FILES_python-twisted-news = " \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_news.py \ +${libdir}/python2.4/site-packages/twisted/news \ +" + +FILES_python-twisted-runner = " \ +${libdir}python2.4/site-packages/twisted/runner/portmap.so \ +${libdir}/python2.4/site-packages/twisted/runner\ +" + +FILES_python-twisted-web = " \ +${bindir}/websetroot \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_web.py \ +${libdir}/python2.4/site-packages/twisted/web\ +" + +FILES_python-twisted-words = " \ +${bindir}/im \ +${libdir}/python2.4/site-packages/twisted/plugins/twisted_words.py \ +${libdir}/python2.4/site-packages/twisted/words\ +" + +FILES_python-twisted-runner-dbg = " \ +${libdir}/python2.4/site-packages/twisted/runner/.debug" + diff --git a/packages/uboot/u-boot.inc b/packages/uboot/u-boot.inc index d9b2f7b7c9..9f7356d5d7 100644 --- a/packages/uboot/u-boot.inc +++ b/packages/uboot/u-boot.inc @@ -5,6 +5,8 @@ PRIORITY = "optional" LICENSE = "GPL" PROVIDES = "virtual/bootloader" +PARALLEL_MAKE="" + EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" UBOOT_MACHINE ?= "${MACHINE}_config" @@ -27,5 +29,5 @@ addtask deploy before do_build after do_compile do_stage() { install -d ${STAGING_BINDIR_NATIVE} - install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}/ + install -m 755 tools/mkimage ${STAGING_BINDIR_NATIVE}/ } diff --git a/packages/uboot/u-boot_git.bb b/packages/uboot/u-boot_git.bb index 9362b62041..07f3ed9977 100644 --- a/packages/uboot/u-boot_git.bb +++ b/packages/uboot/u-boot_git.bb @@ -1,8 +1,10 @@ require u-boot.inc - +PR="r1" DEFAULT_PREFERENCE = "-1" SRC_URI = "git://www.denx.de/git/u-boot.git;protocol=git " +SRC_URI_sequoia = "git://www.denx.de/git/u-boot.git;protocol=git;tag=cf3b41e0c1111dbb865b6e34e9f3c3d3145a6093" + S = "${WORKDIR}/git" 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..c59defd311 --- /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=y +UCLIBC_HAS_RPC=y + +# +# 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.29/bfin/.mtn2git_empty b/packages/uclibc/uclibc-0.9.29/bfin/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/bfin/.mtn2git_empty diff --git a/packages/uclibc/uclibc-0.9.29/bfin/uClibc.machine b/packages/uclibc/uclibc-0.9.29/bfin/uClibc.machine new file mode 100644 index 0000000000..5243119d2e --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/bfin/uClibc.machine @@ -0,0 +1,58 @@ +# +# Automatically generated make config: don't edit +# Mon Jun 11 14:03:30 2007 +# +# TARGET_alpha is not set +# TARGET_arm is not set +TARGET_bfin=y +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 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_vax is not set +# TARGET_x86_64 is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="bfin" +FORCE_OPTIONS_FOR_ARCH=y +TARGET_SUBARCH="" +# UCLIBC_FORMAT_ELF is not set +# UCLIBC_FORMAT_FDPIC_ELF is not set +# UCLIBC_FORMAT_FLAT is not set +# UCLIBC_FORMAT_FLAT_SEP_DATA is not set +UCLIBC_FORMAT_SHARED_FLAT=y +UCLIBC_SHARED_FLAT_ID=1 +ARCH_LITTLE_ENDIAN=y + +# +# Using Little Endian +# +ARCH_HAS_NO_MMU=y + +# +# Target CPU lacks a memory management unit (MMU) +# +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +KERNEL_HEADERS="/usr/include" +UCLIBC_UCLINUX_BROKEN_MUNMAP=y +EXCLUDE_BRK=y +HAVE_DOT_CONFIG=y + diff --git a/packages/uclibc/uclibc-0.9.29/collie/uClibc.machine b/packages/uclibc/uclibc-0.9.29/collie/uClibc.machine index 33f36bf179..6e89444a64 100644 --- a/packages/uclibc/uclibc-0.9.29/collie/uClibc.machine +++ b/packages/uclibc/uclibc-0.9.29/collie/uClibc.machine @@ -33,7 +33,7 @@ TARGET_ARCH="arm" FORCE_OPTIONS_FOR_ARCH=y CONFIG_ARM_OABI=y # CONFIG_ARM_EABI is not set -USE_BX=y +# USE_BX is not set # CONFIG_GENERIC_ARM is not set # CONFIG_ARM610 is not set # CONFIG_ARM710 is not set diff --git a/packages/uclibc/uclibc-0.9.29/h3600/.mtn2git_empty b/packages/uclibc/uclibc-0.9.29/h3600/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/h3600/.mtn2git_empty diff --git a/packages/uclibc/uclibc-0.9.29/h3600/uClibc.machine b/packages/uclibc/uclibc-0.9.29/h3600/uClibc.machine new file mode 100644 index 0000000000..6e89444a64 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/h3600/uClibc.machine @@ -0,0 +1,70 @@ +# +# Automatically generated make config: don't edit +# Sun May 13 11:29:51 2007 +# +# TARGET_alpha is not set +TARGET_arm=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_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 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_vax is not set +# TARGET_x86_64 is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="arm" +FORCE_OPTIONS_FOR_ARCH=y +CONFIG_ARM_OABI=y +# CONFIG_ARM_EABI is not set +# USE_BX is not set +# CONFIG_GENERIC_ARM is not set +# CONFIG_ARM610 is not set +# CONFIG_ARM710 is not set +# CONFIG_ARM7TDMI is not set +# CONFIG_ARM720T is not set +# CONFIG_ARM920T is not set +# CONFIG_ARM922T is not set +# CONFIG_ARM926T is not set +# CONFIG_ARM10T is not set +# CONFIG_ARM1136JF_S is not set +# CONFIG_ARM1176JZ_S is not set +# CONFIG_ARM1176JZF_S is not set +# CONFIG_ARM_SA110 is not set +CONFIG_ARM_SA1100=y +# CONFIG_ARM_XSCALE is not set +# CONFIG_ARM_IWMMXT is not set +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_ANY_ENDIAN=y +ARCH_LITTLE_ENDIAN=y +# ARCH_WANTS_BIG_ENDIAN is not set +ARCH_WANTS_LITTLE_ENDIAN=y +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +# UCLIBC_HAS_FPU is not set +UCLIBC_HAS_SOFT_FLOAT=y +DO_C99_MATH=y +KERNEL_HEADERS="/usr/include" +HAVE_DOT_CONFIG=y + diff --git a/packages/uclibc/uclibc-0.9.29/h3800/.mtn2git_empty b/packages/uclibc/uclibc-0.9.29/h3800/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/h3800/.mtn2git_empty diff --git a/packages/uclibc/uclibc-0.9.29/h3800/uClibc.machine b/packages/uclibc/uclibc-0.9.29/h3800/uClibc.machine new file mode 100644 index 0000000000..6e89444a64 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/h3800/uClibc.machine @@ -0,0 +1,70 @@ +# +# Automatically generated make config: don't edit +# Sun May 13 11:29:51 2007 +# +# TARGET_alpha is not set +TARGET_arm=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_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 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_vax is not set +# TARGET_x86_64 is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="arm" +FORCE_OPTIONS_FOR_ARCH=y +CONFIG_ARM_OABI=y +# CONFIG_ARM_EABI is not set +# USE_BX is not set +# CONFIG_GENERIC_ARM is not set +# CONFIG_ARM610 is not set +# CONFIG_ARM710 is not set +# CONFIG_ARM7TDMI is not set +# CONFIG_ARM720T is not set +# CONFIG_ARM920T is not set +# CONFIG_ARM922T is not set +# CONFIG_ARM926T is not set +# CONFIG_ARM10T is not set +# CONFIG_ARM1136JF_S is not set +# CONFIG_ARM1176JZ_S is not set +# CONFIG_ARM1176JZF_S is not set +# CONFIG_ARM_SA110 is not set +CONFIG_ARM_SA1100=y +# CONFIG_ARM_XSCALE is not set +# CONFIG_ARM_IWMMXT is not set +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_ANY_ENDIAN=y +ARCH_LITTLE_ENDIAN=y +# ARCH_WANTS_BIG_ENDIAN is not set +ARCH_WANTS_LITTLE_ENDIAN=y +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +# UCLIBC_HAS_FPU is not set +UCLIBC_HAS_SOFT_FLOAT=y +DO_C99_MATH=y +KERNEL_HEADERS="/usr/include" +HAVE_DOT_CONFIG=y + diff --git a/packages/uclibc/uclibc-0.9.29/simpad/.mtn2git_empty b/packages/uclibc/uclibc-0.9.29/simpad/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/simpad/.mtn2git_empty diff --git a/packages/uclibc/uclibc-0.9.29/simpad/uClibc.machine b/packages/uclibc/uclibc-0.9.29/simpad/uClibc.machine new file mode 100644 index 0000000000..6e89444a64 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/simpad/uClibc.machine @@ -0,0 +1,70 @@ +# +# Automatically generated make config: don't edit +# Sun May 13 11:29:51 2007 +# +# TARGET_alpha is not set +TARGET_arm=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_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 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_vax is not set +# TARGET_x86_64 is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="arm" +FORCE_OPTIONS_FOR_ARCH=y +CONFIG_ARM_OABI=y +# CONFIG_ARM_EABI is not set +# USE_BX is not set +# CONFIG_GENERIC_ARM is not set +# CONFIG_ARM610 is not set +# CONFIG_ARM710 is not set +# CONFIG_ARM7TDMI is not set +# CONFIG_ARM720T is not set +# CONFIG_ARM920T is not set +# CONFIG_ARM922T is not set +# CONFIG_ARM926T is not set +# CONFIG_ARM10T is not set +# CONFIG_ARM1136JF_S is not set +# CONFIG_ARM1176JZ_S is not set +# CONFIG_ARM1176JZF_S is not set +# CONFIG_ARM_SA110 is not set +CONFIG_ARM_SA1100=y +# CONFIG_ARM_XSCALE is not set +# CONFIG_ARM_IWMMXT is not set +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_ANY_ENDIAN=y +ARCH_LITTLE_ENDIAN=y +# ARCH_WANTS_BIG_ENDIAN is not set +ARCH_WANTS_LITTLE_ENDIAN=y +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +# UCLIBC_HAS_FPU is not set +UCLIBC_HAS_SOFT_FLOAT=y +DO_C99_MATH=y +KERNEL_HEADERS="/usr/include" +HAVE_DOT_CONFIG=y + diff --git a/packages/uclibc/uclibc-0.9.29/angstrom/uClibc.distro b/packages/uclibc/uclibc-0.9.29/uClibc.distro index b326ff03b5..b326ff03b5 100644 --- a/packages/uclibc/uclibc-0.9.29/angstrom/uClibc.distro +++ b/packages/uclibc/uclibc-0.9.29/uClibc.distro diff --git a/packages/uclibc/uclibc-initial_0.9.29.bb b/packages/uclibc/uclibc-initial_0.9.29.bb new file mode 100644 index 0000000000..840acafeac --- /dev/null +++ b/packages/uclibc/uclibc-initial_0.9.29.bb @@ -0,0 +1,32 @@ +SECTION = "base" +require uclibc_${PV}.bb + +FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" + +DEPENDS = "linux-libc-headers" +PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" +PACKAGES = "" + +do_stage() { + # Install initial headers into the cross dir + make PREFIX= DEVEL_PREFIX=${UCLIBC_PREFIX}/ \ + RUNTIME_PREFIX=${UCLIBC_PREFIX}/ \ + pregen install_dev + + mkdir -p ${CROSS_DIR}/${TARGET_SYS} + mkdir -p ${CROSS_DIR}/${TARGET_SYS}/include + mkdir -p ${CROSS_DIR}/${TARGET_SYS}/lib + ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include + rm -rf ${CROSS_DIR}/${TARGET_SYS}/${prefix} + + # This conflicts with the c++ version of this header + rm -f ${UCLIBC_PREFIX}/include/bits/atomicity.h +} + +do_install() { + : +} + +do_compile () { + : +} 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/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb index 00cb7afb75..df849064e2 100644 --- a/packages/uclibc/uclibc_0.9.29.bb +++ b/packages/uclibc/uclibc_0.9.29.bb @@ -7,7 +7,7 @@ # on whether the base patches apply to the selected (SRCDATE) svn release. # UCLIBC_BASE ?= "0.9.29" -PR = "r2" +PR = "r5" require uclibc.inc diff --git a/packages/udev/udev_092.bb b/packages/udev/udev_092.bb index 7f6685d926..f21be9c8c5 100644 --- a/packages/udev/udev_092.bb +++ b/packages/udev/udev_092.bb @@ -1,9 +1,9 @@ DESCRIPTION = "udev is a daemon which dynamically creates and removes device nodes from \ /dev/, handles hotplug events and loads drivers at boot time. It replaces \ the hotplug package and requires a kernel not older than 2.6.12." -RPROVIDES = "hotplug" +RPROVIDES_${PN} = "hotplug" -PR = "r16" +PR = "r17" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \ file://noasmlinkage.patch;patch=1 \ diff --git a/packages/uicmoc/uicmoc4-native_4.3.0.bb b/packages/uicmoc/uicmoc4-native_4.3.0.bb new file mode 100644 index 0000000000..341b092e29 --- /dev/null +++ b/packages/uicmoc/uicmoc4-native_4.3.0.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "User-Interface-, Meta-Object-, and Resource Compiler for Qt/[X11|Mac|Embedded] version 4.x" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPL QPL" + +SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-${PV}.tar.gz" + +S = "${WORKDIR}/qt-x11-opensource-src-${PV}" + +inherit native + +EXTRA_OECONF = "-qt-libjpeg -qt-gif -system-zlib \ + -no-nis -no-cups -no-exceptions \ + -no-accessibility -no-libjpeg \ + -no-nas-sound -no-sm \ + -no-xshape -no-xinerama \ + -no-xcursor -no-xrandr \ + -no-xrender -no-fontconfig \ + -no-tablet -no-xkb \ + -no-libpng \ + -verbose -release -fast -static " +EXTRA_OEMAKE = " " + +do_configure() { + echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}" +} + +do_compile() { + unset CC CXX CFLAGS LFLAGS CXXFLAGS CPPFLAGS + cd ${S}/src/tools/moc && oe_runmake CC="${CC}" CXX="${CXX}" + cd ${S}/src/corelib && oe_runmake CC="${CC}" CXX="${CXX}" + cd ${S}/src/xml && oe_runmake CC="${CC}" CXX="${CXX}" + cd ${S}/src/tools/uic && oe_runmake CC="${CC}" CXX="${CXX}" + cd ${S}/src/tools/rcc && oe_runmake CC="${CC}" CXX="${CXX}" +} + +do_stage() { + install -m 0755 bin/moc ${STAGING_BINDIR}/moc4 + install -m 0755 bin/uic ${STAGING_BINDIR}/uic4 + install -m 0755 bin/rcc ${STAGING_BINDIR}/rcc4 +} diff --git a/packages/usb-gadget-mode/.mtn2git_empty b/packages/usb-gadget-mode/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/.mtn2git_empty diff --git a/packages/usb-gadget-mode/files/.mtn2git_empty b/packages/usb-gadget-mode/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/files/.mtn2git_empty diff --git a/packages/usb-gadget-mode/files/akita/.mtn2git_empty b/packages/usb-gadget-mode/files/akita/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/files/akita/.mtn2git_empty diff --git a/packages/usb-gadget-mode/files/akita/usb-gadget.conf b/packages/usb-gadget-mode/files/akita/usb-gadget.conf new file mode 100644 index 0000000000..717687d4c3 --- /dev/null +++ b/packages/usb-gadget-mode/files/akita/usb-gadget.conf @@ -0,0 +1,3 @@ +USB_MODE="networking" +MODULE_OPTIONS="" + diff --git a/packages/usb-gadget-mode/files/c7x0/.mtn2git_empty b/packages/usb-gadget-mode/files/c7x0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/files/c7x0/.mtn2git_empty diff --git a/packages/usb-gadget-mode/files/c7x0/usb-gadget.conf b/packages/usb-gadget-mode/files/c7x0/usb-gadget.conf new file mode 100644 index 0000000000..717687d4c3 --- /dev/null +++ b/packages/usb-gadget-mode/files/c7x0/usb-gadget.conf @@ -0,0 +1,3 @@ +USB_MODE="networking" +MODULE_OPTIONS="" + diff --git a/packages/usb-gadget-mode/files/collie/.mtn2git_empty b/packages/usb-gadget-mode/files/collie/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/files/collie/.mtn2git_empty diff --git a/packages/usb-gadget-mode/files/collie/usb-gadget.conf b/packages/usb-gadget-mode/files/collie/usb-gadget.conf new file mode 100644 index 0000000000..717687d4c3 --- /dev/null +++ b/packages/usb-gadget-mode/files/collie/usb-gadget.conf @@ -0,0 +1,3 @@ +USB_MODE="networking" +MODULE_OPTIONS="" + diff --git a/packages/usb-gadget-mode/files/spitz/.mtn2git_empty b/packages/usb-gadget-mode/files/spitz/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/files/spitz/.mtn2git_empty diff --git a/packages/usb-gadget-mode/files/tosa/.mtn2git_empty b/packages/usb-gadget-mode/files/tosa/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/usb-gadget-mode/files/tosa/.mtn2git_empty diff --git a/packages/usb-gadget-mode/files/tosa/usb-gadget.conf b/packages/usb-gadget-mode/files/tosa/usb-gadget.conf new file mode 100644 index 0000000000..717687d4c3 --- /dev/null +++ b/packages/usb-gadget-mode/files/tosa/usb-gadget.conf @@ -0,0 +1,3 @@ +USB_MODE="networking" +MODULE_OPTIONS="" + diff --git a/packages/usb-gadget-mode/files/usb-gadget b/packages/usb-gadget-mode/files/usb-gadget new file mode 100755 index 0000000000..4fdc429f5b --- /dev/null +++ b/packages/usb-gadget-mode/files/usb-gadget @@ -0,0 +1,59 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: usb-gadget +# Date: 20070606 (YMD) +# +################################################################################# +# +# 20070606 - v0.0.1 - Initial release + +CONF_FILE="/etc/default/usb-gadget" + +die() { + echo "ERROR: $1" + exit 1 +} + +go() { + test -e "$CONF_FILE" && . "$CONF_FILE" + + case "$USB_MODE" in + networking) setup_usb g_ether "$MODULE_OPTIONS" ;; + storage) setup_usb g_file_storage "$MODULE_OPTIONS" ;; + none) unload_usb_gadgets ;; + esac + +} + +setup_usb() { + + if ! ( lsmod | grep -q "$1" ) + then + unload_usb_gadgets + echo "Loading [$1]" + modprobe "$1" "$MODULE_OPTIONS" + else + echo "Already loaded: [$1]" + fi +} + +unload_usb_gadgets() { + KERNEL_VERSION="`uname -r`" + GADGET_MODULES="`find /lib/modules/$KERNEL_VERSION/kernel/drivers/usb/gadget -name "*g_*"`" + + for module in $GADGET_MODULES + do + MODULE_NAME="`basename $module | sed "s/\.ko//"`" + + if ( lsmod | grep -q "$MODULE_NAME" ) + then + echo "Unloading [$MODULE_NAME]" + rmmod "$module" + fi + done +} + +go diff --git a/packages/usb-gadget-mode/files/usb-gadget.conf b/packages/usb-gadget-mode/files/usb-gadget.conf new file mode 100644 index 0000000000..3b5ebd6433 --- /dev/null +++ b/packages/usb-gadget-mode/files/usb-gadget.conf @@ -0,0 +1,3 @@ +USB_MODE="" +MODULE_OPTIONS="" + diff --git a/packages/usb-gadget-mode/files/usb-gadget.init b/packages/usb-gadget-mode/files/usb-gadget.init new file mode 100755 index 0000000000..7bf456b652 --- /dev/null +++ b/packages/usb-gadget-mode/files/usb-gadget.init @@ -0,0 +1,16 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: usb-gadget.init +# Date: 20070606 (YMD) +# +################################################################################# +# +# 20070606 - v0.0.1 - Initial release + +case "$1" in +start) usb-gadget ;; +esac + diff --git a/packages/usb-gadget-mode/usb-gadget-mode.bb b/packages/usb-gadget-mode/usb-gadget-mode.bb new file mode 100644 index 0000000000..ae1f08b5ea --- /dev/null +++ b/packages/usb-gadget-mode/usb-gadget-mode.bb @@ -0,0 +1,50 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 +# License: MIT (see http://www.opensource.org/licenses/mit-license.php +# for a copy of the license) +# +# Filename: usb-gadget-mode.bb +# Date: 20070606 (YMD) + +DESCRIPTION = "Manage the default USB gadget mode" +SECTION = "console/network" +LICENSE = "GPL" + +###################################################################################### + +PV = "0.0.1" +PR = "r3" + +###################################################################################### + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +###################################################################################### + +SRC_URI = "file://usb-gadget.conf \ + file://usb-gadget \ + file://usb-gadget.init" + +###################################################################################### + +do_install() { + install -d ${D}${sysconfdir} + install -d ${D}${sysconfdir}/init.d + install -d ${D}${bindir} + install -d ${D}${sysconfdir}/default + + install -m 0644 ${WORKDIR}/usb-gadget.conf ${D}${sysconfdir}/default/usb-gadget + install -m 0755 ${WORKDIR}/usb-gadget.init ${D}${sysconfdir}/init.d/usb-gadget + install -m 0755 ${WORKDIR}/usb-gadget ${D}${bindir} +} + +pkg_postinst() { + + test -n "$D" && opt="-r $D" + update-rc.d $opt usb-gadget defaults 50 +} + +pkg_postrm() { + update-rc.d -f usb-gadget remove +} diff --git a/packages/vsftpd/vsftpd-2.0.5/syscall.patch b/packages/vsftpd/vsftpd-2.0.5/syscall.patch new file mode 100644 index 0000000000..b91cd5392b --- /dev/null +++ b/packages/vsftpd/vsftpd-2.0.5/syscall.patch @@ -0,0 +1,12 @@ +Index: vsftpd-2.0.5/sysdeputil.c +=================================================================== +--- vsftpd-2.0.5.orig/sysdeputil.c 2007-05-20 21:20:01.000000000 +0200 ++++ vsftpd-2.0.5/sysdeputil.c 2007-05-20 21:20:28.000000000 +0200 +@@ -159,7 +159,6 @@ + #include <linux/capability.h> + #include <errno.h> + #include <syscall.h> +-_syscall2(int, capset, cap_user_header_t, header, const cap_user_data_t, data) + /* Gross HACK to avoid warnings - linux headers overlap glibc headers */ + #undef __NFDBITS + #undef __FDMASK diff --git a/packages/vsftpd/vsftpd_2.0.5.bb b/packages/vsftpd/vsftpd_2.0.5.bb index 81aec46845..fc10d27f08 100644 --- a/packages/vsftpd/vsftpd_2.0.5.bb +++ b/packages/vsftpd/vsftpd_2.0.5.bb @@ -1,12 +1,12 @@ DESCRIPTION = "Secure ftp daemon" SECTION = "console/network" LICENSE = "GPL" -DEPENDS = "openssl" -PR = "r0" +PR = "r1" SRC_URI = "ftp://vsftpd.beasts.org/users/cevans/vsftpd-${PV}.tar.gz \ file://makefile.patch;patch=1 \ file://nopam.patch;patch=1 \ + file://syscall.patch;patch=1 \ file://init \ file://vsftpd.conf" @@ -20,7 +20,7 @@ do_configure() { } do_compile() { - oe_runmake "LIBS=-lssl -lcrypto -lcrypt -L${STAGING_LIBDIR}" + oe_runmake "LIBS=-lcrypt -L${STAGING_LIBDIR}" } do_install() { diff --git a/packages/watchdog/watchdog_5.3.1.bb b/packages/watchdog/watchdog_5.3.1.bb new file mode 100644 index 0000000000..fd8e756619 --- /dev/null +++ b/packages/watchdog/watchdog_5.3.1.bb @@ -0,0 +1,9 @@ +DESCRIPTION = "System watchdog daemon" +LICENSE = "GPL" +PR = "r1" + +SRC_URI = "http://www.ibiblio.org/pub/Linux/system/daemons/watchdog/${PN}_${PV}.tar.gz" + +inherit autotools + +FILES = "${sysconfdir}/watchdog.conf ${sbindir}/watchdog" diff --git a/packages/webcam-server/webcam-server_0.50.bb b/packages/webcam-server/webcam-server_0.50.bb index 737ef75977..df7873c382 100644 --- a/packages/webcam-server/webcam-server_0.50.bb +++ b/packages/webcam-server/webcam-server_0.50.bb @@ -8,7 +8,6 @@ # Date: 20070317 (YMD) DESCRIPTION = "webcam_server is a program that allows others to view your webcam from a web browser." -MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>" HOMEPAGE = "http://webcamserver.sourceforge.net/" LICENSE = "GPL" diff --git a/packages/webkit/.mtn2git_empty b/packages/webkit/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/webkit/.mtn2git_empty diff --git a/packages/webkit/webkit/.mtn2git_empty b/packages/webkit/webkit/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/webkit/webkit/.mtn2git_empty diff --git a/packages/webkit/webkit/Makefile b/packages/webkit/webkit/Makefile new file mode 100644 index 0000000000..89344f7a58 --- /dev/null +++ b/packages/webkit/webkit/Makefile @@ -0,0 +1,22 @@ +MODULES = JavaScriptCore JavaScriptGlue WebCore WebKit WebKitTools + +all: + @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ + if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done + +debug d development dev develop: + @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ + if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done + +release r deployment dep deploy: + @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ + if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done + +universal u: + @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ + if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done + +clean: + @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ + if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done + diff --git a/packages/webkit/webkit/Makefile.shared b/packages/webkit/webkit/Makefile.shared new file mode 100644 index 0000000000..df3389ca3b --- /dev/null +++ b/packages/webkit/webkit/Makefile.shared @@ -0,0 +1,20 @@ +XCODE_OPTIONS = `perl -I../WebKitTools/Scripts -Mwebkitdirs -e 'print XcodeOptionString()'` $(ARGS) + +all: + ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} ) + +debug d development dev develop: force + ../WebKitTools/Scripts/set-webkit-configuration --debug + ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} ) + +release r deployment dep deploy: force + ../WebKitTools/Scripts/set-webkit-configuration --release + ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} ) + +universal u: force + ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) 'ARCHS=ppc i386' | grep -v setenv && exit $${PIPESTATUS[0]} ) + +clean: + ( xcodebuild -alltargets clean $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} ) + +force: ; diff --git a/packages/webkit/webkit/WebKit.pri b/packages/webkit/webkit/WebKit.pri new file mode 100644 index 0000000000..168e5558b6 --- /dev/null +++ b/packages/webkit/webkit/WebKit.pri @@ -0,0 +1,55 @@ +# Include file to make it easy to include WebKit into Qt projects + + +isEmpty(OUTPUT_DIR):OUTPUT_DIR=$$PWD/WebKitBuild/Release + +!gdk-port:CONFIG += qt-port +qt-port:DEFINES += BUILDING_QT__=1 +qt-port:LIBS += -L$$OUTPUT_DIR/lib -lWebKitQt +gdk-port:CONFIG += link_pkgconfig +gdk-port:PKGCONFIG += cairo gdk-2.0 gtk+-2.0 libcurl +gdk-port:DEFINES += BUILDING_GDK__=1 BUILDING_CAIRO__ +gdk-port:LIBS += -L$$OUTPUT_DIR/lib -lWebKitGdk $$system(icu-config --ldflags) +gdk-port:QMAKE_CXXFLAGS += $$system(icu-config --cppflags) + +DEFINES += USE_SYSTEM_MALLOC +CONFIG(release) { + DEFINES += NDEBUG +} + +BASE_DIR = $$PWD +qt-port:INCLUDEPATH += \ + $$PWD/WebKitQt/Api +gdk-port:INCLUDEPATH += \ + $$BASE_DIR/WebCore/platform/gdk \ + $$BASE_DIR/WebCore/platform/network/gdk \ + $$BASE_DIR/WebCore/platform/graphics/cairo \ + $$BASE_DIR/WebCore/loader/gdk \ + $$BASE_DIR/WebCore/page/gdk +INCLUDEPATH += \ + $$BASE_DIR/JavaScriptCore/ \ + $$BASE_DIR/JavaScriptCore/kjs \ + $$BASE_DIR/JavaScriptCore/bindings \ + $$BASE_DIR/JavaScriptCore/bindings/c \ + $$BASE_DIR/JavaScriptCore/wtf \ + $$BASE_DIR/WebCore \ + $$BASE_DIR/WebCore/ForwardingHeaders \ + $$BASE_DIR/WebCore/platform \ + $$BASE_DIR/WebCore/platform/network \ + $$BASE_DIR/WebCore/platform/graphics \ + $$BASE_DIR/WebCore/loader \ + $$BASE_DIR/WebCore/page \ + $$BASE_DIR/WebCore/css \ + $$BASE_DIR/WebCore/dom \ + $$BASE_DIR/WebCore/bridge \ + $$BASE_DIR/WebCore/editing \ + $$BASE_DIR/WebCore/rendering \ + $$BASE_DIR/WebCore/history \ + $$BASE_DIR/WebCore/xml \ + $$BASE_DIR/WebCore/html + + +macx { + INCLUDEPATH += /usr/include/libxml2 + LIBS += -lxml2 -lxslt +} diff --git a/packages/webkit/webkit/WebKit.pro b/packages/webkit/webkit/WebKit.pro new file mode 100644 index 0000000000..eae6a46180 --- /dev/null +++ b/packages/webkit/webkit/WebKit.pro @@ -0,0 +1,12 @@ +TEMPLATE = subdirs +CONFIG += ordered +!gdk-port:CONFIG += qt-port +SUBDIRS = \ + WebCore \ + JavaScriptCore/kjs/testkjs.pro + +qt-port:SUBDIRS += \ + WebKitQt/QtLauncher \ + WebKitTools/DumpRenderTree/DumpRenderTree.qtproj/DumpRenderTree.pro +gdk-port:SUBDIRS += \ + WebKitTools/GdkLauncher diff --git a/packages/webkit/webkit_svn.bb b/packages/webkit/webkit_svn.bb new file mode 100644 index 0000000000..433afb52d2 --- /dev/null +++ b/packages/webkit/webkit_svn.bb @@ -0,0 +1,54 @@ +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 pkgconfig + +SRC_URI = "\ + svn://svn.webkit.org/repository/webkit/trunk/;module=JavaScriptCore;proto=http \ + svn://svn.webkit.org/repository/webkit/trunk/;module=JavaScriptGlue;proto=http \ + svn://svn.webkit.org/repository/webkit/trunk/;module=WebCore;proto=http \ + svn://svn.webkit.org/repository/webkit/trunk/;module=WebKit;proto=http \ + svn://svn.webkit.org/repository/webkit/trunk/;module=WebKitLibraries;proto=http \ +# svn://svn.webkit.org/repository/webkit/trunk/;module=WebKitQt;proto=http \ + svn://svn.webkit.org/repository/webkit/trunk/;module=WebKitTools;proto=http \ + file://Makefile \ + file://Makefile.shared \ + file://WebKit.pri \ + file://WebKit.pro \ +" + +S = "${WORKDIR}/" + + +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 -spec ${QMAKESPEC} -r OUTPUT_DIR=$PWD/ CONFIG-=qt CONFIG+=gdk-port $PWD/../../WebKit.pro +} + +do_compile_prepend() { + cd ${S}/WebKitBuilds/Debug +} + +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/wget/wget-1.9.1/ipv6-fix.patch b/packages/wget/wget-1.9.1/ipv6-fix.patch new file mode 100644 index 0000000000..315dd25c00 --- /dev/null +++ b/packages/wget/wget-1.9.1/ipv6-fix.patch @@ -0,0 +1,31 @@ +If the kernel has IPv6 support then wget tries to create sockets using +AF_INET6 and then gets an EAFNOSUPPORT error, which it treats as a +connection failure, resulting in wget not being able to work. This patch +makes it switch it's default protocol to IPv4 when it sees that IPv6 isn't +supported in the kernel. + +Index: wget-1.9.1/src/connect.c +=================================================================== +--- wget-1.9.1.orig/src/connect.c 2003-11-02 01:08:22.000000000 +1100 ++++ wget-1.9.1/src/connect.c 2007-06-02 01:39:55.000000000 +1000 +@@ -244,12 +244,20 @@ + { + ip_address addr; + int sock; ++retry: + address_list_copy_one (al, i, &addr); + + sock = connect_to_one (&addr, port, silent); + if (sock >= 0) + /* Success. */ + return sock; ++ ++ if (errno == EAFNOSUPPORT && ip_default_family == AF_INET6) ++ { ++ DEBUGP (("No IPv6 support, changing default to IPv4.\n")); ++ ip_default_family = AF_INET; ++ goto retry; ++ } + + address_list_set_faulty (al, i); + diff --git a/packages/wget/wget_1.9.1.bb b/packages/wget/wget_1.9.1.bb index 2e576bd2e4..d3858e4e47 100644 --- a/packages/wget/wget_1.9.1.bb +++ b/packages/wget/wget_1.9.1.bb @@ -1,12 +1,13 @@ DESCRIPTION = "A console URL download utility featuring HTTP, FTP, and more." SECTION = "console/network" DEPENDS = "" -PR = "r6" +PR = "r7" LICENSE = "GPL" SRC_URI = "${GNU_MIRROR}/wget/wget-${PV}.tar.gz \ file://m4macros.patch;patch=1 \ - file://autotools.patch;patch=1" + file://autotools.patch;patch=1 \ + file://ipv6-fix.patch;patch=1" S = "${WORKDIR}/wget-${PV}" inherit autotools gettext diff --git a/packages/wireless-tools/wireless-tools.inc b/packages/wireless-tools/wireless-tools.inc new file mode 100644 index 0000000000..857f63c91b --- /dev/null +++ b/packages/wireless-tools/wireless-tools.inc @@ -0,0 +1,36 @@ +DESCRIPTION = "Tools for the Linux Standard Wireless Extension Subsystem" +HOMEPAGE = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" +SECTION = "base" +PRIORITY = "optional" +LICENSE = "GPL" + +SRC_URI = "file://man.patch;patch=1 \ + file://wireless-tools.if-pre-up" + +CFLAGS =+ "-I${S}" +EXTRA_OEMAKE = "-e 'BUILD_SHARED=y' \ + 'INSTALL_DIR=${D}${base_sbindir}' \ + 'INSTALL_LIB=${D}${libdir}' \ + 'INSTALL_INC=${D}${includedir}' \ + 'INSTALL_MAN=${D}${mandir}'" + +do_compile() { + oe_runmake all libiw.a +} + +do_stage() { + install -m 0644 wireless.h ${STAGING_INCDIR}/ + install -m 0644 iwlib.h ${STAGING_INCDIR}/ + oe_libinstall -a -so libiw ${STAGING_LIBDIR}/ +} + +PACKAGES += "libiw libiw-dev libiw-doc libiw-dbg ifrename ifrename-dbg ifrename-doc" +FILES_libiw += "${libdir}/*.so.*" +FILES_libiw-dbg += "${libdir}/.debug/*.so.*" +FILES_libiw-dev += "${libdir}/*.a ${libdir}/*.so ${includedir}" +FILES_libiw-doc += "${mandir}/man7" +FILES_ifrename += "${sbindir}/ifrename" +FILES_ifrename-dbg += "${sbindir}/.debug/ifrename" +FILES_ifrename-doc += "${mandir}/man8/ifrename.8 ${mandir}/man5/iftab.5" +FILES_${PN} += "${bindir} ${sbindir}/iw* ${base_sbindir} ${base_bindir} ${sysconfdir}/network" +FILES_${PN}-doc += "${mandir}/man8" diff --git a/packages/wireless-tools/wireless-tools_26.bb b/packages/wireless-tools/wireless-tools_26.bb deleted file mode 100644 index 4a478663e6..0000000000 --- a/packages/wireless-tools/wireless-tools_26.bb +++ /dev/null @@ -1,34 +0,0 @@ -DESCRIPTION = "Tools for the Linux Standard Wireless Extension Subsystem" -HOMEPAGE = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" -SECTION = "base" -PRIORITY = "optional" -DEPENDS = "virtual/kernel" -LICENSE = "GPL" -PR = "r6" - -SRC_URI = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.${PV}.tar.gz \ - file://man.patch;patch=1 \ - file://wireless-tools.if-pre-up" -S = "${WORKDIR}/wireless_tools.${PV}" - -inherit module-base - -do_configure() { - rm -f wireless.h -} - -do_compile() { - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake KERNEL_SRC=${KERNEL_SOURCE} KERNEL_VERSION=${KERNEL_VERSION} BUILD_SHARED=y -} - -do_install() { - oe_runmake PREFIX=${D} install - install -d ${D}${sysconfdir}/network/if-pre-up.d - install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools -} - -FILES_${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir}/lib*.so.* \ - ${sysconfdir} ${sharedstatedir} ${localstatedir} \ - /bin /sbin /lib/*.so* ${datadir}/${PN} ${libdir}/${PN} \ - /etc/network" diff --git a/packages/wireless-tools/wireless-tools_27.bb b/packages/wireless-tools/wireless-tools_27.bb deleted file mode 100644 index c26e40cf3c..0000000000 --- a/packages/wireless-tools/wireless-tools_27.bb +++ /dev/null @@ -1,43 +0,0 @@ -DESCRIPTION = "Tools for the Linux Standard Wireless Extension Subsystem" -HOMEPAGE = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" -SECTION = "base" -PRIORITY = "optional" -#DEPENDS = "virtual/kernel" -LICENSE = "GPL" -PR = "r1" - -SRC_URI = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.${PV}.tar.gz \ - file://man.patch;patch=1 \ - file://fixheaders.patch;patch=1 \ - file://wireless-tools.if-pre-up" -S = "${WORKDIR}/wireless_tools.${PV}" - -CFLAGS =+ "-I${S}" -EXTRA_OEMAKE = "-e 'BUILD_SHARED=y' \ - 'INSTALL_DIR=${D}${base_sbindir}' \ - 'INSTALL_LIB=${D}${libdir}' \ - 'INSTALL_INC=${D}${includedir}' \ - 'INSTALL_MAN=${D}${mandir}'" - -do_compile() { - oe_runmake all libiw.a -} - -do_stage () { - install -m 0644 wireless.h ${STAGING_INCDIR}/ - install -m 0644 iwlib.h ${STAGING_INCDIR}/ - oe_libinstall -a -so libiw ${STAGING_LIBDIR}/ -} - -do_install() { - oe_runmake PREFIX=${D} install install-static - install -d ${D}${sysconfdir}/network/if-pre-up.d - install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools -} - -PACKAGES = "libiw libiw-dev libiw-doc ${PN} ${PN}-doc" -FILES_libiw = "${libdir}/*.so.*" -FILES_libiw-dev = "${libdir}/*.a ${libdir}/*.so ${includedir}" -FILES_libiw-doc = "${mandir}/man7" -FILES_${PN} = "${bindir} ${sbindir} ${base_sbindir} ${base_bindir} ${sysconfdir}/network" -FILES_${PN}-doc = "${mandir}/man8" diff --git a/packages/wireless-tools/wireless-tools_28+29pre10.bb b/packages/wireless-tools/wireless-tools_28+29pre10.bb new file mode 100644 index 0000000000..cf519cd9f1 --- /dev/null +++ b/packages/wireless-tools/wireless-tools_28+29pre10.bb @@ -0,0 +1,14 @@ +require wireless-tools.inc + +PR = "r3" + +SRC_URI += "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.pre10.tar.gz" +S = "${WORKDIR}/wireless_tools.29" + +do_install() { + oe_runmake PREFIX=${D} install-iwmulticall install-dynamic install-man install-hdr + install -d ${D}${sbindir} + install -m 0755 ifrename ${D}${sbindir}/ifrename + install -d ${D}${sysconfdir}/network/if-pre-up.d + install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools +} diff --git a/packages/wireless-tools/wireless-tools_28+29pre21.bb b/packages/wireless-tools/wireless-tools_28+29pre21.bb new file mode 100644 index 0000000000..b42af6fee2 --- /dev/null +++ b/packages/wireless-tools/wireless-tools_28+29pre21.bb @@ -0,0 +1,14 @@ +require wireless-tools.inc + +SRC_URI += "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.pre21.tar.gz \ + file://zzz-wireless.if-pre-up" +S = "${WORKDIR}/wireless_tools.29" + +do_install() { + oe_runmake PREFIX=${D} install-iwmulticall install-dynamic install-man install-hdr + install -d ${D}${sbindir} + install -m 0755 ifrename ${D}${sbindir}/ifrename + install -d ${D}${sysconfdir}/network/if-pre-up.d + install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools + install ${WORKDIR}/zzz-wireless.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/zzz-wireless +} diff --git a/packages/wireless-tools/wireless-tools_28-pre13.bb b/packages/wireless-tools/wireless-tools_28-pre13.bb deleted file mode 100644 index 170f67deeb..0000000000 --- a/packages/wireless-tools/wireless-tools_28-pre13.bb +++ /dev/null @@ -1,43 +0,0 @@ -DESCRIPTION = "Tools for the Linux Standard Wireless Extension Subsystem" -HOMEPAGE = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPL" -PR = "r1" - -SRC_URI = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.28.pre13.tar.gz \ - file://man.patch;patch=1 \ - file://wireless-tools.if-pre-up \ - file://zzz-wireless.if-pre-up" -S = "${WORKDIR}/wireless_tools.28" - -CFLAGS =+ "-I${S}" -EXTRA_OEMAKE = "-e 'BUILD_SHARED=y' \ - 'INSTALL_DIR=${D}${base_sbindir}' \ - 'INSTALL_LIB=${D}${libdir}' \ - 'INSTALL_INC=${D}${includedir}' \ - 'INSTALL_MAN=${D}${mandir}'" - -do_compile() { - oe_runmake all libiw.a -} - -do_stage() { - install -m 0644 wireless.h ${STAGING_INCDIR}/ - install -m 0644 iwlib.h ${STAGING_INCDIR}/ - oe_libinstall -a -so libiw ${STAGING_LIBDIR}/ -} - -do_install() { - oe_runmake PREFIX=${D} install-iwmulticall install-dynamic - install -d ${D}${sysconfdir}/network/if-pre-up.d - install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools - install ${WORKDIR}/zzz-wireless.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/zzz-wireless -} - -PACKAGES = "libiw libiw-dev libiw-doc ${PN} ${PN}-doc" -FILES_libiw = "${libdir}/*.so.*" -FILES_libiw-dev = "${libdir}/*.a ${libdir}/*.so ${includedir}" -FILES_libiw-doc = "${mandir}/man7" -FILES_${PN} = "${bindir} ${sbindir} ${base_sbindir} ${base_bindir} ${sysconfdir}/network" -FILES_${PN}-doc = "${mandir}/man8" diff --git a/packages/wireless-tools/wireless-tools_28.bb b/packages/wireless-tools/wireless-tools_28.bb new file mode 100644 index 0000000000..92a49daae2 --- /dev/null +++ b/packages/wireless-tools/wireless-tools_28.bb @@ -0,0 +1,14 @@ +require wireless-tools.inc + +PR = "r1" + +SRC_URI += "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.28.pre13.tar.gz \ + file://zzz-wireless.if-pre-up" +S = "${WORKDIR}/wireless_tools.28" + +do_install() { + oe_runmake PREFIX=${D} install-iwmulticall install-dynamic + install -d ${D}${sysconfdir}/network/if-pre-up.d + install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools + install ${WORKDIR}/zzz-wireless.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/zzz-wireless +} diff --git a/packages/wireless-tools/wireless-tools_29-pre10.bb b/packages/wireless-tools/wireless-tools_29-pre10.bb deleted file mode 100644 index febe662602..0000000000 --- a/packages/wireless-tools/wireless-tools_29-pre10.bb +++ /dev/null @@ -1,45 +0,0 @@ -DESCRIPTION = "Tools for the Linux Standard Wireless Extension Subsystem" -HOMEPAGE = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPL" -PR = "r2" - -SRC_URI = "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.pre10.tar.gz \ - file://man.patch;patch=1 \ - file://wireless-tools.if-pre-up" - -S = "${WORKDIR}/wireless_tools.29" - -CFLAGS =+ "-I${S}" -EXTRA_OEMAKE = "-e 'BUILD_SHARED=y' \ - 'INSTALL_DIR=${D}${base_sbindir}' \ - 'INSTALL_LIB=${D}${libdir}' \ - 'INSTALL_INC=${D}${includedir}' \ - 'INSTALL_MAN=${D}${mandir}'" - -do_compile() { - oe_runmake all libiw.a -} - -do_stage() { - install -m 0644 wireless.h ${STAGING_INCDIR}/ - install -m 0644 iwlib.h ${STAGING_INCDIR}/ - oe_libinstall -a -so libiw ${STAGING_LIBDIR}/ -} - -do_install() { - oe_runmake PREFIX=${D} install-iwmulticall install-dynamic install-man install-hdr - install -d ${D}${sbindir} - install -m 0755 ifrename ${D}${sbindir}/ifrename - install -d ${D}${sysconfdir}/network/if-pre-up.d - install ${WORKDIR}/wireless-tools.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/wireless-tools -} - -PACKAGES = "libiw libiw-dev libiw-doc ifrename ${PN} ${PN}-doc ${PN}-dbg " -FILES_libiw = "${libdir}/*.so.*" -FILES_libiw-dev = "${libdir}/*.a ${libdir}/*.so ${includedir}" -FILES_libiw-doc = "${mandir}/man7" -FILES_ifrename = "${sbindir}/ifrename" -FILES_${PN} = "${bindir} ${sbindir}/iw* ${base_sbindir} ${base_bindir} ${sysconfdir}/network" -FILES_${PN}-doc = "${mandir}/man8" diff --git a/packages/wpa-supplicant/files/functions.sh b/packages/wpa-supplicant/files/functions.sh new file mode 100755 index 0000000000..5132fbbca4 --- /dev/null +++ b/packages/wpa-supplicant/files/functions.sh @@ -0,0 +1,841 @@ +#!/bin/sh + +# Copyright (C) 2006 Debian/Ubuntu wpasupplicant Maintainers +# <pkg-wpa-devel@lists.alioth.debian.org> +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program 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. +# +# On Debian GNU/Linux systems, the text of the GPL license can be +# found in /usr/share/common-licenses/GPL. + +##################################################################### +## global variables +# wpa_supplicant variables +WPA_SUP_BIN="/usr/sbin/wpa_supplicant" +WPA_SUP_PNAME="wpa_supplicant" +WPA_SUP_PIDFILE="/var/run/wpa_supplicant.$WPA_IFACE.pid" + +# wpa_cli variables +WPA_CLI_BIN="/usr/sbin/wpa_cli" +WPA_CLI_PNAME="wpa_cli" +WPA_CLI_PIDFILE="/var/run/wpa_action.$WPA_IFACE.pid" +WPA_CLI_LOGFILE="/var/log/wpa_action.log" +WPA_CLI_TIMESTAMP="/var/run/wpa_action.$WPA_IFACE.timestamp" + +# default ctrl_interface socket directory +if [ -z "$WPA_CTRL_DIR" ]; then + WPA_CTRL_DIR="/var/run/wpa_supplicant" +fi + +# verbosity variables +if [ -n "$IF_WPA_VERBOSITY" ] || [ "$VERBOSITY" = "1" ]; then + TO_NULL="/dev/stdout" + DAEMON_VERBOSITY="--verbose" +else + TO_NULL="/dev/null" + DAEMON_VERBOSITY="--quiet" +fi + +##################################################################### +## wpa_cli wrapper +# Path to common ctrl_interface socket and iface supplied. +# NB: WPA_CTRL_DIR cannot be used for interactive commands. +# +wpa_cli () { + $WPA_CLI_BIN -p $WPA_CTRL_DIR -i $WPA_IFACE "$@" +} + +##################################################################### +## verbose and stderr message wrapper +# Ensures a standard and easily identifiable message is printed by +# scripts using this function library. +# +# verbose To stdout when IF_WPA_VERBOSITY or VERBOSITY is true +# +# action Same as verbose but without newline +# Useful for allowing wpa_cli commands to echo result +# value of 'OK' or 'FAILED' +# +# stderr Echo warning or error messages to stderr +# +# NB: when called by wpa_action, there is no redirection (verbose) +# +wpa_msg () { + + if [ -n "$WPA_ACTION" ]; then + shift + echo "wpa_action: $@" + return + fi + + case "$1" in + "verbose") + shift + echo "$WPA_SUP_PNAME: $@" >$TO_NULL + ;; + "action") + shift + echo -n "$WPA_SUP_PNAME: $@ -- " >$TO_NULL + ;; + "stderr") + shift + echo "$WPA_SUP_PNAME: $@" >/dev/stderr + ;; + *) + ;; + esac +} + +##################################################################### +## validate daemon pid files +# Test daemon process ID files via start-stop-daemon with a signal 0 +# given the exec binary and pidfile location. +# +# $1 daemon +# $2 pidfile +# +# Returns true when pidfile exists, the process ID exists _and_ was +# created by the exec binary. +# +# If the test fails, but the pidfile exists, it is stale +# +test_daemon_pidfile () { + local DAEMON PIDFILE + + if [ -n "$1" ]; then + DAEMON="$1" + fi + + if [ -f "$2" ]; then + PIDFILE="$2" + fi + + if [ -n "$DAEMON" ] && [ -f "$PIDFILE" ]; then + if start-stop-daemon --stop --quiet --signal 0 \ + --exec "$DAEMON" --pidfile "$PIDFILE"; then + return 0 + else + rm -f "$PIDFILE" + return 1 + fi + else + return 1 + fi +} + +# validate wpa_supplicant pidfile +test_wpa_supplicant () { + test_daemon_pidfile "$WPA_SUP_BIN" "$WPA_SUP_PIDFILE" +} + +# validate wpa_cli pidfile +test_wpa_cli () { + test_daemon_pidfile "$WPA_CLI_BIN" "$WPA_CLI_PIDFILE" +} + +##################################################################### +## daemonize wpa_supplicant +# Start wpa_supplicant via start-stop-dameon with all required +# options. Will start if environment variable WPA_SUP_CONF is present +# +# Required options: +# -B dameonize/background process +# -D driver backend ('wext' if none given) +# -P process ID file +# -C path to ctrl_interface socket directory +# +# Optional options: +# -c configuration file +# -W wait for wpa_cli to attach to ctrl_interface socket +# -b bridge interface name +# +init_wpa_supplicant () { + if [ -n "$WPA_SUP_CONF" ]; then + # wpa-action was removed, point to wpa-roam + if [ -n "$IF_WPA_ACTION" ]; then + wpa_msg stderr "wpa-action support has been removed" + wpa_msg stderr "refer to /usr/share/doc/wpasupplicant/README.modes.gz" + return 1 + fi + + local WPA_SUP_DRIVER WPA_SUP_OPTIONS + + if [ -n "$WPA_ACTION_SCRIPT" ]; then + if [ -x "$WPA_ACTION_SCRIPT" ]; then + WPA_SUP_OPTIONS="-W -B -P $WPA_SUP_PIDFILE -i $WPA_IFACE" + wpa_msg verbose "wait for wpa_cli to attach" + else + wpa_msg stderr "action script \"$WPA_ACTION_SCRIPT\" not executable" + return 1 + fi + else + WPA_SUP_OPTIONS="-B -P $WPA_SUP_PIDFILE -i $WPA_IFACE" + fi + + if [ -n "$IF_WPA_BRIDGE" ]; then + WPA_SUP_OPTIONS="$WPA_SUP_OPTIONS -b $IF_WPA_BRIDGE" + wpa_msg verbose "wpa-bridge $IF_WPA_BRIDGE" + fi + + if [ -n "$IF_WPA_DRIVER" ]; then + WPA_SUP_DRIVER="$IF_WPA_DRIVER" + wpa_msg verbose "wpa-driver $WPA_SUP_DRIVER" + else + WPA_SUP_DRIVER="wext" + wpa_msg verbose "using default driver type: wpa-driver $WPA_SUP_DRIVER" + fi + + wpa_msg verbose "$WPA_SUP_BIN $WPA_SUP_OPTIONS -D $WPA_SUP_DRIVER $WPA_SUP_CONF" + + start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \ + --name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \ + -- $WPA_SUP_OPTIONS -D $WPA_SUP_DRIVER $WPA_SUP_CONF + + if [ "$?" != "0" ]; then + wpa_msg stderr "$WPA_SUP_BIN daemon failed to start" + return 1 + fi + + local WPA_SOCKET_WAIT MAX_WPA_SOCKET_WAIT + WPA_SOCKET_WAIT="0" + MAX_WPA_SOCKET_WAIT="5" + until [ -S "$WPA_CTRL_DIR/$WPA_IFACE" ]; do + if [ "$WPA_SOCKET_WAIT" -ge "$MAX_WPA_SOCKET_WAIT" ]; then + wpa_msg stderr "ctrl_interface socket not found at $WPA_CTRL_DIR/$WPA_IFACE" + return 1 + else + wpa_msg verbose "waiting for \"$WPA_CTRL_DIR/$WPA_IFACE\": $WPA_SOCKET_WAIT (max. $MAX_WPA_SOCKET_WAIT)" + fi + + WPA_SOCKET_WAIT=$(($WPA_SOCKET_WAIT + 1)) + sleep 1 + done + + wpa_msg verbose "ctrl_interface socket located at $WPA_CTRL_DIR/$WPA_IFACE" + else + wpa_msg stderr "init_wpa_supplicant() called without WPA_SUP_CONF" + return 1 + fi +} + +##################################################################### +## stop wpa_supplicant process +# Kill wpa_supplicant via start-stop-daemon, given the location of +# the pidfile or ctrl_interface socket path and interface name +# +kill_wpa_supplicant () { + if test_wpa_supplicant; then + + wpa_msg verbose "terminating $WPA_SUP_PNAME daemon via pidfile $WPA_SUP_PIDFILE" + + start-stop-daemon --stop --oknodo $DAEMON_VERBOSITY \ + --exec $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE + + if [ -f "$WPA_SUP_PIDFILE" ]; then + rm -f "$WPA_SUP_PIDFILE" + fi + elif [ -S "$WPA_CTRL_DIR/$WPA_IFACE" ]; then + + wpa_msg action "terminating via ctrl_interface socket $WPA_CTRL_DIR/$WPA_IFACE" + + wpa_cli terminate >$TO_NULL + + if [ -S "$WPA_CTRL_DIR/$WPA_IFACE" ]; then + rm -f "$WPA_CTRL_DIR/$WPA_IFACE" + fi + fi +} + +##################################################################### +## reload wpa_supplicant process +# Sending a HUP signal causes wpa_supplicant to reparse its +# configuration file +# +reload_wpa_supplicant () { + if test_wpa_supplicant; then + wpa_msg verbose "reloading wpa_supplicant configuration file via HUP signal" + start-stop-daemon --stop --signal HUP \ + --name "$WPA_SUP_PNAME" --pidfile "$WPA_SUP_PIDFILE" + else + wpa_msg verbose "cannot $WPA_ACTION, $WPA_SUP_PIDFILE does not exist" + fi +} + +##################################################################### +## daemonize wpa_cli and action script +# If environment variable WPA_ACTION_SCRIPT is present, wpa_cli will +# be spawned via start-stop-daemon +# +# Required options: +# -a action script => wpa_action +# -P process ID file +# -B background process +# +init_wpa_cli () { + if [ -n "$WPA_ACTION_SCRIPT" ]; then + local WPA_CLI_OPTIONS + WPA_CLI_OPTIONS="-B -P $WPA_CLI_PIDFILE -i $WPA_IFACE" + + wpa_msg verbose "$WPA_CLI_BIN $WPA_CLI_OPTIONS -p $WPA_CTRL_DIR -a $WPA_ACTION_SCRIPT" + + start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \ + --name $WPA_CLI_PNAME --startas $WPA_CLI_BIN --pidfile $WPA_CLI_PIDFILE \ + -- $WPA_CLI_OPTIONS -p $WPA_CTRL_DIR -a $WPA_ACTION_SCRIPT + + if [ "$?" != "0" ]; then + wpa_msg stderr "$WPA_CLI_BIN daemon failed to start" + return 1 + fi + fi +} + +##################################################################### +## stop wpa_cli process +# Kill wpa_cli via start-stop-daemon, given the location of the +# pidfile +# +kill_wpa_cli () { + if test_wpa_cli; then + + wpa_msg verbose "terminating $WPA_CLI_PNAME daemon via pidfile $WPA_CLI_PIDFILE" + + start-stop-daemon --stop --oknodo $DAEMON_VERBOSITY \ + --exec $WPA_CLI_BIN --pidfile $WPA_CLI_PIDFILE + + if [ -f "$WPA_CLI_PIDFILE" ]; then + rm -f "$WPA_CLI_PIDFILE" + fi + fi +} + +##################################################################### +## higher level wpa_cli wrapper for variable and set_network commands +# wpa_cli_do <value> <type> <variable> [set_network variable] <desc> +# +# $1 envorinment variable +# $2 data type of variable {raw|ascii} +# $3 wpa_cli variable, if $3 is set_network, shift and take +# set_network subvariable +# $4 wpa-* string as it would appear in interfaces file, enhances +# verbose messages +# +wpa_cli_do () { + if [ -z "$1" ]; then + return 0 + fi + + local WPACLISET_VALUE WPACLISET_VARIABLE WPACLISET_DESC + + case "$2" in + ascii) + # Double quote + WPACLISET_VALUE="\"$1\"" + ;; + raw|*) + # Provide raw value + WPACLISET_VALUE="$1" + ;; + esac + + case "$3" in + set_network) + if [ -z "$WPA_ID" ]; then + return 1 + fi + shift + WPACLISET_VARIABLE="set_network $WPA_ID $3" + ;; + *) + WPACLISET_VARIABLE="$3" + ;; + esac + + case "$4" in + *-psk|*-passphrase|*-passwd*|*-wep-key*) + WPACLISET_DESC="$4 *****" + ;; + *) + WPACLISET_DESC="$4 $WPACLISET_VALUE" + ;; + esac + + wpa_msg action "$WPACLISET_DESC" + + wpa_cli $WPACLISET_VARIABLE "$WPACLISET_VALUE" >$TO_NULL +} + +##################################################################### +## check value data type in plaintext or hex +# returns 0 if input consists of hexadecimal digits only, 1 otherwise +# +ishex () { + if [ -z "$1" ]; then + return 0 + fi + + case "$1" in + *[!0-9a-fA-F]*) + # plaintext + return 1 + ;; + *) + # hexadecimal + return 0 + ;; + esac +} + +##################################################################### +## sanity check and set psk|passphrase +# Warn about strange psk|passphrase values +# +# $1 psk or passphrase value +# +# If psk is surrounded by quotes strip them. +# +# If psk contains all hexadecimal characters and string length is 64: +# is 256bit hexadecimal +# else: +# is plaintext +# +# plaintext passphrases must be 8 - 63 characters in length +# 256-bit hexadecimal key must be 64 characters in length +# +wpa_key_check_and_set () { + if [ -z "$1" ]; then + return 0 + fi + + local KEY KEY_TYPE + + case "$1" in + '"'*'"') + # Strip surrounding quotation marks + KEY=$(echo -n "$1" | sed 's/^"//;s/"$//') + ;; + *) + KEY="$1" + ;; + esac + + if ishex "$KEY" && [ "${#KEY}" -eq "64" ]; then + KEY_TYPE="raw" + else + KEY_TYPE="ascii" + if [ "${#KEY}" -lt "8" ] || [ "${#KEY}" -gt "63" ]; then + wpa_msg stderr \ + "plaintext or ascii wpa-psk has ${#KEY} characters, it must have between 8 and 63" + wpa_msg stderr \ + "if wpa-psk truly is a 256-bit hexadecimal key, it must have 64 characters" + fi + fi + + wpa_cli_do "$KEY" "$KEY_TYPE" \ + set_network psk wpa-psk +} + +##################################################################### +## formulate a usable configuration from interfaces(5) wpa- lines +# A series of wpa_cli commands corresponding to environment variables +# created as a result of wpa- lines in an interfaces stanza. +# +# NB: no-act when roaming daemon is used (to avoid prematurely +# attaching to ctrl_interface socket) +# +conf_wpa_supplicant () { + if [ -n "$WPA_ACTION_SCRIPT" ]; then + return 0 + fi + + if [ "$IF_WPA_DRIVER" = "wired" ]; then + IF_WPA_AP_SCAN="0" + wpa_msg verbose "forcing ap_scan=0 (required for wired IEEE8021X auth)" + fi + + if [ -n "$IF_WPA_ESSID" ]; then + # #403316, be similar to wireless tools + IF_WPA_SSID="$IF_WPA_ESSID" + fi + + wpa_cli_do "$IF_WPA_AP_SCAN" raw \ + ap_scan wpa-ap-scan + + wpa_cli_do "$IF_WPA_PREAUTHENTICATE" raw \ + preauthenticate wpa-preauthenticate + + if [ -n "$IF_WPA_SSID" ] || [ "$IF_WPA_DRIVER" = "wired" ]; then + + case "$IF_WPA_SSID" in + '"'*'"') + IF_WPA_SSID=$(echo -n "$IF_WPA_SSID" | sed 's/^"//;s/"$//') + ;; + *) + ;; + esac + + WPA_ID=$(wpa_cli add_network) + + wpa_msg verbose "configuring network block -- $WPA_ID" + + wpa_cli_do "$IF_WPA_SSID" ascii \ + set_network ssid wpa-ssid + + wpa_cli_do "$IF_WPA_PRIORITY" raw \ + set_network priority wpa-priority + + wpa_cli_do "$IF_WPA_BSSID" raw \ + set_network bssid wpa-bssid + + if [ -s "$IF_WPA_PSK_FILE" ]; then + IF_WPA_PSK=$(cat "$IF_WPA_PSK_FILE") + fi + + # remain compat with wpa-passphrase-file + if [ -s "$IF_WPA_PASSPHRASE_FILE" ]; then + IF_WPA_PSK=$(cat "$IF_WPA_PASSPHRASE_FILE") + fi + + # remain compat with wpa-passphrase + if [ -n "$IF_WPA_PASSPHRASE" ]; then + IF_WPA_PSK="$IF_WPA_PASSPHRASE" + fi + + if [ -n "$IF_WPA_PSK" ]; then + wpa_key_check_and_set "$IF_WPA_PSK" + fi + + wpa_cli_do "$IF_WPA_PAIRWISE" raw \ + set_network pairwise wpa-pairwise + + wpa_cli_do "$IF_WPA_GROUP" raw \ + set_network group wpa-group + + wpa_cli_do "$IF_WPA_MODE" raw \ + set_network mode wpa-mode + + wpa_cli_do "$IF_WPA_FREQUENCY" raw \ + set_network frequency wpa-frequency + + wpa_cli_do "$IF_WPA_KEY_MGMT" raw \ + set_network key_mgmt wpa-key-mgmt + + wpa_cli_do "$IF_WPA_PROTO" raw \ + set_network proto wpa-proto + + wpa_cli_do "$IF_WPA_AUTH_ALG" raw \ + set_network auth_alg wpa-auth-alg + + wpa_cli_do "$IF_WPA_SCAN_SSID" raw \ + set_network scan_ssid wpa-scan-ssid + + wpa_cli_do "$IF_WPA_IDENTITY" ascii \ + set_network identity wpa-identity + + wpa_cli_do "$IF_WPA_ANONYMOUS_IDENTITY" ascii \ + set_network anonymous_identity wpa-anonymous-identity + + wpa_cli_do "$IF_WPA_EAP" raw \ + set_network eap wpa-eap + + wpa_cli_do "$IF_WPA_EAPPSK" raw \ + set_network eappsk wpa-eappsk + + wpa_cli_do "$IF_WPA_NAI" ascii \ + set_network nai wpa-nai + + wpa_cli_do "$IF_WPA_PASSWORD" ascii \ + set_network password wpa-password + + wpa_cli_do "$IF_WPA_CA_CERT" ascii \ + set_network ca_cert wpa-ca-cert + + wpa_cli_do "$IF_WPA_CA_PATH" ascii \ + set_network ca_path wpa-ca-path + + wpa_cli_do "$IF_WPA_CLIENT_CERT" ascii \ + set_network client_cert wpa-client-cert + + wpa_cli_do "$IF_WPA_PRIVATE_KEY" ascii \ + set_network private_key wpa-private-key + + wpa_cli_do "$IF_WPA_PRIVATE_KEY_PASSWD" ascii \ + set_network private_key_passwd wpa-private-key-passwd + + wpa_cli_do "$IF_WPA_DH_FILE" ascii \ + set_network dh_file wpa-dh-file + + wpa_cli_do "$IF_WPA_SUBJECT_MATCH" ascii \ + set_network subject_match wpa-subject-match + + wpa_cli_do "$IF_WPA_ALTSUBJECT_MATCH" ascii \ + set_network altsubject_match wpa-altsubject-match + + wpa_cli_do "$IF_WPA_CA_CERT2" ascii \ + set_network ca_cert2 wpa-ca-cert2 + + wpa_cli_do "$IF_WPA_CA_PATH2" ascii \ + set_network ca_path2 wpa-ca-path2 + + wpa_cli_do "$IF_WPA_CLIENT_CERT2" ascii \ + set_network client_cert2 wpa-client-cert2 + + wpa_cli_do "$IF_WPA_PRIVATE_KEY2" ascii \ + set_network private_key2 wpa-private-key2 + + wpa_cli_do "$IF_WPA_PRIVATE_KEY_PASSWD2" ascii \ + set_network private_key_passwd2 wpa-private-key-passwd2 + + wpa_cli_do "$IF_WPA_DH_FILE2" ascii \ + set_network dh_file2 wpa-dh-file2 + + wpa_cli_do "$IF_WPA_SUBJECT_MATCH2" ascii \ + set_network subject_match2 wpa-subject-match2 + + wpa_cli_do "$IF_WPA_ALTSUBJECT_MATCH2" ascii \ + set_network altsubject_match2 wpa-altsubject-match2 + + wpa_cli_do "$IF_WPA_EAP_METHODS" raw \ + set_network eap_methods wpa-eap-methods + + wpa_cli_do "$IF_WPA_PHASE1" ascii \ + set_network phase1 wpa-phase1 + + wpa_cli_do "$IF_WPA_PHASE2" ascii \ + set_network phase2 wpa-phase2 + + wpa_cli_do "$IF_WPA_PCSC" raw \ + set_network pcsc wpa-pcsc + + wpa_cli_do "$IF_WPA_PIN" ascii \ + set_network pin wpa-pin + + wpa_cli_do "$IF_WPA_ENGINE" raw \ + set_network engine wpa-engine + + wpa_cli_do "$IF_WPA_ENGINE_ID" ascii \ + set_network engine_id wpa-engine-id + + wpa_cli_do "$IF_WPA_KEY_ID" ascii \ + set_network key_id wpa-key-id + + wpa_cli_do "$IF_WPA_EAPOL_FLAGS" raw \ + set_network eapol_flags wpa-eapol-flags + + wpa_cli_do "$IF_WPA_WEP_KEY0" raw \ + set_network wep_key0 wpa-wep-key0 + + wpa_cli_do "$IF_WPA_WEP_KEY1" raw \ + set_network wep_key1 wpa-wep-key1 + + wpa_cli_do "$IF_WPA_WEP_KEY2" raw \ + set_network wep_key2 wpa-wep-key2 + + wpa_cli_do "$IF_WPA_WEP_KEY3" raw \ + set_network wep_key3 wpa-wep-key3 + + wpa_cli_do "$IF_WPA_WEP_TX_KEYIDX" raw \ + set_network wep_tx_keyidx wpa-wep-tx-keyidx + + wpa_cli_do "$IF_WPA_PROACTIVE_KEY_CACHING" raw \ + set_network proactive_key_caching wpa-proactive-key-caching + + wpa_cli_do "$IF_WPA_PAC_FILE" ascii \ + set_network pac_file wpa-pac-file + + wpa_cli_do "$IF_WPA_MODE" raw \ + set_network mode wpa-mode + + wpa_cli_do "$IF_WPA_PEERKEY" raw \ + set_network peerkey wpa-peerkey + + wpa_cli_do "$IF_FRAGMENT_SIZE" raw \ + set_network fragment_size wpa-fragment-size + + wpa_cli_do "$IF_WPA_ID_STR" ascii \ + set_network id_str wpa-id-str + + wpa_cli_do "$WPA_ID" raw \ + enable_network "enabling network block" + fi +} + +##################################################################### +## wpa_action basic logging +# Log actions to file, test to see if it is writeable first +# +wpa_log_init () { + if touch "$WPA_CLI_LOGFILE" 2>/dev/null; then + exec >> "$WPA_CLI_LOGFILE" 2>&1 + fi +} + +# log timestamp and wpa_action arguments +wpa_log_action () { + echo "########## $(date +"%H:%M:%S %Y-%m-%d") ##########" + echo "IFACE=$WPA_IFACE ACTION=$WPA_ACTION" +} + +# log wpa_cli environment variables +wpa_log_environment () { + echo "WPA_ID=$WPA_ID WPA_ID_STR=$WPA_ID_STR" + echo "WPA_CTRL_DIR=$WPA_CTRL_DIR" +} + +##################################################################### +## hysteresis checking +# Networking tools such as dhcp clients used with ifupdown can +# synthesize artificial ACTION events, particuarly just after a +# DISCONNECTED/CONNECTED events are experienced in quick succession. +# This can lead to infinite event loops, and in extreme cases has the +# potential to cause system instability. +# +wpa_hysteresis_event () { + echo "$(date +%s)" > "$WPA_CLI_TIMESTAMP" +} + +wpa_hysteresis_check () { + if [ -f "$WPA_CLI_TIMESTAMP" ]; then + local TIME TIMESTAMP TIMEWAIT + TIME=$(date +%s) + # current time minus 4 second event buffer + TIMEWAIT=$(($TIME-4)) + # get time of last event + TIMESTAMP=$(cat $WPA_CLI_TIMESTAMP) + # compare values, allowing new action to be processed + # only if last action was more than 4 seconds ago + if [ "$TIMEWAIT" -le "$TIMESTAMP" ]; then + echo "Ignoring $WPA_ACTION event, too soon after previous event" + return 1 + fi + fi + + return 0 +} + +##################################################################### +## identify ifupdown files +# Identify ifupdown core files, so that state of the interface can be +# checked. This is the weakest part of the wpa_action roaming scheme, +# it would be _much_ better if stateless ifupdown capabilities were +# a reality. +# +ifupdown_check () { + if [ -e /etc/network/interfaces ]; then + INTERFACES_FILE="/etc/network/interfaces" + else + echo "Cannot locate ifupdown's \"interfaces\" file, $WPA_IFACE will not be configured" + return 1 + fi + + if [ -e /etc/network/run/ifstate ]; then + # debian's ifupdown + IFSTATE_FILE="/etc/network/run/ifstate" + elif [ -e /var/run/network/ifstate ]; then + # ubuntu's + IFSTATE_FILE="/var/run/network/ifstate" + else + echo "Cannot locate ifupdown's \"ifstate\" file, $WPA_IFACE will not be configured" + return 1 + fi + + return 0 +} + +##################################################################### +## apply mapping logic and ifup logical interface +# Apply mapping logic via id_str or external mapping script, check +# state of IFACE with respect to ifupdown and ifup logical interaface +# +ifup () { + local WPA_LOGICAL_IFACE + + if [ -z "$IF_WPA_MAPPING_SCRIPT_PRIORITY" ] && [ -n "$WPA_ID_STR" ]; then + WPA_LOGICAL_IFACE="$WPA_ID_STR" + echo "Mapping logical interface via id_str: $WPA_LOGICAL_IFACE" + fi + + if [ -z "$WPA_LOGICAL_IFACE" ] && [ -n "$IF_WPA_MAPPING_SCRIPT" ]; then + echo "Mapping logical interface via wpa-mapping-script: $IF_WPA_MAPPING_SCRIPT" + + local WPA_MAP_STDIN + + WPA_MAP_STDIN=$(set | sed --quiet 's/^\(IF_WPA_MAP[0-9]*\)=.*/echo \$\1/p') + + if [ -n "$WPA_MAP_STDIN" ]; then + WPA_LOGICAL_IFACE=$(eval "$WPA_MAP_STDIN" | "$IF_WPA_MAPPING_SCRIPT" "$WPA_IFACE") + else + WPA_LOGICAL_IFACE=$("$IF_WPA_MAPPING_SCRIPT" "$WPA_IFACE") + fi + + if [ -n "$WPA_LOGICAL_IFACE" ]; then + echo "Mapping script result: $WPA_LOGICAL_IFACE" + else + echo "Mapping script failed." + fi + fi + + if [ -z "$WPA_LOGICAL_IFACE" ]; then + if [ -n "$IF_WPA_ROAM_DEFAULT_IFACE" ]; then + WPA_LOGICAL_IFACE="$IF_WPA_ROAM_DEFAULT_IFACE" + echo "Using wpa-roam-default-iface: $WPA_LOGICAL_IFACE" + else + WPA_LOGICAL_IFACE="default" + echo "Using fallback logical interface: $WPA_LOGICAL_IFACE" + fi + fi + + if [ -n "$WPA_LOGICAL_IFACE" ]; then + if egrep -q "^iface[[:space:]]+$WPA_LOGICAL_IFACE[[:space:]]+inet" "$INTERFACES_FILE"; then + + echo "ifup $WPA_IFACE=$WPA_LOGICAL_IFACE" + + if grep --quiet "^$WPA_IFACE=$WPA_IFACE" "$IFSTATE_FILE"; then + # Force settings over the unconfigured "master" IFACE + /sbin/ifup --force "$WPA_IFACE=$WPA_LOGICAL_IFACE" + else + /sbin/ifup "$WPA_IFACE=$WPA_LOGICAL_IFACE" + fi + else + echo "No network defined for \"$WPA_LOGICAL_IFACE\" in \"$INTERFACES_FILE\"" + fi + else + echo "No suitable logical interface mapping for ifupdown to configure" + fi +} + +##################################################################### +## ifdown IFACE +# Check IFACE state and ifdown as requested. +# +ifdown () { + if grep --quiet "^$WPA_IFACE" "$IFSTATE_FILE"; then + echo "ifdown $WPA_IFACE" + /sbin/ifdown "$WPA_IFACE" + else + echo "Ignoring request to take \"$WPA_IFACE\" down, it is not up" + fi +} + +##################################################################### +## keep IFACE scanning +# After ifdown, the IFACE may be left "down", and inhibits +# wpa_supplicant's ability to continue roaming. +# +# NB: use iproute if present, flushing the IFACE first +# +if_post_down_up () { + if [ -x /sbin/ip ]; then + /sbin/ip addr flush dev "$WPA_IFACE" 2>/dev/null + /sbin/ip link set "$WPA_IFACE" up + else + /sbin/ifconfig "$WPA_IFACE" up + fi +} diff --git a/packages/wpa-supplicant/files/ifupdown.sh b/packages/wpa-supplicant/files/ifupdown.sh new file mode 100755 index 0000000000..71486f7648 --- /dev/null +++ b/packages/wpa-supplicant/files/ifupdown.sh @@ -0,0 +1,132 @@ +#!/bin/sh + +# Copyright (C) 2006 Debian/Ubuntu wpasupplicant Maintainers +# <pkg-wpa-devel@lists.alioth.debian.org> +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program 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. +# +# On Debian GNU/Linux systems, the text of the GPL license can be +# found in /usr/share/common-licenses/GPL. + +if [ -n "$IF_WPA_MAINT_DEBUG" ]; then + set -x +fi + +# quit if we're called for the loopback +if [ "$IFACE" = lo ]; then + exit 0 +fi + +# allow wpa_supplicant interface to be specified via wpa-iface +# useful for starting wpa_supplicant on one interface of a bridge +if [ -n "$IF_WPA_IFACE" ]; then + WPA_IFACE="$IF_WPA_IFACE" +else + WPA_IFACE="$IFACE" +fi + +# source functions +if [ -f /etc/wpa_supplicant/functions.sh ]; then + . /etc/wpa_supplicant/functions.sh +else + exit 0 +fi + +# quit if executables are not installed +if [ ! -x "$WPA_SUP_BIN" ] || [ ! -x "$WPA_CLI_BIN" ]; then + exit 0 +fi + +# quit if wpa_action is active +if test_wpa_cli; then + exit 0 +fi + +#echo "Initial WPA Checks Pass" + +# preliminary sanity checks for roaming daemon +if [ -n "$IF_WPA_ROAM" ]; then + if [ "$METHOD" != "manual" ]; then + wpa_msg stderr "wpa-roam can only be used with the \"manual\" inet METHOD" + exit 1 + fi + if [ -n "$IF_WPA_MAPPING_SCRIPT" ]; then + if ! type "$IF_WPA_MAPPING_SCRIPT" >/dev/null; then + wpa_msg stderr "wpa-mapping-script \"$IF_WPA_MAPPING_SCRIPT\" is not valid" + exit 1 + fi + fi + if [ -n "$IF_WPA_MAPPING_SCRIPT_PRIORITY" ] && [ -z "$IF_WPA_MAPPING_SCRIPT" ]; then + wpa_msg stderr "\"wpa-mapping-script-priority 1\" is invalid without a wpa-mapping-script" + exit 1 + fi + IF_WPA_CONF="$IF_WPA_ROAM" + WPA_ACTION_SCRIPT="/sbin/wpa_action" +fi + +# master function; determines if ifupdown.sh should do something or not +if [ -n "$IF_WPA_CONF" ]; then + if [ ! -s "$IF_WPA_CONF" ]; then + wpa_msg stderr "cannot read contents of $IF_WPA_CONF" + exit 1 + fi + WPA_SUP_CONF_CTRL_DIR=$(sed --quiet \ + 's/[[:space:]]*#.*//g;s/[[:space:]]\+.*$//g;s/^\(ctrl_interface\|DIR\)=\(.*\)/\2/p' "$IF_WPA_CONF") + if [ -n "$WPA_SUP_CONF_CTRL_DIR" ]; then + WPA_CTRL_DIR="$WPA_SUP_CONF_CTRL_DIR" + fi + WPA_SUP_CONF="-c $IF_WPA_CONF -C $WPA_CTRL_DIR" +elif set | grep -q "^IF_WPA"; then + WPA_SUP_CONF="-C $WPA_CTRL_DIR" +else + exit 0 +fi + +case "$MODE" in + start) + PHASE="pre-up" + echo "WPA: Configuring Interface" + case "$PHASE" in + pre-up) + kill_wpa_supplicant + init_wpa_supplicant || echo "FAILED" + conf_wpa_supplicant || { kill_wpa_supplicant; exit 1; } + ;; + post-up) + init_wpa_cli || { kill_wpa_supplicant; exit 1; } + ;; + esac + ;; + + stop) + PHASE="post-down" + echo "WPA: Terminating" + case "$PHASE" in + pre-down) + kill_wpa_cli + ;; + post-down) + kill_wpa_supplicant + ;; + *) + wpa_msg stderr "unknown phase: \"$PHASE\"" + exit 1 + ;; + esac + ;; + + *) + wpa_msg stderr "unknown mode: \"$MODE\"" + exit 1 + ;; +esac + +exit 0 diff --git a/packages/wpa-supplicant/wpa-supplicant-0.5.inc b/packages/wpa-supplicant/wpa-supplicant-0.5.inc index 28f355c612..b5e53e3f56 100644 --- a/packages/wpa-supplicant/wpa-supplicant-0.5.inc +++ b/packages/wpa-supplicant/wpa-supplicant-0.5.inc @@ -12,24 +12,18 @@ DEFAULT_PREFERENCE = "-2" SRC_URI = "http://hostap.epitest.fi/releases/wpa_supplicant-${PV}.tar.gz \ file://defconfig-gnutls \ - file://init.sh \ file://gnutlsfix.patch;patch=1 \ - file://defaults-sane \ - file://wpa-supplicant.sh \ - file://wpa_supplicant.conf \ - file://wpa_supplicant.conf-sane" + file://ifupdown.sh \ + file://functions.sh" S = "${WORKDIR}/wpa_supplicant-${PV}" -PACKAGES_prepend = "wpa-supplicant-passphrase wpa-supplicant-cli " +PACKAGES_prepend = "wpa-supplicant-passphrase " FILES_wpa-supplicant-passphrase = "/usr/sbin/wpa_passphrase" -FILES_wpa-supplicant-cli = "/usr/sbin/wpa_cli" -RRECOMMENDS_${PN} = "wpa-supplicant-passphrase wpa-supplicant-cli" +RREPLACES = "wpa-supplicant-cli" -INITSCRIPT_NAME = "wpa" -INITSCRIPT_PARAMS = "defaults 10" -inherit update-rc.d +RRECOMMENDS_${PN} = "wpa-supplicant-passphrase" export HAS_PCI = "${@base_contains('COMBINED_FEATURES', 'pci', 1, 0,d)}" @@ -55,20 +49,16 @@ do_install () { install -d ${D}${localstatedir}/run/wpa_supplicant install -d ${D}${docdir}/wpa_supplicant - install -m 644 README ${WORKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant - - install -d ${D}${sysconfdir}/init.d - install -m 700 ${WORKDIR}/init.sh ${D}${sysconfdir}/init.d/wpa - - install -d ${D}${sysconfdir}/default - install -m 600 ${WORKDIR}/defaults-sane ${D}${sysconfdir}/default/wpa - install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf + install -m 644 README ${D}${docdir}/wpa_supplicant install -d ${D}${sysconfdir}/network/if-pre-up.d/ install -d ${D}${sysconfdir}/network/if-post-down.d/ install -d ${D}${sysconfdir}/network/if-down.d/ - install -m 644 ${WORKDIR}/wpa_supplicant.conf ${D}${sysconfdir} - install -m 755 ${WORKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant - cd ${D}${sysconfdir}/network/ && \ - ln -sf ../if-pre-up.d/wpa-supplicant if-post-down.d/wpa-supplicant + + install -d ${D}${sysconfdir}/wpa_supplicant + install -m 755 ${WORKDIR}/ifupdown.sh ${D}${sysconfdir}/wpa_supplicant/ + install -m 755 ${WORKDIR}/functions.sh ${D}${sysconfdir}/wpa_supplicant + + ln -s /etc/wpa_supplicant/ifupdown.sh ${D}${sysconfdir}/network/if-pre-up.d/wpasupplicant + ln -s /etc/wpa_supplicant/ifupdown.sh ${D}${sysconfdir}/network/if-post-down.d/wpasupplicant } diff --git a/packages/wpa-supplicant/wpa-supplicant_0.5.5.bb b/packages/wpa-supplicant/wpa-supplicant_0.5.5.bb index 67a5b99b0f..ce744b3fe7 100644 --- a/packages/wpa-supplicant/wpa-supplicant_0.5.5.bb +++ b/packages/wpa-supplicant/wpa-supplicant_0.5.5.bb @@ -1,3 +1,3 @@ require wpa-supplicant-0.5.inc -PR = "r1" +PR = "r3" diff --git a/packages/wpa-supplicant/wpa-supplicant_0.5.7.bb b/packages/wpa-supplicant/wpa-supplicant_0.5.7.bb index 6594bbfdbe..2aa871bb74 100644 --- a/packages/wpa-supplicant/wpa-supplicant_0.5.7.bb +++ b/packages/wpa-supplicant/wpa-supplicant_0.5.7.bb @@ -1 +1,3 @@ require wpa-supplicant-0.5.inc + +PR = "r1"
\ No newline at end of file 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/xorg-lib/files/errordb-keysymdb-path-fix.patch b/packages/xorg-lib/files/errordb-keysymdb-path-fix.patch deleted file mode 100644 index f43d38065e..0000000000 --- a/packages/xorg-lib/files/errordb-keysymdb-path-fix.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- X11/src/ErrDes.c.orig 2005-09-03 16:15:48 +0200 -+++ X11/src/ErrDes.c 2005-09-03 16:16:03 +0200 -@@ -56,7 +56,7 @@ - #include <stdio.h> - - #ifndef ERRORDB --#define ERRORDB "/usr/lib/X11/XErrorDB" -+#define ERRORDB "/usr/share/X11/XErrorDB" - #endif - - /* ---- X11/src/StrKeysym.c.orig 2005-09-03 16:41:18 +0200 -+++ X11/src/StrKeysym.c 2005-09-03 16:41:33 +0200 -@@ -36,7 +36,7 @@ - #include "Key.h" - - #ifndef KEYSYMDB --#define KEYSYMDB "/usr/lib/X11/XKeysymDB" -+#define KEYSYMDB "/usr/share/X11/XKeysymDB" - #endif - - static Bool initialized; diff --git a/packages/xorg-xserver/xorg-xserver-common.inc b/packages/xorg-xserver/xorg-xserver-common.inc index 634d6eb835..7bcd483c24 100644 --- a/packages/xorg-xserver/xorg-xserver-common.inc +++ b/packages/xorg-xserver/xorg-xserver-common.inc @@ -42,6 +42,15 @@ FILES_${PN}-doc += "${libdir}/X11/doc /usr/share/X11/xkb/compiled/README.compile FILES_${PN}-dbg += "${libdir}/xorg/modules/.debug ${libdir}/xorg/modules/*/.debug" FILES_${PN}-dev += "${libdir}/xorg/modules/*.la ${libdir}/xorg/modules/*/*.la" +PACKAGES =+ "${PN}-multimedia ${PN}-configtools" + +FILES_${PN}-multimedia = "${libdir}/xorg/modules/multimedia/*.so" +FILES_${PN}-configtools = "${bindir}/xorgconfig ${bindir}/xorgcfg" + +do_configure_prepend() { + sed -i -e s:/usr/include/drm:${STAGING_INCDIR}/drm:g hw/xfree86/os-support/linux/Makefile.am +} + do_stage() { autotools_stage_all } diff --git a/packages/xorg-xserver/xserver-kdrive-1.2.0/fbcompositesrc8888revnpx0565.patch b/packages/xorg-xserver/xserver-kdrive-1.2.0/fbcompositesrc8888revnpx0565.patch new file mode 100644 index 0000000000..e128123419 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.2.0/fbcompositesrc8888revnpx0565.patch @@ -0,0 +1,194 @@ +Hello all, + +The attached patch provides a fast path for the case of performing +a8b8g8r8 non-premultiplied (aka the GdkPixbuf format) OVER r5g6b5 via +a new function called fbCompositeSrc_8888RevNPx0565. Basically, it's +just an adaptation of the previous work I talked about here: + +http://lists.freedesktop.org/archives/xorg/2007-April/023763.html + +On my Nokia N800, I get a 3.4x speedup when running this little gdk +benchmark program: + +http://amelang.net/composite_pixbuf.c + +The source file is kinda large (4.5MB) due to an embedded GdkPixbuf. + +Dan Amelang +-------------- next part -------------- +From 63bdc0476c09669cabccffe4b35f8f56aff965a5 Mon Sep 17 00:00:00 2001 +From: Dan Amelang <dan at amelang.net> +Date: Mon, 30 Apr 2007 03:22:52 -0700 +Subject: [PATCH] Implement fbCompositeSrc_8888RevNPx0565 + +This provides a fast path for the common case of compositing GdkPixmaps +with r5g6b5 images. On a simple GDK benchmark application, I get a +3.4x increase in performance on the Nokia N800 (which currently is +running xserver 1.1.99.3). + +All of the optimizations used here are already explained in the following +post to the Xorg mailing list: + + http://lists.freedesktop.org/archives/xorg/2007-April/023763.html +--- + fb/fbpict.c | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 139 insertions(+), 0 deletions(-) + +diff --git a/fb/fbpict.c b/fb/fbpict.c +index a735967..3bd57fb 100644 +--- a/fb/fbpict.c ++++ b/fb/fbpict.c +@@ -781,6 +781,143 @@ fbCompositeSrc_8888x0565 (CARD8 op, + fbFinishAccess (pSrc->pDrawable); + } + ++ ++#define cvt8888Revto0565(s) ((((s) >> 19) & 0x001f) | \ ++ (((s) >> 5) & 0x07e0) | \ ++ (((s) << 8) & 0xf800)) ++ ++#define FbOverU_8888RevNPx565(s, d) \ ++ \ ++ /* Extract alpha */ \ ++ s_a = (s) >> 24; \ ++ \ ++ /* Extract r8g8b8 color channels */ \ ++ s_r = ( (s) & 0xff); \ ++ s_g = (((s) >> 8) & 0xff); \ ++ s_b = (((s) >> 16) & 0xff); \ ++ \ ++ /* Extract r5g6b5 color channels */ \ ++ d_r = ((d) >> 8) & 0xf8; \ ++ d_g = ((d) >> 3) & 0xfc; \ ++ d_b = ((d) << 3) & 0xf8; \ ++ \ ++ /* Use the higher bits of the channel to fill out the bottom */ \ ++ d_r |= (d_r >> 5); \ ++ d_g |= (d_g >> 6); \ ++ d_b |= (d_b >> 5); \ ++ \ ++ /* Blend */ \ ++ d_r = (s_r - d_r) * s_a + (d_r << 8); \ ++ d_g = (s_g - d_g) * s_a + (d_g << 8); \ ++ d_b = (s_b - d_b) * s_a + (d_b << 8); \ ++ \ ++ /* Pack result as r5g6b5 */ \ ++ (d) = (d_r & 0xf800) | ((d_g & 0xfc00) >> 5) | (d_b >> 11) ++ ++void ++fbCompositeSrc_8888RevNPx0565 (FbComposeData *params) ++{ ++ CARD16 *dstLine, *dst; ++ CARD32 *srcLine, *src; ++ FbStride dstStride, srcStride; ++ int w, h; ++ ++ fbComposeGetStart (params->src, params->xSrc, params->ySrc, CARD32, ++ srcStride, srcLine, 1); ++ fbComposeGetStart (params->dest, params->xDest, params->yDest, CARD16, ++ dstStride, dstLine, 1); ++ h = params->height; ++ ++ while (h--) ++ { ++ CARD32 s1, s2, s3, s4; ++ int d_r, d_g, d_b, s_r, s_g, s_b, s_a; ++ CARD32 *dst_2px_wide; ++ ++ src = srcLine; ++ srcLine += srcStride; ++ dst_2px_wide = (CARD32 *) dstLine; ++ dstLine += dstStride; ++ w = params->width - 4; ++ ++ while (w >= 0) ++ { ++ s1 = *src; ++ s2 = *(src + 1); ++ s3 = *(src + 2); ++ s4 = *(src + 3); ++ ++ w -= 4; ++ src += 4; ++ ++ /* Check if the next 4 pixels are opaque */ ++ if ((s1 & s2 & s3 & s4) > 0xfeffffff) ++ { ++ /* In this case, we just perform a SOURCE for all 4 pixels */ ++#if X_BYTE_ORDER == X_BIG_ENDIAN ++ *dst_2px_wide++ = (cvt8888Revto0565 (s1) << 16) | ++ cvt8888Revto0565 (s2); ++ *dst_2px_wide++ = (cvt8888Revto0565 (s3) << 16) | ++ cvt8888Revto0565 (s4); ++#else ++ *dst_2px_wide++ = cvt8888Revto0565 (s1) | ++ (cvt8888Revto0565 (s2) << 16); ++ *dst_2px_wide++ = cvt8888Revto0565 (s3) | ++ (cvt8888Revto0565 (s4) << 16); ++#endif ++ } ++ /* Next, check if the next 4 pixels have any alpha in them at all */ ++ else if ((s1 | s2 | s3 | s4) > 0x00ffffff) ++ { ++ /* In which case, we perform OVER on each one of them */ ++ CARD32 d1, d2, d3, d4; ++ ++#if X_BYTE_ORDER == X_BIG_ENDIAN ++ d1 = (*dst_2px_wide >> 16); ++ d2 = (*dst_2px_wide & 0xffff); ++ FbOverU_8888RevNPx565 (s1, d1); ++ FbOverU_8888RevNPx565 (s2, d2); ++ *dst_2px_wide++ = (d1 << 16) | d2; ++#else ++ d2 = (*dst_2px_wide >> 16); ++ d1 = (*dst_2px_wide & 0xffff); ++ FbOverU_8888RevNPx565 (s1, d1); ++ FbOverU_8888RevNPx565 (s2, d2); ++ *dst_2px_wide++ = d1 | (d2 << 16); ++#endif ++ ++#if X_BYTE_ORDER == X_BIG_ENDIAN ++ d3 = (*dst_2px_wide >> 16); ++ d4 = (*dst_2px_wide & 0xffff); ++ FbOverU_8888RevNPx565 (s3, d3); ++ FbOverU_8888RevNPx565 (s4, d4); ++ *dst_2px_wide++ = (d3 << 16) | d4; ++#else ++ d4 = (*dst_2px_wide >> 16); ++ d3 = (*dst_2px_wide & 0xffff); ++ FbOverU_8888RevNPx565 (s3, d3); ++ FbOverU_8888RevNPx565 (s4, d4); ++ *dst_2px_wide++ = d3 | (d4 << 16); ++#endif ++ } ++ else ++ { ++ /* Do nothing, since the source pixels are all transparent */ ++ dst_2px_wide += 2; ++ } ++ } ++ ++ /* Deal with left over pixels */ ++ for (dst = (CARD16 *) dst_2px_wide; w > -4; w--) ++ { ++ CARD32 d = *dst; ++ CARD32 s = *src++; ++ FbOverU_8888RevNPx565 (s, d); ++ *dst++ = d; ++ } ++ } ++} ++ + void + fbCompositeSrcAdd_8000x8000 (CARD8 op, + PicturePtr pSrc, +@@ -1669,7 +1806,9 @@ fbComposite (CARD8 op, + #ifdef USE_MMX + if (fbHaveMMX()) + func = fbCompositeSrc_8888RevNPx0565mmx; ++ else + #endif ++ func = fbCompositeSrc_8888RevNPx0565; + break; + default: + break; diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/.mtn2git_empty b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/.mtn2git_empty diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-xf86-dga-xorgcfg.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-xf86-dga-xorgcfg.patch new file mode 100644 index 0000000000..ccc19139c8 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/disable-xf86-dga-xorgcfg.patch @@ -0,0 +1,39 @@ +Index: xorg-server-1.3.0.0/configure.ac +=================================================================== +--- xorg-server-1.3.0.0.orig/configure.ac 2007-04-20 03:23:40.000000000 +0200 ++++ xorg-server-1.3.0.0/configure.ac 2007-05-09 16:51:34.000000000 +0200 +@@ -520,7 +520,11 @@ + XEXTXORG_LIB='$(top_builddir)/Xext/libXextbuiltin.la' + + dnl Core modules for most extensions, et al. ++if test "$KDRIVE" = yes; then ++REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto [kbproto >= 1.0.3]" ++else + REQUIRED_MODULES="[randrproto >= 1.2] renderproto [fixesproto >= 4.0] [damageproto >= 1.1] xcmiscproto xextproto xproto xtrans xf86miscproto xf86vidmodeproto xf86bigfontproto [scrnsaverproto >= 1.1] bigreqsproto resourceproto fontsproto inputproto xf86dgaproto [kbproto >= 1.0.3]" ++fi + REQUIRED_LIBS="xfont xau fontenc" + + AM_CONDITIONAL(XV, [test "x$XV" = xyes]) +@@ -1603,7 +1607,9 @@ + AC_SUBST(XKB_COMPILED_DIR) + + dnl and the rest of these are generic, so they're in config.h ++if test ! x"$KDRIVE" = xyes; then + AC_DEFINE(XFreeXDGA, 1, [Build XDGA support]) ++fi + AC_DEFINE(XResExtension, 1, [Build XRes extension]) + + AC_TRY_COMPILE([ +@@ -1616,10 +1622,12 @@ + + AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix]) + ++if test ! "x$KDRIVE" = xyes ; then + dnl xorgconfig CLI configuration utility + PKG_CHECK_MODULES([XORGCONFIG_DEP], [xkbfile x11]) + AC_SUBST(XORGCONFIG_DEP_CFLAGS) + AC_SUBST(XORGCONFIG_DEP_LIBS) ++fi + + dnl xorgcfg GUI configuration utility + AC_ARG_ENABLE(xorgcfg, AS_HELP_STRING([--enable-xorgcfg], diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch new file mode 100644 index 0000000000..8ec3a37c78 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-epson.patch @@ -0,0 +1,11 @@ +Index: xorg-server-1.2.0/hw/kdrive/Makefile.am +=================================================================== +--- xorg-server-1.2.0.orig/hw/kdrive/Makefile.am 2007-03-28 17:11:38.000000000 +0200 ++++ xorg-server-1.2.0/hw/kdrive/Makefile.am 2007-03-28 17:12:28.000000000 +0200 +@@ -1,5 +1,5 @@ + if KDRIVEFBDEV +-FBDEV_SUBDIRS = fbdev ++FBDEV_SUBDIRS = fbdev epson + endif + + if KDRIVEIMAGEON diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch new file mode 100644 index 0000000000..9a59530ed3 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-tslib.patch @@ -0,0 +1,12 @@ +Index: xorg-server-1.2.0/configure.ac +=================================================================== +--- xorg-server-1.2.0.orig/configure.ac 2007-03-29 13:28:10.000000000 +0200 ++++ xorg-server-1.2.0/configure.ac 2007-03-29 13:28:35.000000000 +0200 +@@ -1517,6 +1517,7 @@ + AC_MSG_ERROR([tslib must be installed to build the tslib driver. See http://tslib.berlios.de/]) + fi + AC_DEFINE(TSLIB, 1, [Have tslib support]) ++ AC_DEFINE(TOUCHSCREEN, 1, [Have touchscreen support]) + fi + + # damage shadow extension glx (NOTYET) fb mi diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch new file mode 100644 index 0000000000..717e72f93f --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/enable-xcalibrate.patch @@ -0,0 +1,101 @@ +--- + Xext/Makefile.am | 6 ++++++ + configure.ac | 9 ++++++++- + include/kdrive-config.h.in | 3 +++ + mi/miinitext.c | 6 ++++++ + 4 files changed, 23 insertions(+), 1 deletion(-) + +Index: xorg-server-1.3.0.0/mi/miinitext.c +=================================================================== +--- xorg-server-1.3.0.0.orig/mi/miinitext.c 2007-05-15 16:05:34.000000000 +0100 ++++ xorg-server-1.3.0.0/mi/miinitext.c 2007-05-15 16:05:39.000000000 +0100 +@@ -372,6 +372,9 @@ extern void ResExtensionInit(INITARGS); + #ifdef DMXEXT + extern void DMXExtensionInit(INITARGS); + #endif ++#ifdef XCALIBRATE ++extern void XCalibrateExtensionInit(INITARGS); ++#endif + #ifdef XEVIE + extern void XevieExtensionInit(INITARGS); + #endif +@@ -663,6 +666,9 @@ InitExtensions(argc, argv) + #ifdef DAMAGE + if (!noDamageExtension) DamageExtensionInit(); + #endif ++#ifdef XCALIBRATE ++ XCalibrateExtensionInit (); ++#endif + } + + void +Index: xorg-server-1.3.0.0/configure.ac +=================================================================== +--- xorg-server-1.3.0.0.orig/configure.ac 2007-05-15 16:05:34.000000000 +0100 ++++ xorg-server-1.3.0.0/configure.ac 2007-05-15 16:17:54.000000000 +0100 +@@ -421,6 +421,7 @@ AC_ARG_ENABLE(xf86vidmode, AS_HELP_ST + AC_ARG_ENABLE(xf86misc, AS_HELP_STRING([--disable-xf86misc], [Build XF86Misc extension (default: enabled)]), [XF86MISC=$enableval], [XF86MISC=yes]) + AC_ARG_ENABLE(xace, AS_HELP_STRING([--disable-xace], [Build X-ACE extension (default: enabled)]), [XACE=$enableval], [XACE=yes]) + AC_ARG_ENABLE(xcsecurity, AS_HELP_STRING([--disable-xcsecurity], [Build Security extension (default: enabled)]), [XCSECURITY=$enableval], [XCSECURITY=$XACE]) ++AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no]) + AC_ARG_ENABLE(appgroup, AS_HELP_STRING([--disable-appgroup], [Build XC-APPGROUP extension (default: enabled)]), [APPGROUP=$enableval], [APPGROUP=$XCSECURITY]) + AC_ARG_ENABLE(xcalibrate, AS_HELP_STRING([--enable-xcalibrate], [Build XCalibrate extension (default: disabled)]), [XCALIBRATE=$enableval], [XCALIBRATE=no]) + AC_ARG_ENABLE(tslib, AS_HELP_STRING([--enable-tslib], [Build kdrive tslib touchscreen support (default: disabled)]), [TSLIB=$enableval], [TSLIB=no]) +@@ -653,6 +654,12 @@ if test "x$XCSECURITY" = xyes; then + AC_DEFINE(XCSECURITY, 1, [Build Security extension]) + fi + ++AM_CONDITIONAL(XCALIBRATE, [test "x$XCALIBRATE" = xyes]) ++if test "x$XCALIBRATE" = xyes; then ++ AC_DEFINE(XCALIBRATE, 1, [Build XCalibrate extension]) ++ REQUIRED_MODULES="$REQUIRED_MODULES xcalibrateproto" ++fi ++ + AM_CONDITIONAL(XEVIE, [test "x$XEVIE" = xyes]) + if test "x$XEVIE" = xyes; then + AC_DEFINE(XEVIE, 1, [Build XEvIE extension]) +@@ -1547,7 +1554,7 @@ if test "$KDRIVE" = yes; then + ;; + esac + KDRIVE_STUB_LIB='$(top_builddir)/hw/kdrive/src/libkdrivestubs.a' +- KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_OS_LIB $KDRIVE_PURE_LIBS $KDRIVE_STUB_LIB $TSLIB_LIBS" ++ KDRIVE_LIBS="$DIX_LIB $KDRIVE_LIB $KDRIVE_PURE_LIBS $KDRIVE_OS_LIB $KDRIVE_STUB_LIB $TSLIB_LIBS" + + # check if we can build Xephyr + PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"]) +Index: xorg-server-1.3.0.0/include/kdrive-config.h.in +=================================================================== +--- xorg-server-1.3.0.0.orig/include/kdrive-config.h.in 2007-05-15 16:05:34.000000000 +0100 ++++ xorg-server-1.3.0.0/include/kdrive-config.h.in 2007-05-15 16:05:39.000000000 +0100 +@@ -25,4 +25,7 @@ + /* Verbose debugging output hilarity */ + #undef DEBUG + ++/* Enable XCalibrate extension */ ++#undef XCALIBRATE ++ + #endif /* _KDRIVE_CONFIG_H_ */ +Index: xorg-server-1.3.0.0/Xext/Makefile.am +=================================================================== +--- xorg-server-1.3.0.0.orig/Xext/Makefile.am 2007-05-15 16:05:34.000000000 +0100 ++++ xorg-server-1.3.0.0/Xext/Makefile.am 2007-05-15 16:05:39.000000000 +0100 +@@ -91,6 +91,11 @@ BUILTIN_SRCS += $(XCALIBRATE_SRCS) + # XCalibrare needs tslib + endif + ++XCALIBRATE_SRCS = xcalibrate.c ++if XCALIBRATE ++BUILTIN_SRCS += $(XCALIBRATE_SRCS) ++endif ++ + # X EVent Interception Extension: allows accessibility helpers & composite + # managers to intercept events from input devices and transform as needed + # before the clients see them. +@@ -169,6 +174,7 @@ EXTRA_DIST = \ + $(XCSECURITY_SRCS) \ + $(XCALIBRATE_SRCS) \ + $(XINERAMA_SRCS) \ ++ $(XCALIBRATE_SRCS) \ + $(XEVIE_SRCS) \ + $(XPRINT_SRCS) \ + $(APPGROUP_SRCS) \ diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch new file mode 100644 index 0000000000..edc5146302 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/fix_default_mode.patch @@ -0,0 +1,26 @@ +--- + hw/kdrive/src/kmode.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: xorg-server-1.3.0.0/hw/kdrive/src/kmode.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kmode.c 2007-05-16 10:30:29.000000000 +0100 ++++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c 2007-05-16 10:31:08.000000000 +0100 +@@ -106,6 +106,8 @@ const KdMonitorTiming kdMonitorTimings[ + 16, 120, 176, KdSyncNegative, /* 37.861 */ + 1, 20, 24, KdSyncNegative, /* 72.809 */ + }, ++ /* DEFAULT */ ++#define MONITOR_TIMING_DEFAULT 13 + { 640, 480, 60, 25175, /* VESA */ + 16, 48, 160, KdSyncNegative, /* 31.469 */ + 10, 33, 45, KdSyncNegative, /* 59.940 */ +@@ -127,8 +129,6 @@ const KdMonitorTiming kdMonitorTimings[ + 16, 160, 256, KdSyncPositive, /* 46.875 */ + 1, 21, 25, KdSyncPositive, /* 75.000 */ + }, +- /* DEFAULT */ +-#define MONITOR_TIMING_DEFAULT 9 + { 800, 600, 72, 50000, /* VESA */ + 56, 64, 240, KdSyncPositive, /* 48.077 */ + 37, 23, 66, KdSyncPositive, /* 72.188 */ diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch new file mode 100644 index 0000000000..c160cd41dc --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/hide-cursor-and-ppm-root.patch @@ -0,0 +1,307 @@ +diff -u -r xorg-server-X11R7.1-1.1.0.orig/dix/window.c xorg-server-X11R7.1-1.1.0/dix/window.c +--- xorg-server-X11R7.1-1.1.0.orig/dix/window.c 2007-01-08 14:30:38.000000000 +0000 ++++ xorg-server-X11R7.1-1.1.0/dix/window.c 2007-01-16 17:16:19.000000000 +0000 +@@ -185,6 +185,8 @@ + _X_EXPORT int numSaveUndersViewable = 0; + _X_EXPORT int deltaSaveUndersViewable = 0; + ++char* RootPPM = NULL; ++ + #ifdef DEBUG + /****** + * PrintWindowTree +@@ -311,6 +313,115 @@ + #endif + } + ++static int ++get_int(FILE *fp) ++{ ++ int c = 0; ++ ++ while ((c = getc(fp)) != EOF) ++ { ++ if (isspace(c)) ++ continue; ++ ++ if (c == '#') ++ while (c = getc(fp)) ++ if (c == EOF) ++ return 0; ++ else if (c == '\n') ++ break; ++ ++ if (isdigit(c)) ++ { ++ int val = c - '0'; ++ while ((c = getc(fp)) && isdigit(c)) ++ val = (val * 10) + (c - '0'); ++ return val; ++ } ++ } ++ ++ return 0; ++} ++ ++static unsigned char* ++ppm_load (const char* path, int depth, int *width, int *height) ++{ ++ FILE *fp; ++ int max, n = 0, w, h, i, j, bytes_per_line; ++ unsigned char *data, *res, h1, h2; ++ ++ if (depth < 16 || depth > 32) ++ return NULL; ++ ++ if (depth > 16) ++ depth = 32; ++ ++ fp = fopen (path, "r"); ++ if (fp == NULL) ++ return FALSE; ++ ++ h1 = getc(fp); ++ h2 = getc(fp); ++ ++ /* magic is 'P6' for raw ppm */ ++ if (h1 != 'P' && h2 != '6') ++ goto fail; ++ ++ w = get_int(fp); ++ h = get_int(fp); ++ ++ if (w == 0 || h == 0) ++ goto fail; ++ ++ max = get_int(fp); ++ ++ if (max != 255) ++ goto fail; ++ ++ bytes_per_line = ((w * depth + 31) >> 5) << 2; ++ ++ res = data = malloc(bytes_per_line * h); ++ ++ for (i=0; i<h; i++) ++ { ++ for (j=0; j<w; j++) ++ { ++ unsigned char buf[3]; ++ fread(buf, 1, 3, fp); ++ ++ switch (depth) ++ { ++ case 24: ++ case 32: ++ *data = buf[2]; ++ *(data+1) = buf[1]; ++ *(data+2) = buf[0]; ++ data += 4; ++ break; ++ case 16: ++ default: ++ *(unsigned short*)data ++ = ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3); ++ data += 2; ++ break; ++ } ++ } ++ data += (bytes_per_line - (w*(depth>>3))); ++ } ++ ++ data = res; ++ ++ *width = w; ++ *height = h; ++ ++ fclose(fp); ++ ++ return res; ++ ++ fail: ++ fclose(fp); ++ return NULL; ++} ++ + static void + MakeRootTile(WindowPtr pWin) + { +@@ -321,6 +432,36 @@ + register unsigned char *from, *to; + register int i, j; + ++ if (RootPPM != NULL) ++ { ++ int w, h; ++ unsigned char *data; ++ ++ if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL) ++ { ++ pWin->background.pixmap ++ = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth); ++ ++ pWin->backgroundState = BackgroundPixmap; ++ pGC = GetScratchGC(pScreen->rootDepth, pScreen); ++ if (!pWin->background.pixmap || !pGC) ++ FatalError("could not create root tile"); ++ ++ ValidateGC((DrawablePtr)pWin->background.pixmap, pGC); ++ ++ (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap, ++ pGC, ++ pScreen->rootDepth, ++ 0, 0, w, h, 0, ZPixmap, (char *)data); ++ FreeScratchGC(pGC); ++ ++ free(data); ++ return; ++ } ++ else ++ ErrorF("Unable to load root window image."); ++ } ++ + pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4, + pScreen->rootDepth); + +@@ -357,6 +498,7 @@ + + } + ++ + WindowPtr + AllocateWindow(ScreenPtr pScreen) + { +diff -u -r xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c +--- xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/src/kdrive.c 2007-01-08 14:30:38.000000000 +0000 ++++ xorg-server-X11R7.1-1.1.0/hw/kdrive/src/kdrive.c 2007-01-15 17:53:06.000000000 +0000 +@@ -58,6 +58,9 @@ + { 32, 32 } + }; + ++int ++ProcXFixesHideCursor (ClientPtr client) ; ++ + #define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0])) + + int kdScreenPrivateIndex; +@@ -84,6 +87,9 @@ + KdOsFuncs *kdOsFuncs; + extern WindowPtr *WindowTable; + ++extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */ ++extern char* RootPPM; /* dix/window.c */ ++ + void + KdSetRootClip (ScreenPtr pScreen, BOOL enable) + { +@@ -312,6 +318,7 @@ + KdSetRootClip (pScreen, TRUE); + if (pScreenPriv->card->cfuncs->dpms) + (*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState); ++ + return TRUE; + } + +@@ -686,10 +693,14 @@ + ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n"); + ErrorF("-switchCmd Command to execute on vt switch\n"); + ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n"); ++ ErrorF("-hide-cursor Start with cursor hidden\n"); ++ ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n"); + ErrorF("vtxx Use virtual terminal xx instead of the next available\n"); + #ifdef PSEUDO8 + p8UseMsg (); + #endif ++ ++ + } + + int +@@ -761,6 +772,19 @@ + kdSoftCursor = TRUE; + return 1; + } ++ if (!strcmp (argv[i], "-hide-cursor")) ++ { ++ CursorInitiallyHidden = TRUE; ++ return 1; ++ } ++ if (!strcmp (argv[i], "-root-ppm")) ++ { ++ if ((i+1) < argc) ++ RootPPM = argv[i+1]; ++ else ++ UseMsg (); ++ return 2; ++ } + if (!strcmp (argv[i], "-videoTest")) + { + kdVideoTest = TRUE; +diff -u -r xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c xorg-server-X11R7.1-1.1.0/xfixes/cursor.c +--- xorg-server-X11R7.1-1.1.0.orig/xfixes/cursor.c 2007-01-08 14:30:38.000000000 +0000 ++++ xorg-server-X11R7.1-1.1.0/xfixes/cursor.c 2007-01-11 16:33:00.000000000 +0000 +@@ -59,9 +59,12 @@ + static RESTYPE CursorWindowType; + static int CursorScreenPrivateIndex = -1; + static int CursorGeneration; ++static Bool CursorGloballyHidden; + static CursorPtr CursorCurrent; + static CursorPtr pInvisibleCursor = NULL; + ++Bool CursorInitiallyHidden = FALSE; ++ + static void deleteCursorHideCountsForScreen (ScreenPtr pScreen); + + #define VERIFY_CURSOR(pCursor, cursor, client, access) { \ +@@ -130,7 +133,7 @@ + + Unwrap (cs, pScreen, DisplayCursor); + +- if (cs->pCursorHideCounts != NULL) { ++ if (cs->pCursorHideCounts != NULL || CursorGloballyHidden) { + ret = (*pScreen->DisplayCursor) (pScreen, pInvisibleCursor); + } else { + ret = (*pScreen->DisplayCursor) (pScreen, pCursor); +@@ -848,6 +851,12 @@ + return BadWindow; + } + ++ /* Is cursor set to be initially hidden ?, if so reset this ++ * flag as now visibility assumed under control of client. ++ */ ++ if (CursorGloballyHidden) ++ CursorGloballyHidden = FALSE; ++ + /* + * Has client hidden the cursor before on this screen? + * If so, just increment the count. +@@ -899,9 +908,19 @@ + return BadWindow; + } + ++ /* X was started with cursor hidden, therefore just reset our flag ++ * (returning to normal client control) and cause cursor to now be ++ * shown. ++ */ ++ if (CursorGloballyHidden == TRUE) ++ { ++ CursorGloballyHidden = FALSE; ++ return (client->noClientException); ++ } ++ + /* + * Has client hidden the cursor on this screen? +- * If not, generate an error. ++ * If so, generate an error. + */ + pChc = findCursorHideCount(client, pWin->drawable.pScreen); + if (pChc == NULL) { +@@ -1009,6 +1028,8 @@ + XFixesCursorInit (void) + { + int i; ++ ++ CursorGloballyHidden = CursorInitiallyHidden; + + if (CursorGeneration != serverGeneration) + { diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch new file mode 100644 index 0000000000..a580b500b7 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/optional-xkb.patch @@ -0,0 +1,58 @@ +Index: xorg-server-1.2.0/Makefile.am +=================================================================== +--- xorg-server-1.2.0.orig/Makefile.am 2007-01-23 06:39:15.000000000 +0100 ++++ xorg-server-1.2.0/Makefile.am 2007-03-28 20:26:19.000000000 +0200 +@@ -30,6 +30,10 @@ + XINPUT_DIR=Xi + endif + ++if XKB ++XKB_DIR=xkb ++endif ++ + if DBE + DBE_DIR=dbe + endif +@@ -46,7 +50,7 @@ + randr \ + render \ + $(XINPUT_DIR) \ +- xkb \ ++ $(XKB_DIR) \ + $(DBE_DIR) \ + $(MFB_DIR) \ + $(AFB_DIR) \ +Index: xorg-server-1.2.0/configure.ac +=================================================================== +--- xorg-server-1.2.0.orig/configure.ac 2007-01-23 06:39:15.000000000 +0100 ++++ xorg-server-1.2.0/configure.ac 2007-03-28 20:27:13.000000000 +0200 +@@ -428,6 +428,7 @@ + AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes]) + AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes]) + AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes]) ++AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes]) + + dnl DDXes. + AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto]) +@@ -754,12 +755,15 @@ + + AC_DEFINE(SHAPE, 1, [Support SHAPE extension]) + +-AC_DEFINE(XKB, 1, [Build XKB]) +-AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server]) +-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default]) +-REQUIRED_MODULES="$REQUIRED_MODULES xkbfile" +-XKB_LIB='$(top_builddir)/xkb/libxkb.la' +-XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la' ++AM_CONDITIONAL(XKB, [test "x$XKB" = xyes]) ++if test "x$XKB" = xyes; then ++ AC_DEFINE(XKB, 1, [Build XKB]) ++ AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server]) ++ AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default]) ++ REQUIRED_MODULES="$REQUIRED_MODULES xkbfile" ++ XKB_LIB='$(top_builddir)/xkb/libxkb.la' ++ XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la' ++fi + + AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1, + [Do not have `strcasecmp'.])) diff --git a/packages/xorg-xserver/xserver-kdrive-xomap_X11R7.1-1.1.99.3.bb b/packages/xorg-xserver/xserver-kdrive-xomap_X11R7.1-1.1.99.3.bb index 745710a704..7837884a75 100644 --- a/packages/xorg-xserver/xserver-kdrive-xomap_X11R7.1-1.1.99.3.bb +++ b/packages/xorg-xserver/xserver-kdrive-xomap_X11R7.1-1.1.99.3.bb @@ -7,13 +7,13 @@ SECTION = "x11/base" DESCRIPTION = "X server from freedesktop.org" DESCRIPTION_xserver-kdrive-xomap = "X server for the OMAP in the Nokia 800" -PR = "r3" +PR = "r4" COMPATIBLE_MACHINE = "nokia800" FILES_${PN} = "${libdir}/xserver /etc/dbus-1/* ${bindir}/Xomap" -SRC_URI = "http://repository.maemo.org/pool/maemo3.0/free/source/xorg-server_1.1.99.3-0osso21.tar.gz \ +SRC_URI = "http://repository.maemo.org/pool/maemo3.0/free/source/xorg-server_1.1.99.3-0osso31.tar.gz \ file://kmode.patch;patch=1 \ file://disable-apm.patch;patch=1 \ file://no-serial-probing.patch;patch=1 \ diff --git a/packages/xorg-xserver/xserver-kdrive_1.2.0.bb b/packages/xorg-xserver/xserver-kdrive_1.2.0.bb index 2ba1b09923..fb6bde07e8 100644 --- a/packages/xorg-xserver/xserver-kdrive_1.2.0.bb +++ b/packages/xorg-xserver/xserver-kdrive_1.2.0.bb @@ -3,14 +3,15 @@ require xserver-kdrive-common.inc DEPENDS += "libxkbfile libxcalibrate" PE = "1" -PR = "r6" +PR = "r7" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ ${KDRIVE_COMMON_PATCHES} \ file://enable-xcalibrate.patch;patch=1 \ file://w100.patch;patch=1 \ file://w100-fix-offscreen-bmp.patch;patch=1 \ - " + file://fbcompositesrc8888revnpx0565.patch;patch=1 \ + " S = "${WORKDIR}/xorg-server-${PV}" diff --git a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb new file mode 100644 index 0000000000..8c6db70987 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb @@ -0,0 +1,17 @@ +require xserver-kdrive-common.inc + +# it's missing the xw100 patch +DEFAULT_PREFERENCE = "-1" + +DEPENDS += "libxkbfile libxcalibrate" + +PE = "1" +PR = "r0" + +SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ + ${KDRIVE_COMMON_PATCHES} \ + file://fix_default_mode.patch;patch=1 \ + file://enable-xcalibrate.patch;patch=1 \ + file://hide-cursor-and-ppm-root.patch;patch=1" + +S = "${WORKDIR}/xorg-server-${PV}" diff --git a/packages/xorg-xserver/xserver-xorg_1.2.0.bb b/packages/xorg-xserver/xserver-xorg_1.2.0.bb index 900c3266cb..08b965bb75 100644 --- a/packages/xorg-xserver/xserver-xorg_1.2.0.bb +++ b/packages/xorg-xserver/xserver-xorg_1.2.0.bb @@ -1,8 +1,8 @@ +MESA_VER = "6.5.2" + require xorg-xserver-common.inc PE = "1" -SRC_URI += "file://drmfix.patch;patch=1" - EXTRA_OECONF += " ac_cv_file__usr_share_X11_sgml_defs_ent=no " #DESCRIPTION = "" diff --git a/packages/xorg-xserver/xserver-xorg_1.3.0.0.bb b/packages/xorg-xserver/xserver-xorg_1.3.0.0.bb new file mode 100644 index 0000000000..08b965bb75 --- /dev/null +++ b/packages/xorg-xserver/xserver-xorg_1.3.0.0.bb @@ -0,0 +1,10 @@ +MESA_VER = "6.5.2" + +require xorg-xserver-common.inc +PE = "1" + +EXTRA_OECONF += " ac_cv_file__usr_share_X11_sgml_defs_ent=no " + +#DESCRIPTION = "" + +#DEPENDS += " " 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/sl-cxx00-modmap.patch b/packages/xserver-common/files/sl-cxx00-modmap.patch new file mode 100644 index 0000000000..057f9880bf --- /dev/null +++ b/packages/xserver-common/files/sl-cxx00-modmap.patch @@ -0,0 +1,113 @@ +--- xserver-common-1.16/X11/slcXXXX.xmodmap.orig 2007-06-05 01:31:20.000000000 +0000 ++++ xserver-common-1.16/X11/slcXXXX.xmodmap 2007-06-05 01:31:29.000000000 +0000 +@@ -1,5 +1,106 @@ +-keycode 88 = XF86Calendar +-keycode 89 = telephone +-keycode 40 = XF86Start +-keycode 90 = XF86Mail ++! Modmap for Sharp Zaurus clamshells: ++! SL-C1000 (Akita) ++! SL-C3000 (Spitz) ++! SL-C3100 (Borzoi) ++! SL-C3200 (Terrier) ++! ++! Changelog: ++! version: 30 May 2007 ++! Initial version ++! ++! This modmap adds an Alt_L and a compose key (Multi_Key) ++! at the Kana/Hira and Zen/Han keys. Users can set these to their ++! original Japanese functions if desired, but as a default putting at ++! least one Alt on the keyboard is a polite thing to do. ++! ++! Adds: ++! Fn + q = ` (grave) ++! Fn + - (minus) = @ (at) ++! Fn + 5 = € (Euro) ++! Fn + k = ¥ (Yen) ++! Fn + d = ・ (nakaten) ++! Fn + Backspace = Delete ++! ++! Currently unset: ++! Fn + Kana/Hira (カナ/ひら) ++! Fn + Zen/Han (全/半) ++! Fn + Space bar (音訓) ++! These should be bound to Japanese keysims for use with Japanese ++! IME's at a later date. ++! ======================================================================= + ++! The Euro character is not printed as a label, but as ++! the 5 doesn't have a blue Fn label, this is a nice extra ++! as a normal European keyboard has it on the 5 as third level ++! character ++keycode 14 = 5 percent EuroSign ++ ++keycode 20 = minus minus at ++keycode 22 = BackSpace BackSpace Delete ++ ++! The grave is not printed as a label, but is missing ++! so this is a nice place to add it, not too far from where it ++! is on a normal keyboard. ++keycode 24 = q Q grave ++ ++! The nakaten character ++keycode 40 = d D kana_conjunctive ++ ++! The Yen character ++keycode 45 = k K yen ++ ++! This is the Kana/Hira key, right from "Ctrl" ++keycode 64 = Alt_L ++ ++! Turn the Zen/Han key (left of minus) into the compose key ++keycode 105 = Multi_key ++ ++! Control_R is gone, so clear out and reload control: ++clear control ++add control = Control_L ++ ++! These are the 11 fields that generate keycodes ++! On the edge of the touchscreen. Every second one ++! (87, 89, 84, 79, 81) has a label, the rest doesn't, ++! but can be used as button nontheless, the size of the ++! eleven fields is the same. ++! These are mapped to F20..F30. ++! These buttons with Fn or Shift generate the F1..F11 keys. ++ ++! No icon ++keycode 90 = F20 F1 F1 ++! "Home" icon: ++keycode 87 = F21 F2 F2 ++! No icon ++keycode 88 = F22 F3 F3 ++! "Mail" icon: ++keycode 89 = F23 F4 F4 ++! No icon ++keycode 83 = F24 F5 F5 ++! "Address" icon: ++keycode 84 = F25 F6 F6 ++! No icon ++keycode 85 = F26 F7 F7 ++! "Calendar" icon: ++keycode 79 = F27 F8 F8 ++! No icon ++keycode 80 = F28 F9 F9 ++! "Book" icon: ++keycode 81 = F29 F10 F10 ++! No icon ++keycode 86 = F30 F11 F11 ++ ++! These are the five buttons below the inbuilt keyboard ++! These are mapped to F13..F19 ++! The Menu key generates F12 when pressed with Fn or Shift. ++ ++! "Calendar" label and icon, "Sync" label beneath it: ++keycode 67 = F9 F14 F14 ++! "Address" label and icon: ++keycode 68 = F10 F15 F15 ++! "Mail" label and icon, "Check" label beneath it: ++keycode 76 = F13 F17 F17 ++! "Home" label and icon: ++keycode 107 = F12 F18 F18 ++! "Menu" label and icon: ++keycode 96 = F11 F12 F12 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..ca1c2f09cd 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 = "r6" PACKAGE_ARCH = "all" @@ -11,7 +11,12 @@ 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-c7x0.patch;patch=1 \ + file://load-xmodmap-k26.patch;patch=1 \ + file://Xserver-udev-input-helper.patch;patch=1 \ + file://sl-cxx00-modmap.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..546481d48f 100644 --- a/packages/xserver-common/xserver-common_svn.bb +++ b/packages/xserver-common/xserver-common_svn.bb @@ -6,8 +6,15 @@ DEPENDS = "xmodmap xrandr xdpyinfo xtscal" PV = "1.12+svn${SRCDATE}" S = "${WORKDIR}/xserver-common" +PR = "r2" + 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-c7x0.patch;patch=1 \ + file://sl-cxx00-modmap.patch;patch=1 \ + file://load-xmodmap-k26.patch;patch=1 \ + file://Xserver-udev-input-helper.patch;patch=1" + diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver index 66feaad499..e59460f3b0 100644 --- a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver +++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver @@ -96,7 +96,7 @@ case `module_id` in ;; "GTA01") ARGS="$ARGS -dpi 285 -screen 480x640" ;; - Nokia N800") + "Nokia N800") ARGS="$ARGS -dpi 225 -screen 800x480x16 -mouse tslib" ;; *) # Its a device we dont know about - in which case force diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb b/packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb index 108f0c63fb..9d9b577766 100644 --- a/packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb +++ b/packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts" LICENSE = "GPL" SECTION = "x11" RDEPENDS_${PN} = "xmodmap libxrandr xdpyinfo xtscal xinit" -PR = "r13" +PR = "r14" SRC_URI = "file://etc" S = ${WORKDIR} diff --git a/packages/yeaphone/yeaphone_0.1.bb b/packages/yeaphone/yeaphone_0.1.bb index 2612b37e9a..67b651ae71 100644 --- a/packages/yeaphone/yeaphone_0.1.bb +++ b/packages/yeaphone/yeaphone_0.1.bb @@ -1,6 +1,5 @@ DESCRIPTION = "A VoIP SIP phone for the Yealink USB handset" HOMEPAGE = "http://www.devbase.at/voip/" -MAINTAINER = "Thomas Reitmayr <treitmayr@yahoo.com>" LICENSE = "GPLv2" PRIORITY = "optional" DEPENDS = "liblinphone" diff --git a/packages/zaurusd/files/zaurus-hinge.bl-off b/packages/zaurusd/files/zaurus-hinge.bl-off new file mode 100644 index 0000000000..888f90bfc5 --- /dev/null +++ b/packages/zaurusd/files/zaurus-hinge.bl-off @@ -0,0 +1,10 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: zaurus-hinge.bl-off +# Date: 04-Jun-06 + +test -z "${ZD_BINDIR}" && ZD_BINDIR="/usr/bin" +${ZD_BINDIR}/bl off diff --git a/packages/zaurusd/files/zaurus-hinge.bl-on b/packages/zaurusd/files/zaurus-hinge.bl-on new file mode 100644 index 0000000000..6d416ad8c4 --- /dev/null +++ b/packages/zaurusd/files/zaurus-hinge.bl-on @@ -0,0 +1,10 @@ +#! /bin/sh +# +# Copyright Matthias Hentges <devel@hentges.net> (c) 2006 +# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license) +# +# Filename: zaurus-hinge.bl-on +# Date: 04-Jun-06 + +test -z "${ZD_BINDIR}" && ZD_BINDIR="/usr/bin" +${ZD_BINDIR}/bl on diff --git a/packages/zaurusd/files/zaurusd-mixer-callback.patch b/packages/zaurusd/files/zaurusd-mixer-callback.patch new file mode 100644 index 0000000000..7c9455d042 --- /dev/null +++ b/packages/zaurusd/files/zaurusd-mixer-callback.patch @@ -0,0 +1,11 @@ +--- zaurusd/scripts/zaurus-mixer-callback.in.orig 2007-06-05 03:15:30.000000000 +0000 ++++ zaurusd/scripts/zaurus-mixer-callback.in 2007-06-05 03:14:53.000000000 +0000 +@@ -16,7 +16,7 @@ + JACK="$1" + SPK="$2" + LEFT="true" +-RLPLAYBACK="false" ++RLPLAYBACK="true" + RLBYPASS="false" + + case $SPK in diff --git a/packages/zaurusd/zaurusd_svn.bb b/packages/zaurusd/zaurusd_svn.bb index d839b85114..0bc2424a69 100644 --- a/packages/zaurusd/zaurusd_svn.bb +++ b/packages/zaurusd/zaurusd_svn.bb @@ -4,7 +4,7 @@ LICENSE = "GPL" DEPENDS = "tslib" RDEPENDS = "procps" PV = "0.0+svn${SRCDATE}" -PR = "r8" +PR = "r10" SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=zaurusd;proto=http \ file://zaurus-hinge.in \ @@ -12,7 +12,10 @@ SRC_URI = "svn://svn.o-hand.com/repos/misc/trunk;module=zaurusd;proto=http \ file://alsa-cxx00-default.state.patch;patch=1 \ file://disable-alsa-handling.patch;patch=1 \ file://zaurus-hinge.matchbox-portrait \ - file://zaurus-hinge.matchbox-landscape" + file://zaurus-hinge.matchbox-landscape \ + file://zaurusd-mixer-callback.patch;patch=1 \ + file://zaurus-hinge.bl-on \ + file://zaurus-hinge.bl-off" S = "${WORKDIR}/${PN}" @@ -27,6 +30,12 @@ do_install_append() { install -d "${D}/etc/zaurusd/hinge-landscape.d" install -d "${D}/etc/zaurusd/hinge-portrait.d" install -d "${D}/etc/zaurusd/hinge-close.d" + install -d ${D}/etc/apm/resume.d + + install -m 0755 "${WORKDIR}/zaurus-hinge.bl-on" "${D}/etc/apm/resume.d/00-backlight-on" + install -m 0755 "${WORKDIR}/zaurus-hinge.bl-on" "${D}/etc/zaurusd/hinge-landscape.d/00-backlight-on" + install -m 0755 "${WORKDIR}/zaurus-hinge.bl-on" "${D}/etc/zaurusd/hinge-portrait.d/00-backlight-on" + install -m 0755 "${WORKDIR}/zaurus-hinge.bl-off" "${D}/etc/zaurusd/hinge-close.d/00-backlight-off" install -m 0755 "${WORKDIR}/zaurus-hinge.matchbox-landscape" "${D}/etc/zaurusd/hinge-landscape.d/20-matchbox-landscape" install -m 0755 "${WORKDIR}/zaurus-hinge.matchbox-portrait" "${D}/etc/zaurusd/hinge-portrait.d/20-matchbox-portrait" diff --git a/packages/zope/zope_3.3.1.bb b/packages/zope/zope_3.3.1.bb new file mode 100644 index 0000000000..156de2134f --- /dev/null +++ b/packages/zope/zope_3.3.1.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "A full fledged pluggable content management system with integrated web server and much more." +SECTION = "console/network" +PRIORITY = "optional" +DEPENDS = "python" +RDEPENDS = "python-core python-shell" +LICENSE = "ZPL" +PR = "r2" + +SRC_URI = "http://www.zope.org/Products/Zope3/${PV}/Zope-${PV}.tgz" + +S = "${WORKDIR}/Zope-${PV}" + +do_configure() { + ./configure --with-python=${STAGING_BINDIR_NATIVE}/python --prefix=${prefix} --force +} + +do_compile() { + oe_runmake HOST_SYS=${HOST_SYS} BUILD_SYS=${BUILD_SYS} +} + +do_install() { + oe_runmake install prefix=${D}${prefix} HOST_SYS=${HOST_SYS} BUILD_SYS=${BUILD_SYS} +} + +PACKAGES =+ "python-zopeinterface python-zopeinterface-dbg" + +FILES_${PN} = "${prefix}" +FILES_${PN}_doc = "${prefix}/doc" +FILES_${PN}-dbg += "\ +${libdir}/python/BTrees/.debug \ +${libdir}/python/persistent/.debug \ +${libdir}/python/zope/proxy/.debug \ +${libdir}/python/zope/thread/.debug \ +${libdir}/python/zope/security/.debug \ +${libdir}/python/zope/hookable/.debug \ +${libdir}/python/zope/app/container/.debug \ +${libdir}/python/zope/i18nmessageid/.debug \ +${libdir}/python/ZODB/.debug" +FILES_python-zopeinterface-dbg += "${libdir}/python/zope/interface/.debug " + +FILES_python-zopeinterface = "${libdir}/python/zope/interface/*.* ${libdir}/python/zope/interface/common" diff --git a/removal.txt b/removal.txt index fb5b8e4298..60101a68e4 100644 --- a/removal.txt +++ b/removal.txt @@ -26,8 +26,9 @@ Reason: Obsoleted by task-base Proposed by: Koen Kooi Note: Moved to packages/obsolete/tasks on 2006-12-22 -Package Name: libmpeg2 (not mpeg2dec!) -Removal Date: 2007-03-15 -Maintainer: unknown, checked in from BK repo, no updates after that -Reason: mpeg2dec provides libmpeg2, see bug 375 -Proposed by: Laibsch +Package Name: gtkmm-2.4.8 +Removal Date: 2007-06-10 +Maintainer: Joaquim Duran (joaquinduran@adtelecom.es) +Reason: fails compilation for at least half a year + newer version available +Note: Will contact Joaquim before dropping. diff --git a/site/avr32-common b/site/avr32-common new file mode 100644 index 0000000000..5bce901caa --- /dev/null +++ b/site/avr32-common @@ -0,0 +1,3 @@ +glib_cv_stack_grows=${glib_cv_stack_grows=no} +ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes} +glib_cv_uscore=${glib_cv_uscore=no} diff --git a/site/bfin-common b/site/bfin-common new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/site/bfin-common |