summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/alsa/alsa-oss_1.0.15.bb4
-rw-r--r--packages/alsa/alsa-versym.inc15
-rw-r--r--packages/alsa/files/libio.patch8
-rw-r--r--packages/busybox/busybox_1.11.1.bb31
-rw-r--r--packages/chicken/chicken2.inc (renamed from packages/chicken/chicken.inc)0
-rw-r--r--packages/chicken/chicken3.inc36
-rw-r--r--packages/chicken/chicken_2.6.bb2
-rw-r--r--packages/chicken/chicken_3.3.0.bb1
-rw-r--r--packages/classpath/classpath-initial_0.93.bb3
-rw-r--r--packages/classpath/classpath-native.inc14
-rw-r--r--packages/dmalloc/.mtn2git_empty (renamed from packages/gpe-login/gpe-login-0.86/.mtn2git_empty)0
-rw-r--r--packages/dmalloc/dmalloc_5.5.2.bb25
-rw-r--r--packages/dmalloc/files/.mtn2git_empty (renamed from packages/gpe-login/gpe-login-0.87/.mtn2git_empty)0
-rw-r--r--packages/dmalloc/files/conf.h274
-rw-r--r--packages/dmalloc/files/configure-pagesize-HACK.patch33
-rw-r--r--packages/dnsmasq/dnsmasq_2.45.bb (renamed from packages/dnsmasq/dnsmasq_2.38.bb)0
-rw-r--r--packages/dsplink/codec-engine_2.10.bb47
-rw-r--r--packages/dsplink/dsplink_1.51.00.08.bb4
-rw-r--r--packages/dsplink/files/ticel-config55
-rw-r--r--packages/ecj/ecj-bootstrap-native_3.3.2.bb38
-rw-r--r--packages/ecj/ecj-bootstrap-native_3.4.bb38
-rw-r--r--packages/ecj/ecj-initial_3.3.2.bb84
-rw-r--r--packages/ecj/ecj-initial_3.4.bb84
-rw-r--r--packages/efl1/ecore_cvs.bb55
-rw-r--r--packages/eglibc/eglibc-initial.inc16
-rw-r--r--packages/eglibc/eglibc-intermediate.inc12
-rw-r--r--packages/eglibc/eglibc-intermediate_svn.bb8
-rw-r--r--packages/eglibc/eglibc.inc11
-rw-r--r--packages/eglibc/eglibc_svn.bb2
-rw-r--r--packages/ffmpeg/omapfbplay/fbplay-static.diff8
-rw-r--r--packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf2
-rw-r--r--packages/freesmartphone/frameworkd_git.bb13
-rw-r--r--packages/freesmartphone/illume-theme-freesmartphone_git.bb27
-rw-r--r--packages/freesmartphone/zhone_git.bb4
-rw-r--r--packages/gcc/gcc-3.4.4.inc10
-rw-r--r--packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch77
-rw-r--r--packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch251
-rw-r--r--packages/gcc/gcc-4.3.1.inc3
-rw-r--r--packages/gcc/gcc-4.3.1/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch31
-rw-r--r--packages/gcc/gcc-4.3.1/gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch5466
-rw-r--r--packages/gcc/gcc-configure-cross.inc4
-rw-r--r--packages/gcc/gcc-configure-sdk.inc1
-rw-r--r--packages/gcc/gcc-cross-initial.inc8
-rw-r--r--packages/gcc/gcc-cross-initial_4.3.1.bb1
-rw-r--r--packages/gcc/gcc-cross-intermediate.inc21
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.3.3.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.3.4.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.4.3.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.4.4.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.0.2.bb4
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.1.0.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.1.1.bb6
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.1.2.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.1.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.2.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.3.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.4.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.3.1.bb14
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb7
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb12
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb12
-rw-r--r--packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc-cross-kernel.inc2
-rw-r--r--packages/gcc/gcc-cross-sdk_3.3.4.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_3.4.3.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_3.4.4.bb8
-rw-r--r--packages/gcc/gcc-cross-sdk_4.1.0.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.1.1.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.1.2.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.2.2.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.2.3.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.2.4.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.3.1.bb2
-rw-r--r--packages/gcc/gcc-cross_3.3.3.bb2
-rw-r--r--packages/gcc/gcc-cross_3.3.4.bb2
-rw-r--r--packages/gcc/gcc-cross_3.4.3.bb2
-rw-r--r--packages/gcc/gcc-cross_3.4.4.bb2
-rw-r--r--packages/gcc/gcc-cross_4.0.0.bb2
-rw-r--r--packages/gcc/gcc-cross_4.0.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.0.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.1.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.1.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.3.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.4.bb2
-rw-r--r--packages/gcc/gcc-cross_4.3.1.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2006q1.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2007q3.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2008q1.bb2
-rw-r--r--packages/gcc/gcc-native_3.4.4.bb2
-rw-r--r--packages/gcc/gcc-native_3.4.6.bb2
-rw-r--r--packages/gcc/gcc_3.3.3.bb2
-rw-r--r--packages/gcc/gcc_3.3.4.bb2
-rw-r--r--packages/gcc/gcc_3.4.3.bb2
-rw-r--r--packages/gcc/gcc_3.4.4.bb2
-rw-r--r--packages/gcc/gcc_4.0.0.bb2
-rw-r--r--packages/gcc/gcc_4.0.2.bb2
-rw-r--r--packages/gcc/gcc_4.1.0.bb2
-rw-r--r--packages/gcc/gcc_4.1.1.bb2
-rw-r--r--packages/gcc/gcc_4.1.2.bb2
-rw-r--r--packages/gcc/gcc_4.2.1.bb2
-rw-r--r--packages/gcc/gcc_4.2.2.bb2
-rw-r--r--packages/gcc/gcc_4.2.3.bb2
-rw-r--r--packages/gcc/gcc_4.2.4.bb2
-rw-r--r--packages/gcc/gcc_4.3.1.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2006q1.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2007q3.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2008q1.bb2
-rw-r--r--packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch30
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch37
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch45
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch79
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-memusage.patch44
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch25
-rw-r--r--packages/glibc/glibc-2.7/.mtn2git_empty (renamed from packages/gpe-login/gpe-login-0.88/.mtn2git_empty)0
-rw-r--r--packages/glibc/glibc-2.7/all_glibc-i586-chk.patch33
-rw-r--r--packages/glibc/glibc-initial.inc14
-rw-r--r--packages/glibc/glibc-initial_2.5.bb2
-rw-r--r--packages/glibc/glibc-intermediate.inc12
-rw-r--r--packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb6
-rw-r--r--packages/glibc/glibc-intermediate_2.3.6.bb2
-rw-r--r--packages/glibc/glibc-intermediate_2.4.bb4
-rw-r--r--packages/glibc/glibc-intermediate_2.5.bb7
-rw-r--r--packages/glibc/glibc-intermediate_2.6.1.bb8
-rw-r--r--packages/glibc/glibc-intermediate_2.7.bb8
-rw-r--r--packages/glibc/glibc-intermediate_cvs.bb6
-rw-r--r--packages/glibc/glibc-stage.inc7
-rw-r--r--packages/glibc/glibc.inc6
-rw-r--r--packages/glibc/glibc_2.2.5.bb2
-rw-r--r--packages/glibc/glibc_2.3.2+cvs20040726.bb2
-rw-r--r--packages/glibc/glibc_2.3.2.bb2
-rw-r--r--packages/glibc/glibc_2.3.3+cvs20041128.bb2
-rw-r--r--packages/glibc/glibc_2.3.3+cvs20050221.bb2
-rw-r--r--packages/glibc/glibc_2.3.3+cvs20050420.bb2
-rw-r--r--packages/glibc/glibc_2.3.3.bb2
-rw-r--r--packages/glibc/glibc_2.3.5+cvs20050627.bb2
-rw-r--r--packages/glibc/glibc_2.3.6.bb11
-rw-r--r--packages/glibc/glibc_2.4.bb2
-rw-r--r--packages/glibc/glibc_2.5.bb3
-rw-r--r--packages/glibc/glibc_2.6.1.bb3
-rw-r--r--packages/glibc/glibc_2.7.bb6
-rw-r--r--packages/glibc/glibc_cvs.bb2
-rw-r--r--packages/gpe-login/gpe-login-0.86/chvt-keylaunch.patch11
-rw-r--r--packages/gpe-login/gpe-login-0.87/chvt-keylaunch.patch12
-rw-r--r--packages/gpe-login/gpe-login-0.88/chvt-keylaunch.patch12
-rw-r--r--packages/gpe-login/gpe-login_0.87.bb16
-rw-r--r--packages/gpe-login/gpe-login_0.88.bb22
-rw-r--r--packages/gpe-login/gpe-login_0.90.bb27
-rw-r--r--packages/gpe-login/gpe-login_0.91.bb26
-rw-r--r--packages/gpe-login/gpe-login_0.92.bb24
-rw-r--r--packages/gpe-login/gpe-login_0.93.bb15
-rw-r--r--packages/gpe-login/gpe-login_svn.bb16
-rw-r--r--packages/gpe-su/gpe-su_0.20.bb3
-rw-r--r--packages/h2200-bootloader/h2200-bootloader.bb4
-rw-r--r--packages/images/fso-image.bb3
-rw-r--r--packages/initrdscripts/initramfs-kexec_1.0.bb10
-rw-r--r--packages/iscsi-target/.mtn2git_empty (renamed from packages/openmoko-projects/tangogps/.mtn2git_empty)0
-rw-r--r--packages/iscsi-target/files/.mtn2git_empty0
-rw-r--r--packages/iscsi-target/files/ietd.conf17
-rw-r--r--packages/iscsi-target/files/init36
-rw-r--r--packages/iscsi-target/files/libs.patch11
-rw-r--r--packages/iscsi-target/iscsi-target_0.4.16.bb43
-rw-r--r--packages/iscsi-target/iscsi-target_svn.bb46
-rw-r--r--packages/kexec/files/kexec-klibc.patch43
-rw-r--r--packages/kexec/kexec-tools-static_1.101.bb2
-rw-r--r--packages/lcdproc/lcdproc5.inc115
-rw-r--r--packages/lcdproc/lcdproc_0.5.0.bb118
-rw-r--r--packages/lcdproc/lcdproc_0.5.1.bb123
-rw-r--r--packages/libgpewidget/libgpewidget-hildon_0.102.bb13
-rw-r--r--packages/libgpewidget/libgpewidget_0.114.bb16
-rw-r--r--packages/libgpewidget/libgpewidget_0.115.bb15
-rw-r--r--packages/libgpewidget/libgpewidget_0.117.bb22
-rw-r--r--packages/libgpewidget/libgpewidget_svn.bb8
-rw-r--r--packages/libsdl/libsdl-image-1.2.3/.mtn2git_empty0
-rw-r--r--packages/libsdl/libsdl-image-1.2.3/autotools.patch805
-rw-r--r--packages/libsdl/libsdl-image_1.2.3.bb12
-rw-r--r--packages/libsdl/libsdl-net-1.2.7/.mtn2git_empty0
-rw-r--r--packages/libsdl/libsdl-net-1.2.7/libtool2.patch13
-rw-r--r--packages/libsdl/libsdl-net_1.2.7.bb11
-rw-r--r--packages/libsdl/libsdl-ttf_2.0.3.bb5
-rw-r--r--packages/linux/linux-2.6.23/netvista/defconfig4
-rw-r--r--packages/linux/linux-neuros_git.bb4
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/400khz-i2c.diff22
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/4bitmmc.diff38
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch49
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch49
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch50
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch49
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch208
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch83
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch62
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch231
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch258
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/mru-clocks1.diff25
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/mru-clocks2.diff62
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/mru-clocks3.diff94
-rw-r--r--packages/linux/linux-omap2_git.bb8
-rw-r--r--packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch5342
-rw-r--r--packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch55
-rw-r--r--packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch17
-rw-r--r--packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch61
-rw-r--r--packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch12
-rw-r--r--packages/linux/linux-openmoko-devel/defconfig-oe1
-rw-r--r--packages/linux/linux-openmoko-devel_git.bb51
-rw-r--r--packages/linux/linux-openmoko.inc45
-rw-r--r--packages/linux/linux-openmoko/defconfig-oe1771
-rw-r--r--packages/linux/linux-openmoko_2.6.24+git.bb64
-rw-r--r--packages/linux/linux-rp-2.6.26/collie.patch1883
-rw-r--r--packages/linux/linux-rp-2.6.26/collie_keymap.patch420
-rw-r--r--packages/linux/linux-rp-2.6.26/defconfig-collie1236
-rw-r--r--packages/linux/linux-rp-2.6.26/initramfs-config-collie810
-rw-r--r--packages/linux/linux-rp.inc1
-rw-r--r--packages/linux/linux-rp_2.6.24.bb2
-rw-r--r--packages/linux/linux-rp_2.6.26.bb23
-rw-r--r--packages/lirc/lirc-modules_0.8.3+cvs20080713.bb31
-rw-r--r--packages/mesa/files/mklib-cross.patch14
-rw-r--r--packages/mesa/mesa-dri_6.5.2.bb2
-rw-r--r--packages/mesa/mesa-dri_7.0.3.bb42
-rw-r--r--packages/meta/external-toolchain.bb1
-rw-r--r--packages/mono/README6
-rw-r--r--packages/mono/files/libgc_cppflags.patch46
-rw-r--r--packages/mono/mono-1.9.1/.mtn2git_empty0
-rw-r--r--packages/mono/mono-mcs-intermediate_1.9.1.bb15
-rw-r--r--packages/mono/mono-native_1.9.1.bb27
-rw-r--r--packages/mono/mono_1.9.1-files.inc1426
-rw-r--r--packages/mono/mono_1.9.1.bb80
-rw-r--r--packages/mono/mono_1.9.1.inc15
-rw-r--r--packages/mythtv/files/armv5te/.mtn2git_empty0
-rw-r--r--packages/mythtv/files/armv5te/configh6
-rw-r--r--packages/mythtv/files/armv5te/configmak3
-rw-r--r--packages/mythtv/files/armv6/.mtn2git_empty0
-rw-r--r--packages/mythtv/files/armv6/configh8
-rw-r--r--packages/mythtv/files/armv6/configmak3
-rw-r--r--packages/mythtv/files/armv7a/.mtn2git_empty0
-rw-r--r--packages/mythtv/files/armv7a/configh14
-rw-r--r--packages/mythtv/files/armv7a/configmak6
-rw-r--r--packages/mythtv/files/configh2
-rw-r--r--packages/mythtv/files/configmak0
-rw-r--r--packages/mythtv/mythtv-0.21/.mtn2git_empty0
-rw-r--r--packages/mythtv/mythtv-0.21/configure.patch183
-rw-r--r--packages/mythtv/mythtv-0.21/ffmpeg-arm-update.diff1669
-rw-r--r--packages/mythtv/mythtv.inc10
-rw-r--r--packages/mythtv/mythtv/.mtn2git_empty0
-rw-r--r--packages/mythtv/mythtv/configure.patch148
-rw-r--r--packages/mythtv/mythtv/ifdef-qt.diff13
-rw-r--r--packages/mythtv/mythtv_0.18.1.bb2
-rw-r--r--packages/mythtv/mythtv_0.20.bb2
-rw-r--r--packages/mythtv/mythtv_0.21.bb106
-rw-r--r--packages/mythtv/mythtv_svn.bb103
-rw-r--r--packages/neuros-public/neuros-lib-widgets_git.bb8
-rw-r--r--packages/neuros-public/neuros-mainmenu_git.bb23
-rw-r--r--packages/neuros-public/neuros-nwm_git.bb22
-rw-r--r--packages/neuros-public/neuros-qt-plugins_git.bb3
-rw-r--r--packages/nfs-utils/nfs-utils_1.1.2.bb63
-rw-r--r--packages/openchrome/openchrome.inc16
-rw-r--r--packages/openchrome/openchrome_svn.bb20
-rw-r--r--packages/openchrome/xf86-video-openchrome_0.2.902.bb4
-rw-r--r--packages/openmoko-projects/illume-theme-asu_svn.bb (renamed from packages/openmoko-projects/illume-theme_svn.bb)16
-rw-r--r--packages/openmoko-projects/illume/configure-keyboard.patch39
-rw-r--r--packages/openmoko-projects/illume_svn.bb61
-rw-r--r--packages/openmoko-projects/tangogps/global-config-h.patch30
-rw-r--r--packages/openmoko-projects/tangogps_0.7.bb17
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/.mtn2git_empty0
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/2113.diff19
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/2114.diff15
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/buildfix.patch13
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/libiconv.patch22
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/libpulsedsp-references-libpulsecore.patch24
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/libtool2.patch48
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.11/pa-drop-caps-returns-void.patch17
-rw-r--r--packages/pulseaudio/pulseaudio_0.9.11.bb31
-rw-r--r--packages/python/python-setuptools-native_0.6c8.bb4
-rw-r--r--packages/python/python-setuptools/.mtn2git_empty0
-rw-r--r--packages/python/python-setuptools/fix-log-usage.patch13
-rw-r--r--packages/python/python-setuptools_0.6c8.bb7
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/.mtn2git_empty0
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/0001-cross-compile.patch32
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/0002-fix-resinit-declaration.patch25
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/0003-no-tools.patch16
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/0004-no-qmake.patch25
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/0005-fix-mkspecs.patch101
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/0006-freetype-host-includes.patch23
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/0007-openssl-host-includes.patch23
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/allow-configure-plugins.patch62
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/build-tools.patch28
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/linux-oe-qmake.conf95
-rw-r--r--packages/qt4/qt4-x11-free-4.4.0/qconfig-oe.h45
-rw-r--r--packages/qt4/qt4-x11-free_4.4.0.bb5
-rw-r--r--packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb1
-rw-r--r--packages/snes9x/64bit.patch110
-rw-r--r--packages/snes9x/snes9x_1.43-WIP1.bb3
-rw-r--r--packages/speex/speex_1.0.4.bb27
-rw-r--r--packages/speex/speex_1.1.12.bb36
-rw-r--r--packages/speex/speex_1.1.7.bb36
-rw-r--r--packages/speex/speex_1.2.bb (renamed from packages/speex/speex_1.2-beta3.bb)22
-rw-r--r--packages/tasks/task-base.bb2
-rw-r--r--packages/tasks/task-boot.bb2
-rw-r--r--packages/tasks/task-gpe-base.bb3
-rw-r--r--packages/tasks/task-mythfront.bb6
-rw-r--r--packages/tcp-wrappers/tcp-wrappers_7.6.bb3
-rw-r--r--packages/tslib/tslib/bd-neon/ts.conf2
-rw-r--r--packages/tslib/tslib/bd-neon/tslib.sh6
-rw-r--r--packages/tslib/tslib_1.0.bb2
-rw-r--r--packages/uclibc/bfin-uclibc_svn.bb2
-rw-r--r--packages/uclibc/files/uclibc-arm-ftruncate64.patch (renamed from packages/uclibc/uclibc-cvs/uclibc-arm-ftruncate64.patch)0
-rw-r--r--packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch25
-rw-r--r--packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch38
-rw-r--r--packages/uclibc/uclibc-initial_0.9.26.bb16
-rw-r--r--packages/uclibc/uclibc-initial_0.9.27.bb17
-rw-r--r--packages/uclibc/uclibc-initial_0.9.28.bb17
-rw-r--r--packages/uclibc/uclibc-initial_0.9.29.bb9
-rw-r--r--packages/uclibc/uclibc-initial_svn.bb12
-rw-r--r--packages/uclibc/uclibc.inc5
-rw-r--r--packages/uclibc/uclibc_0.9.26.bb2
-rw-r--r--packages/uclibc/uclibc_0.9.27.bb3
-rw-r--r--packages/uclibc/uclibc_0.9.28.bb3
-rw-r--r--packages/uclibc/uclibc_0.9.29.bb4
-rw-r--r--packages/uclibc/uclibc_svn.bb4
-rw-r--r--packages/util-linux-ng/util-linux-ng-2.14/.mtn2git_empty0
-rw-r--r--packages/util-linux-ng/util-linux-ng-2.14/util-linux-ng-uclibc-versionsort.patch3614
-rw-r--r--packages/util-linux-ng/util-linux-ng_2.14.bb10
-rw-r--r--packages/vlc/vlc-davinci_0.8.6h.bb15
-rw-r--r--packages/xorg-font/font-misc-misc/.mtn2git_empty0
-rw-r--r--packages/xorg-font/font-misc-misc/configure-mapdir.patch11
-rw-r--r--packages/xorg-font/font-misc-misc_1.0.0.bb9
-rw-r--r--packages/xorg-lib/libx11-native_1.0.1.bb2
330 files changed, 29174 insertions, 2114 deletions
diff --git a/packages/alsa/alsa-oss_1.0.15.bb b/packages/alsa/alsa-oss_1.0.15.bb
index 3cfe886d61..de840e73fe 100644
--- a/packages/alsa/alsa-oss_1.0.15.bb
+++ b/packages/alsa/alsa-oss_1.0.15.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Alsa OSS Compatibility Package"
SECTION = "libs/multimedia"
LICENSE = "GPL"
DEPENDS = "alsa-lib"
-PR = "1"
+PR = "r2"
SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
file://libio.patch;patch=1 \
@@ -10,6 +10,8 @@ SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
inherit autotools
+LEAD_SONAME = "libaoss.so.0"
+
do_configure_prepend () {
touch NEWS README AUTHORS ChangeLog
}
diff --git a/packages/alsa/alsa-versym.inc b/packages/alsa/alsa-versym.inc
index 6d585ecf4a..07ca89cafb 100644
--- a/packages/alsa/alsa-versym.inc
+++ b/packages/alsa/alsa-versym.inc
@@ -4,18 +4,3 @@ def get_alsa_versym_setting(bb, d):
if bb.data.getVar('TARGET_OS', d, 1).find('uclibc') >= 0:
return "--with-versioned=no"
return ""
-
-
-def get_alsa_versym_setting(bb, d):
- # Versioned symbols don't work propery with uClibc
- if bb.data.getVar('TARGET_OS', d, 1).find('uclibc') >= 0:
- return "--with-versioned=no"
- return ""
-
-
-def get_alsa_versym_setting(bb, d):
- # Versioned symbols don't work propery with uClibc
- if bb.data.getVar('TARGET_OS', d, 1).find('uclibc') >= 0:
- return "--with-versioned=no"
- return ""
-
diff --git a/packages/alsa/files/libio.patch b/packages/alsa/files/libio.patch
index 83345a98d3..a053e4c604 100644
--- a/packages/alsa/files/libio.patch
+++ b/packages/alsa/files/libio.patch
@@ -1,7 +1,7 @@
Index: alsa-oss-1.0.15/alsa/stdioemu.c
===================================================================
--- alsa-oss-1.0.15.orig/alsa/stdioemu.c 2007-10-15 10:50:40.000000000 +0200
-+++ alsa-oss-1.0.15/alsa/stdioemu.c 2008-07-20 22:29:46.767474560 +0200
++++ alsa-oss-1.0.15/alsa/stdioemu.c 2008-07-21 22:17:06.303161438 +0200
@@ -37,7 +37,9 @@
#endif
@@ -18,8 +18,8 @@ Index: alsa-oss-1.0.15/alsa/stdioemu.c
result = fopencookie (fdc,"w", fns);
+#ifdef HAVE_FILENO
result->_fileno = fdc->fd; /* ugly patchy slimy kludgy hack */
-+else
-+ result->_filedes = fdc->fd;
++#else
++ result->__filedes = fdc->fd;
+#endif
}
return result;
@@ -27,7 +27,7 @@ Index: alsa-oss-1.0.15/alsa/stdioemu.c
Index: alsa-oss-1.0.15/configure.in
===================================================================
--- alsa-oss-1.0.15.orig/configure.in 2007-10-15 10:50:40.000000000 +0200
-+++ alsa-oss-1.0.15/configure.in 2008-07-20 22:49:45.455837502 +0200
++++ alsa-oss-1.0.15/configure.in 2008-07-21 22:16:11.719837298 +0200
@@ -33,6 +33,12 @@
LIBS="$OLD_LIBS"
fi
diff --git a/packages/busybox/busybox_1.11.1.bb b/packages/busybox/busybox_1.11.1.bb
index 67c52939cb..945ab7f718 100644
--- a/packages/busybox/busybox_1.11.1.bb
+++ b/packages/busybox/busybox_1.11.1.bb
@@ -1,18 +1,23 @@
require busybox.inc
-PR = "r0"
+PR = "r1"
-SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
- file://udhcpscript.patch;patch=1 \
- file://busybox-cron \
- file://busybox-httpd \
- file://busybox-udhcpd \
- file://default.script \
- file://hwclock.sh \
- file://mount.busybox \
- file://syslog \
- file://syslog.conf \
- file://umount.busybox \
- file://defconfig"
+SRC_URI = "\
+ http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
+ http://busybox.net/downloads/fixes-1.11.1/busybox-1.11.1-basename.patch;patch=1 \
+ http://busybox.net/downloads/fixes-1.11.1/busybox-1.11.1-tar.patch;patch=1 \
+ \
+ file://udhcpscript.patch;patch=1 \
+ file://busybox-cron \
+ file://busybox-httpd \
+ file://busybox-udhcpd \
+ file://default.script \
+ file://hwclock.sh \
+ file://mount.busybox \
+ file://syslog \
+ file://syslog.conf \
+ file://umount.busybox \
+ file://defconfig \
+"
EXTRA_OEMAKE += "V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX}"
diff --git a/packages/chicken/chicken.inc b/packages/chicken/chicken2.inc
index fbaf971f88..fbaf971f88 100644
--- a/packages/chicken/chicken.inc
+++ b/packages/chicken/chicken2.inc
diff --git a/packages/chicken/chicken3.inc b/packages/chicken/chicken3.inc
new file mode 100644
index 0000000000..2feebfb48a
--- /dev/null
+++ b/packages/chicken/chicken3.inc
@@ -0,0 +1,36 @@
+DESCRIPTION = "A compiler that translates Scheme source files to C, and an interpreter"
+HOMEPAGE = "http://www.call-with-current-continuation.org/"
+SECTION = "interpreters"
+PRIORITY = "optional"
+LICENSE = "BSD"
+
+SRC_URI = "http://chicken.wiki.br/releases/${PV}/chicken-${PV}.tar.gz"
+
+inherit autotools
+
+do_compile() {
+ export PLATFORM=linux
+ export PREFIX=${prefix}
+ export HOST=${TARGET_ARCH}-${DISTRO}-${TARGET_OS}
+ export C_COMPILER=${HOST}-gcc
+ export LIBRARIAN=${HOST}-ar
+ # ARCH= is weird... but it's not enough to export this variable.
+ # If ARCH is not set to empty-string, then the Makefile will try to
+ # use the apply-hack.s file applicable to the machine doing the compiling.
+ # There is no such apply-hack assembler code for arm, at least not yet.
+ make ARCH=
+}
+
+do_install() {
+ export PLATFORM=linux
+ export PREFIX=${prefix}
+ export HOST=${TARGET_ARCH}-${DISTRO}-${TARGET_OS}
+ export C_COMPILER=${HOST}-gcc
+ export LIBRARIAN=${HOST}-ar
+ make ARCH= DESTDIR=${D} install
+}
+
+FILES_${PN} = "${bindir}/csi ${bindir}/chicken-bug"
+FILES_${PN} += "${libdir}/lib*.so.* ${libdir}/chicken"
+FILES_${PN} += "${datadir}/chicken/*.*"
+FILES_${PN}-dev += "${bindir}"
diff --git a/packages/chicken/chicken_2.6.bb b/packages/chicken/chicken_2.6.bb
index 713552b3e9..934ef4a218 100644
--- a/packages/chicken/chicken_2.6.bb
+++ b/packages/chicken/chicken_2.6.bb
@@ -1 +1 @@
-require chicken.inc
+require chicken2.inc
diff --git a/packages/chicken/chicken_3.3.0.bb b/packages/chicken/chicken_3.3.0.bb
new file mode 100644
index 0000000000..7d9fc69419
--- /dev/null
+++ b/packages/chicken/chicken_3.3.0.bb
@@ -0,0 +1 @@
+require chicken3.inc
diff --git a/packages/classpath/classpath-initial_0.93.bb b/packages/classpath/classpath-initial_0.93.bb
index 9e303f6eba..7c1b91eb20 100644
--- a/packages/classpath/classpath-initial_0.93.bb
+++ b/packages/classpath/classpath-initial_0.93.bb
@@ -5,7 +5,7 @@ require classpath-native.inc
DESCRIPTION="Java1.4-compatible GNU Classpath variant that is used as bootclasspath for jikes-native."
-PR = "r0"
+PR = "r2"
DEPENDS = "zip-native fastjar-native jikes-native"
@@ -25,4 +25,3 @@ EXTRA_OECONF = "\
--with-native-libdir=${STAGING_LIBDIR}/classpath-initial \
--includedir=${STAGING_INCDIR}/classpath-initial \
"
-
diff --git a/packages/classpath/classpath-native.inc b/packages/classpath/classpath-native.inc
index bb5abaf178..3094dca924 100644
--- a/packages/classpath/classpath-native.inc
+++ b/packages/classpath/classpath-native.inc
@@ -6,13 +6,17 @@ S = "${WORKDIR}/classpath-${PV}"
SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz"
-DEPENDS = "ecj-initial fastjar-native zip-native"
+DEPENDS = "ecj-initial fastjar-native zip-nativei gettext-native"
inherit autotools native
+export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial"
+
+# Note: the --with-ecj options seems redundant but is
+# for compatibility with older classpath versions.
EXTRA_OECONF = "\
- --with-glibj \
--with-ecj=${STAGING_BINDIR_NATIVE}/ecj-initial \
+ --with-glibj \
--with-fastjar=fastjar \
--enable-local-sockets \
--disable-alsa \
@@ -25,6 +29,12 @@ EXTRA_OECONF = "\
--includedir=${STAGING_INCDIR}/classpath \
--with-vm=java \
"
+# hack to get config.rpath in, it comes from gettext
+do_configure_prepend () {
+
+ ${@['','cp ${STAGING_DATADIR}/automake-1.10/config.rpath ${S}'][bb.data.getVar('PREFERRED_VERSION_automake-native',d,1) == '1.10']}
+
+}
do_stage() {
oe_runmake install
diff --git a/packages/gpe-login/gpe-login-0.86/.mtn2git_empty b/packages/dmalloc/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/gpe-login/gpe-login-0.86/.mtn2git_empty
+++ b/packages/dmalloc/.mtn2git_empty
diff --git a/packages/dmalloc/dmalloc_5.5.2.bb b/packages/dmalloc/dmalloc_5.5.2.bb
new file mode 100644
index 0000000000..c91152b537
--- /dev/null
+++ b/packages/dmalloc/dmalloc_5.5.2.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Debug Malloc Library"
+SECTION = "libs/devel"
+HOMEPAGE = "http://dmalloc.com"
+LICENSE = "CCSA"
+
+SRC_URI = "\
+ http://dmalloc.com/releases/dmalloc-${PV}.tgz \
+ file://configure-pagesize-HACK.patch;patch=1 \
+# HACK we ship a preconfigured conf.h since otherwise it misses a whole lot of stuff and compilation fails.
+# TODO find out why and get rid of it
+ file://conf.h \
+"
+inherit autotools pkgconfig
+
+do_configure_append() {
+ install -m 0644 ${WORKDIR}/conf.h ${S}
+}
+
+do_stage() {
+ oe_libinstall -a libdmalloc ${STAGING_LIBDIR}
+}
+
+do_install() {
+ :
+}
diff --git a/packages/gpe-login/gpe-login-0.87/.mtn2git_empty b/packages/dmalloc/files/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/gpe-login/gpe-login-0.87/.mtn2git_empty
+++ b/packages/dmalloc/files/.mtn2git_empty
diff --git a/packages/dmalloc/files/conf.h b/packages/dmalloc/files/conf.h
new file mode 100644
index 0000000000..d2d9c4af0c
--- /dev/null
+++ b/packages/dmalloc/files/conf.h
@@ -0,0 +1,274 @@
+/* conf.h. Generated by configure. */
+/*
+ * Automatic configuration flags
+ *
+ * Copyright 2000 by Gray Watson
+ *
+ * This file is part of the dmalloc package.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose and without fee is hereby granted, provided
+ * that the above copyright notice and this permission notice appear
+ * in all copies, and that the name of Gray Watson not be used in
+ * advertising or publicity pertaining to distribution of the document
+ * or software without specific, written prior permission.
+ *
+ * Gray Watson makes no representations about the suitability of the
+ * software described herein for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * The author may be contacted via http://dmalloc.com/
+ *
+ * $Id: conf.h.in,v 1.99 2005/12/21 13:40:27 gray Exp $
+ */
+
+#ifndef __CONF_H__
+#define __CONF_H__
+
+/* please see settings.h for manual configuration options */
+
+/*
+ * NOTE: The following settings should not need to be tuned by hand.
+ */
+
+/*
+ * Set to 1 if the mprotect function was found and the PROT_NONE,
+ * PROT_READ, and PROT_WRITE defines were found in sys/mman.h. This
+ * is so that we can restrict access to certain blocks of memory.
+ */
+#define PROTECT_ALLOWED 1
+
+/*
+ * (char *)sbrk(const int incr) is the main heap-memory allocation
+ * routine that most systems employ. This extends the program's data
+ * space by INCR number of bytes.
+ *
+ * NOTE: If configure generates a 0 for this and HAVE_MMAP on your
+ * system, you should see the INTERNAL_MEMORY_SPACE setting in the
+ * settings.h file which is created from the settings.dist file.
+ */
+#define HAVE_SBRK 1
+
+/*
+ * (void *)mmap(...) is another heap-memory allocation routine that
+ * systems employ. On newer systems it is often preferable over sbrk.
+ * It allocates a block of memory in the virtual-memory system. The
+ * USE_MMAP define is set if the standard mmap call works.
+ *
+ * NOTE: If configure generates a 0 for this and HAVE_SBRK on your
+ * system, you should see the INTERNAL_MEMORY_SPACE setting in the
+ * settings.h file which is created from the settings.dist file.
+ */
+#define HAVE_MMAP 1
+#define USE_MMAP 1
+
+/*
+ * This is the basic block size in bits. If possible, the configure
+ * script will set this to be the value returned by the getpagesize()
+ * function. If not then some sort of best guess will be necessary.
+ * 15 (meaning basic block size of 32k) will probably be good.
+ *
+ * NOTE: some sbrk functions round to the correct page-size. No
+ * problems aside from a possible small increase in the administration
+ * overhead should happen if this value is too high.
+ */
+#define BASIC_BLOCK 12
+
+/*
+ * The alignment value of all allocations in number of bytes for
+ * loading admin information before an allocation. If possible, the
+ * configure script will set this to be the value returned by
+ * sizeof(long) which in most systems is the register width.
+ *
+ * NOTE: the value will never be auto-configured to be less than 8
+ * because some system (like sparc for instance) report the sizeof(long)
+ * == 4 while the register size is 8 bytes. Certain memory needs to be of
+ * the same base as the register size (stack frames, code, etc.). Any
+ * ideas how I can determine the register size in a better (and portable)
+ * fashion?
+ *
+ * NOTE: larger the number the more memory may be wasted by certain
+ * debugging settings like fence-post checking.
+ */
+#define ALLOCATION_ALIGNMENT 8
+
+/*
+ * This checks to see if the abort routine does extensive cleaning up
+ * before halting a program. If so then it may call malloc functions
+ * making the library go recursive. If abort is set to not okay then
+ * you should tune the KILL_PROCESS and SIGNAL_INCLUDE options in
+ * settings.h if you want the library to be able to dump core.
+ */
+#define ABORT_OKAY 1
+
+/*
+ * This checks to see if we can include signal.h and get SIGHUP,
+ * SIGINT, and SIGTERM for the catch-signals token. With this token,
+ * you can have the library do an automatic shutdown if we see the
+ * above signals.
+ */
+#define SIGNAL_OKAY 1
+#define RETSIGTYPE void
+
+/*
+ * This checks to see if we can include return.h and use the assembly
+ * macros there to call the callers address for logging. If you do
+ * not want this behavior, then set the USE_RETURN_MACROS to 0 in the
+ * settings.h file.
+ */
+#define RETURN_MACROS_WORK 1
+
+/*
+ * Why can't the compiler folks agree about this. I really hate Unix
+ * sometimes for its blatant disregard for anything approaching a
+ * standard.
+ */
+#define IDENT_WORKS 1
+
+/*
+ * Which pthread include file to use.
+ */
+#define HAVE_PTHREAD_H 1
+#define HAVE_PTHREADS_H 0
+
+/*
+ * What pthread functions do we have?
+ */
+#define HAVE_PTHREAD_MUTEX_INIT 1
+#define HAVE_PTHREAD_MUTEX_LOCK 1
+#define HAVE_PTHREAD_MUTEX_UNLOCK 1
+
+/*
+ * What is the pthread mutex type? Usually (always?) it is
+ * pthread_mutex_t.
+ */
+#define THREAD_MUTEX_T pthread_mutex_t
+
+/*
+ * On some systems, you initialize mutex variables with NULL. Others
+ * require various stupid non-portable incantations. The OSF 3.2 guys
+ * should be ashamed of themselves. This only is used if the
+ * LOCK_THREADS setting is enabled in the settings.h.
+ */
+#define THREAD_LOCK_INIT_VAL 0
+
+/*
+ * Under the Cygwin environment, when malloc calls getenv, it core
+ * dumps. This is because Cygwin, as far as I know, is loading the
+ * shared libraries for the various system functions and goes
+ * recursive with a call to getenv. Ugh.
+ *
+ * So we have to delay the getenv call. This sets when we can do the
+ * getenv call so the environmental processing is delayed.
+ */
+#define GETENV_SAFE 1
+
+/*
+ * See whether support exists for the constructor attribute which
+ * allows the library to run code before main() is called. I know
+ * that later versions of gcc have support for this and maybe other
+ * compilers do as well.
+ */
+#define CONSTRUCTOR_WORKS 1
+
+/*
+ * See whether support exists for the destructor attribute which
+ * allows the library to run code after main() is exited. I know
+ * that later versions of gcc have support for this and maybe other
+ * compilers do as well.
+ */
+#define DESTRUCTOR_WORKS 1
+
+/*
+ * See if we have the GetEnvironmentVariableA Cygwin function. This
+ * is used as a getenv replacement.
+ */
+#define HAVE_GETENVIRONMENTVARIABLEA 0
+
+/*
+ * LIBRARY DEFINES:
+ */
+
+/*
+ * Whether the compiler and OS has standard C headers.
+ */
+#define STDC_HEADERS 1
+
+/*
+ * Some systems have functions which can register routines to be
+ * called by exit(3) (or when the program returns from main). This
+ * functionality allows the dmalloc_shutdown() routine to be called
+ * automatically upon program completion so that the library can log
+ * statistics. Use the AUTO_SHUTDOWN define above to disable this.
+ * Please send me mail if this functionality exists on your system but
+ * in another name.
+ *
+ * NOTE: If neither is available, take a look at atexit.c in the
+ * contrib directory which may provide this useful functionality for
+ * your system.
+ */
+#define HAVE_ATEXIT 1
+#define HAVE_ON_EXIT 1
+
+/* Is the DMALLOC_SIZE type unsigned? */
+#define DMALLOC_SIZE_UNSIGNED 1
+
+/*
+ * The dmalloc library provides its own versions of the following
+ * functions, or knows how to work around their absence.
+ */
+/* bells and whistles */
+#define HAVE_FORK 1
+#define HAVE_GETHOSTNAME 1
+#define HAVE_GETPID 1
+#define HAVE_GETUID 1
+#define HAVE_TIME 1
+#define HAVE_CTIME 1
+
+#define HAVE_VPRINTF 1
+#define HAVE_SNPRINTF 1
+#define HAVE_VSNPRINTF 1
+
+#define HAVE_RECALLOC 0
+#define HAVE_MEMALIGN 1
+#define HAVE_VALLOC 1
+
+/* various functions for arg checking and/or internal use */
+
+#define HAVE_ATOI 1
+#define HAVE_ATOL 1
+#define HAVE_BCMP 1
+#define HAVE_BCOPY 1
+#define HAVE_BZERO 1
+#define HAVE_INDEX 1
+#define HAVE_MEMCCPY 1
+#define HAVE_MEMCHR 1
+#define HAVE_MEMCMP 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMSET 1
+#define HAVE_RINDEX 1
+#define HAVE_STRCASECMP 1
+#define HAVE_STRCAT 1
+#define HAVE_STRCHR 1
+#define HAVE_STRCMP 1
+#define HAVE_STRCPY 1
+#define HAVE_STRCSPN 1
+#define HAVE_STRDUP 0
+#define HAVE_STRLEN 1
+#define HAVE_STRNCASECMP 1
+#define HAVE_STRNCAT 1
+#define HAVE_STRNCMP 1
+#define HAVE_STRNCPY 1
+#define HAVE_STRNDUP 0
+#define HAVE_STRPBRK 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSEP 1
+#define HAVE_STRSPN 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK 1
+
+/* manual settings */
+#include "settings.h"
+
+#endif /* ! __CONF_H__ */
diff --git a/packages/dmalloc/files/configure-pagesize-HACK.patch b/packages/dmalloc/files/configure-pagesize-HACK.patch
new file mode 100644
index 0000000000..e9c8d666a0
--- /dev/null
+++ b/packages/dmalloc/files/configure-pagesize-HACK.patch
@@ -0,0 +1,33 @@
+Index: dmalloc-5.5.2/configure.ac
+===================================================================
+--- dmalloc-5.5.2.orig/configure.ac
++++ dmalloc-5.5.2/configure.ac
+@@ -348,26 +348,8 @@ AC_MSG_RESULT([$ac_cv_use_mmap])
+ #
+ AC_CHECK_FUNCS(getpagesize)
+ AC_MSG_CHECKING([basic-block size])
+-ac_cv_page_size=0
+-if test $ac_cv_page_size = 0; then
+- AC_RUN_IFELSE([main() { if (getpagesize()<=2048) exit(0); else exit(1); }],
+- [ ac_cv_page_size=11 ] )
+-fi
+-if test $ac_cv_page_size = 0; then
+- AC_RUN_IFELSE([main() { if (getpagesize()<=4096) exit(0); else exit(1); }],
+- [ ac_cv_page_size=12 ] )
+-fi
+-if test $ac_cv_page_size = 0; then
+- AC_RUN_IFELSE([main() { if (getpagesize()<=8192) exit(0); else exit(1); }],
+- [ ac_cv_page_size=13 ] )
+-fi
+-if test $ac_cv_page_size = 0; then
+- AC_RUN_IFELSE([main() { if (getpagesize()<=16384) exit(0); else exit(1); }],
+- [ ac_cv_page_size=14 ] )
+-fi
+-if test $ac_cv_page_size = 0; then
+- ac_cv_page_size=15
+-fi
++# fix to 4K for now
++ac_cv_page_size=12
+ AC_DEFINE_UNQUOTED([BASIC_BLOCK],[$ac_cv_page_size])
+ AC_MSG_RESULT([$ac_cv_page_size])
+
diff --git a/packages/dnsmasq/dnsmasq_2.38.bb b/packages/dnsmasq/dnsmasq_2.45.bb
index 83aea1d299..83aea1d299 100644
--- a/packages/dnsmasq/dnsmasq_2.38.bb
+++ b/packages/dnsmasq/dnsmasq_2.45.bb
diff --git a/packages/dsplink/codec-engine_2.10.bb b/packages/dsplink/codec-engine_2.10.bb
index 199df5ac62..f444c24e1f 100644
--- a/packages/dsplink/codec-engine_2.10.bb
+++ b/packages/dsplink/codec-engine_2.10.bb
@@ -5,7 +5,7 @@ RDEPENDS = "update-modules"
inherit module
-PR = "r4"
+PR = "r5"
PV = "2.10"
# Get CE tarball from TI website, place in sources and calculate
@@ -14,6 +14,7 @@ PV = "2.10"
SRC_URI = "http://install.tarball.in.source.dir/codec_engine_2_10_01.tar.gz \
file://xdcpaths.mak \
+ file://ticel-config \
"
S = "${WORKDIR}/codec_engine_2_10_01"
@@ -47,6 +48,7 @@ do_configure() {
sed -i -e s:arm_v5t_le-:${TAGET_PREFIX}:g $cfg
done
+ install -d ${S}/examples/ti/sdo/ce/examples/apps/speech/linuxonly/app/
echo -n "${CFLAGS} -I${TITOOLSDIR}/${TIXDCTOOLSDIR}/packages -I${S}/packages -I${S}/cetools/packages" > ${S}/examples/ti/sdo/ce/examples/apps/speech/linuxonly/app/compiler.opt
}
@@ -83,6 +85,19 @@ do_compile() {
}
+export DSPLIBS = "${S}/packages/ti/sdo/ce/utils/trace/lib/*.a* \
+ ${S}/packages/ti/sdo/ce/bioslog/lib/*.a* \
+ ${S}/packages/ti/sdo/ce/video/lib/*.a* \
+ ${S}/packages/ti/sdo/ce/audio/lib/*.a* \
+ ${S}/packages/ti/sdo/ce/speech/lib/*.a* \
+ ${S}/packages/ti/sdo/ce/lib/*.a* \
+ ${S}/packages/ti/sdo/ce/alg/lib/*.a* \
+ ${S}/cetools/packages/ti/sdo/fc/dman3/*.a* \
+ ${S}/cetools/packages/ti/sdo/fc/acpy3/*.a* \
+ ${S}/packages/ti/sdo/ce/utils/xdm/lib/*.a* \
+ ${S}/cetools/packages/ti/sdo/utils/trace/lib/*.a* \
+ "
+
do_install() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
cd ${S}/cetools/packages/ti/sdo/linuxutils/cmem
@@ -92,17 +107,39 @@ do_install() {
install -d ${D}/${base_sbindir}
cd ${D} ; mv apitest apitestd multi_process multi_processd translate translated ${D}/${base_sbindir}
+
install -d ${D}/${libdir}
- for i in ${S}/cetools/packages/ti/sdo/linuxutils/cmem/lib/*.a ; do
- install -m 0755 $i ${D}/${libdir}/
+ for i in ${DSPLIBS}; do
+ install -m 0755 $i ${D}/${libdir}/ || true
done
+ install -m 0755 ${S}/cetools/packages/ti/sdo/linuxutils/cmem/lib/*.a ${D}/${libdir}
}
do_stage() {
install -d ${STAGING_LIBDIR}
- for i in ${S}/cetools/packages/ti/sdo/linuxutils/cmem/lib/*.a ; do
- install -m 0755 $i ${STAGING_LIBDIR}/
+ for i in ${DSPLIBS} ; do
+ install -m 0755 $i ${STAGING_LIBDIR}/
+ ln -sf ${STAGING_LIBDIR}/$(basename $i | awk -F. '{print $1}').a470MV ${STAGING_LIBDIR}/$(basename $i | awk -F. '{print $1}').a || true
+ done
+
+ install -m 0755 ${S}/cetools/packages/ti/sdo/linuxutils/cmem/lib/*.a ${STAGING_LIBDIR}/
+
+ install -d ${STAGING_INCDIR}/codec-engine}
+
+ for header in $(find ${S}/cetools/packages/ -name "*.h") ; do
+ install -d ${STAGING_INCDIR}/codec-engine/$(dirname $header | sed s:${S}::g)
+ cp -pPr $header ${STAGING_INCDIR}/codec-engine/$(echo $header | sed s:${S}::g)
+ done
+
+ for header in $(find ${S}/packages/ -name "*.h") ; do
+ install -d ${STAGING_INCDIR}/codec-engine/$(dirname $header | sed s:${S}::g)
+ cp -pPr $header ${STAGING_INCDIR}/codec-engine/$(echo $header | sed s:${S}::g)
done
+
+ sed -i -e s:SEDME_CFLAGS:"-I${TITOOLSDIR}/${TIBIOSDIR}/xdctools/packages -I${STAGING_INCDIR}/codec-engine/packages -I${STAGING_INCDIR}/codec-engine/cetools/packages/":g \
+ -e s:SEDME_STAGINGLIBDIR:${STAGING_LIBDIR}:g \
+ ${WORKDIR}/ticel-config
+ install -m 0755 ${WORKDIR}/ticel-config ${STAGING_BINDIR_CROSS}
}
pkg_postinst_${PN}-module () {
diff --git a/packages/dsplink/dsplink_1.51.00.08.bb b/packages/dsplink/dsplink_1.51.00.08.bb
index 36ac50f4cf..26e63530b9 100644
--- a/packages/dsplink/dsplink_1.51.00.08.bb
+++ b/packages/dsplink/dsplink_1.51.00.08.bb
@@ -1,5 +1,9 @@
require dsplink.inc
+
+DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_armv7a = "1"
+
PR = "r9"
PE = "1"
PV = "1.51"
diff --git a/packages/dsplink/files/ticel-config b/packages/dsplink/files/ticel-config
new file mode 100644
index 0000000000..13ab6b02be
--- /dev/null
+++ b/packages/dsplink/files/ticel-config
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+LIBS=""
+for lib in \
+ decode_x470MV.a \
+ TraceUtil.a \
+ bioslog.a \
+ video.a \
+ audio.a \
+ speech.a \
+ ce.a \
+ Algorithm_noOS.a \
+ alg.a \
+ osal_dsplink_linux.a \
+ osal_dsplink_linux_6446.a \
+ dman3Cfg.a \
+ acpy3.a \
+ cmem.a \
+ dsplink.lib \
+ XdmUtils.a \
+ gt.a
+do
+ LIBS="${LIBS} SEDME_STAGINGLIBDIR/${lib}"
+done
+
+CFLAGS="SEDME_CFLAGS"
+
+usage()
+{
+ echo "Usage : $0 [--cflags] [--libs]"
+ exit 1
+}
+
+test "$#" = 0 && usage
+
+OUT=""
+while test "$#" -gt 0;
+do
+ case "$1" in
+ "--cflags")
+ OUT="${OUT} ${CFLAGS}"
+ ;;
+ "--libs")
+ OUT="${OUT} ${LIBDIRS} ${LIBS}"
+ ;;
+ *)
+ usage
+ ;;
+ esac
+
+ shift
+done
+
+echo "${OUT}"
+exit 0
diff --git a/packages/ecj/ecj-bootstrap-native_3.3.2.bb b/packages/ecj/ecj-bootstrap-native_3.3.2.bb
new file mode 100644
index 0000000000..bd4347457c
--- /dev/null
+++ b/packages/ecj/ecj-bootstrap-native_3.3.2.bb
@@ -0,0 +1,38 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+#
+# Since the VM running the compiler has no effect on the produced bytecode this recipe
+# uses the jar created by ecj-initial and creates a start script that runs it with a different
+# VM.
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "EPL"
+
+DEPENDS = "ecj-initial virtual/java-native"
+
+PROVIDES = "virtual/javac-native"
+
+SRC_URI = "file://ecj.in"
+
+S = "${WORKDIR}"
+
+JAR = "ecj-bootstrap-${PV}.jar"
+
+inherit native
+
+do_compile() {
+ # Create the start script
+ echo "#!/bin/sh" > ecj-bootstrap
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap
+ echo "RUNTIME=java" >> ecj-bootstrap
+ cat ecj.in >> ecj-bootstrap
+}
+
+do_stage() {
+ install -d ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}/javac
+}
diff --git a/packages/ecj/ecj-bootstrap-native_3.4.bb b/packages/ecj/ecj-bootstrap-native_3.4.bb
new file mode 100644
index 0000000000..bd4347457c
--- /dev/null
+++ b/packages/ecj/ecj-bootstrap-native_3.4.bb
@@ -0,0 +1,38 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+#
+# Since the VM running the compiler has no effect on the produced bytecode this recipe
+# uses the jar created by ecj-initial and creates a start script that runs it with a different
+# VM.
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+SECTION = "devel"
+PRIORITY = "optional"
+LICENSE = "EPL"
+
+DEPENDS = "ecj-initial virtual/java-native"
+
+PROVIDES = "virtual/javac-native"
+
+SRC_URI = "file://ecj.in"
+
+S = "${WORKDIR}"
+
+JAR = "ecj-bootstrap-${PV}.jar"
+
+inherit native
+
+do_compile() {
+ # Create the start script
+ echo "#!/bin/sh" > ecj-bootstrap
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap
+ echo "RUNTIME=java" >> ecj-bootstrap
+ cat ecj.in >> ecj-bootstrap
+}
+
+do_stage() {
+ install -d ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}/javac
+}
diff --git a/packages/ecj/ecj-initial_3.3.2.bb b/packages/ecj/ecj-initial_3.3.2.bb
new file mode 100644
index 0000000000..22cced959d
--- /dev/null
+++ b/packages/ecj/ecj-initial_3.3.2.bb
@@ -0,0 +1,84 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+
+# This variant runs on the initial (not Java5-compatible runtime).
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+LICENSE = "EPL"
+
+DEPENDS = "fastjar-native jikes-initial virtual/java-initial"
+
+SRC_URI = "\
+ http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3.2-200802211800/ecjsrc.zip \
+ file://ecj.in \
+ "
+
+S = "${WORKDIR}"
+
+inherit native
+
+JAR = "ecj-bootstrap-${PV}.jar"
+
+do_unpackpost() {
+ if [ ! -d source ]; then
+ mkdir source
+ fi
+
+ if [ ! -d build ]; then
+ mkdir build
+ fi
+
+ # Remove crap.
+ rm about.html build.xml
+ rm -rf META-INF
+
+ # Move source into separate subdir.
+ mv org source/
+
+ # Remove stuff unneeded for the bootstrap compiler.
+ rm -rf source/org/eclipse/jdt/internal/compiler/apt
+ rm -rf source/org/eclipse/jdt/internal/compiler/tool
+ rm -rf source/org/eclipse/jdt/internal/antadapter
+ rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java
+
+ # Make a copy of the remaining source to get the embedded
+ # resources.
+ cp -r source/org build/
+
+ # Remove source code and other stuff.
+ find build -name '*.java' -exec rm -f {} \;
+ find build -name '*.html' -exec rm -f {} \;
+}
+
+addtask unpackpost after do_unpack before do_patch
+
+do_compile() {
+ find source -name '*.java' > sourcefiles
+ split -l 25 sourcefiles ecj-sources.
+
+ # Compiling in place is done because the sources contain
+ # property files which need to be available at runtime.
+ for list in `find . -name 'ecj-sources.*'`; do
+ echo "building files in $list ...";
+ echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`;
+ jikes-initial \
+ -d build -source 1.4 -sourcepath source `cat $list`;
+ done
+
+ fastjar -c -C build . -f ${JAR}
+
+ # Create the start script
+ echo "#!/bin/sh" > ecj-initial
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial
+ echo "RUNTIME=java-initial" >> ecj-initial
+ cat ecj.in >> ecj-initial
+}
+
+do_stage() {
+ install -d ${STAGING_DATADIR}/java
+ install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java
+
+ install -d ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-initial ${STAGING_BINDIR}
+}
diff --git a/packages/ecj/ecj-initial_3.4.bb b/packages/ecj/ecj-initial_3.4.bb
new file mode 100644
index 0000000000..a0cacffebb
--- /dev/null
+++ b/packages/ecj/ecj-initial_3.4.bb
@@ -0,0 +1,84 @@
+# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more
+# and no less features.
+
+# This variant runs on the initial (not Java5-compatible runtime).
+
+DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant"
+HOMEPAGE = "http://www.eclipse.org/"
+LICENSE = "EPL"
+
+DEPENDS = "fastjar-native jikes-initial virtual/java-initial"
+
+SRC_URI = "\
+ http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.4-200806172000/ecjsrc.zip \
+ file://ecj.in \
+ "
+
+S = "${WORKDIR}"
+
+inherit native
+
+JAR = "ecj-bootstrap-${PV}.jar"
+
+do_unpackpost() {
+ if [ ! -d source ]; then
+ mkdir source
+ fi
+
+ if [ ! -d build ]; then
+ mkdir build
+ fi
+
+ # Remove crap.
+ rm about.html build.xml
+ rm -rf META-INF
+
+ # Move source into separate subdir.
+ mv org source/
+
+ # Remove stuff unneeded for the bootstrap compiler.
+ rm -rf source/org/eclipse/jdt/internal/compiler/apt
+ rm -rf source/org/eclipse/jdt/internal/compiler/tool
+ rm -rf source/org/eclipse/jdt/internal/antadapter
+ rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java
+
+ # Make a copy of the remaining source to get the embedded
+ # resources.
+ cp -r source/org build/
+
+ # Remove source code and other stuff.
+ find build -name '*.java' -exec rm -f {} \;
+ find build -name '*.html' -exec rm -f {} \;
+}
+
+addtask unpackpost after do_unpack before do_patch
+
+do_compile() {
+ find source -name '*.java' > sourcefiles
+ split -l 25 sourcefiles ecj-sources.
+
+ # Compiling in place is done because the sources contain
+ # property files which need to be available at runtime.
+ for list in `find . -name 'ecj-sources.*'`; do
+ echo "building files in $list ...";
+ echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`;
+ jikes-initial \
+ -d build -source 1.4 -sourcepath source `cat $list`;
+ done
+
+ fastjar -c -C build . -f ${JAR}
+
+ # Create the start script
+ echo "#!/bin/sh" > ecj-initial
+ echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial
+ echo "RUNTIME=java-initial" >> ecj-initial
+ cat ecj.in >> ecj-initial
+}
+
+do_stage() {
+ install -d ${STAGING_DATADIR}/java
+ install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java
+
+ install -d ${STAGING_BINDIR}
+ install -m 755 ${S}/ecj-initial ${STAGING_BINDIR}
+}
diff --git a/packages/efl1/ecore_cvs.bb b/packages/efl1/ecore_cvs.bb
index e2ded16111..f36cc737bf 100644
--- a/packages/efl1/ecore_cvs.bb
+++ b/packages/efl1/ecore_cvs.bb
@@ -1,32 +1,33 @@
require ecore.inc
-PR = "r0"
+PR = "r1"
EXTRA_OECONF = "\
- --x-includes=${STAGING_INCDIR}/X11 \
- --x-libraries=${STAGING_LIBDIR} \
- --enable-simple-x11 \
+ --x-includes=${STAGING_INCDIR}/X11 \
+ --x-libraries=${STAGING_LIBDIR} \
+ --enable-simple-x11 \
\
- --enable-ecore-txt \
- --enable-ecore-config \
- --disable-ecore-x-xcb \
- --enable-ecore-x \
- --enable-ecore-job \
- --disable-ecore-directfb \
- --disable-ecore-sdl \
- --enable-ecore-fb \
- --enable-ecore-evas \
- --enable-ecore-evas-x11-16 \
- --disable-ecore-evas-x11-gl \
- --enable-ecore-evas-xrender \
- --disable-ecore-evas-dfb \
- --disable-ecore-evas-sdl \
- --disable-openssl \
- --enable-abstract-sockets \
- --enable-ecore-con \
- --enable-ecore-ipc \
- --enable-ecore-file \
- --enable-inotify \
- --disable-poll \
- --enable-curl \
- --disable-ecore-desktop \
+ --enable-ecore-txt \
+ --enable-ecore-config \
+ --disable-ecore-x-xcb \
+ --enable-ecore-x \
+ --enable-ecore-job \
+ --disable-ecore-directfb \
+ --disable-ecore-sdl \
+ --enable-ecore-fb \
+ --enable-ecore-evas \
+ --enable-ecore-evas-x11-16 \
+ --enable-ecore-evas-16-x11 \
+ --disable-ecore-evas-x11-gl \
+ --enable-ecore-evas-xrender \
+ --disable-ecore-evas-dfb \
+ --disable-ecore-evas-sdl \
+ --disable-openssl \
+ --enable-abstract-sockets \
+ --enable-ecore-con \
+ --enable-ecore-ipc \
+ --enable-ecore-file \
+ --enable-inotify \
+ --disable-poll \
+ --enable-curl \
+ --disable-ecore-desktop \
"
diff --git a/packages/eglibc/eglibc-initial.inc b/packages/eglibc/eglibc-initial.inc
index 342711c157..5fbb5dbda5 100644
--- a/packages/eglibc/eglibc-initial.inc
+++ b/packages/eglibc/eglibc-initial.inc
@@ -1,5 +1,5 @@
SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
@@ -9,11 +9,13 @@ PACKAGES_DYNAMIC = ""
do_configure () {
sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
chmod +x ${S}/configure
- CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" \
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ find ${S} -name "configure" | xargs touch
${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+ --prefix=/usr \
--without-cvs --disable-sanity-checks \
--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
- --enable-hacker-mode
+ --enable-hacker-mode --enable-addons
}
do_compile () {
@@ -22,8 +24,14 @@ do_compile () {
do_stage () {
oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
- includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+ includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers \
+ install-bootstrap-headers=yes
+ oe_runmake csu/subdir_lib
+ mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+ install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
}
do_install () {
diff --git a/packages/eglibc/eglibc-intermediate.inc b/packages/eglibc/eglibc-intermediate.inc
deleted file mode 100644
index c226d8658d..0000000000
--- a/packages/eglibc/eglibc-intermediate.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SECTION = "libs"
-PACKAGES = ""
-PACKAGES_DYNAMIC = ""
-PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc"
-DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
-
-do_install () {
- :
-}
-
-GLIBC_ADDONS = "nptl,ports"
-GLIBC_EXTRA_OECONF = ""
diff --git a/packages/eglibc/eglibc-intermediate_svn.bb b/packages/eglibc/eglibc-intermediate_svn.bb
deleted file mode 100644
index 7150f56d26..0000000000
--- a/packages/eglibc/eglibc-intermediate_svn.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require eglibc_${PV}.bb
-require eglibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- find ${S} -name "configure" | xargs touch
- sed -i s:-Werror:: ${S}/configure
-}
diff --git a/packages/eglibc/eglibc.inc b/packages/eglibc/eglibc.inc
index e1559e46e4..0309a7f1b2 100644
--- a/packages/eglibc/eglibc.inc
+++ b/packages/eglibc/eglibc.inc
@@ -4,14 +4,17 @@ SECTION = "libs"
PRIORITY = "required"
LICENSE = "LGPL"
# nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
#this leads to circular deps, so lets not add it yet
#RDEPENDS_ldd += " bash"
# nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES += "virtual/libintl virtual/libiconv"
-
+# We need this RRECOMMENDS because libc dlopens libgcc
+# and shlib mechanism can not detect it because its not
+# listed in the NEEDED field.
+RRECOMMENDS += "libgcc"
inherit autotools
LEAD_SONAME = "libc.so"
diff --git a/packages/eglibc/eglibc_svn.bb b/packages/eglibc/eglibc_svn.bb
index e7a4a1ba75..3e8a5a0c99 100644
--- a/packages/eglibc/eglibc_svn.bb
+++ b/packages/eglibc/eglibc_svn.bb
@@ -3,7 +3,7 @@ require eglibc.inc
# DEFAULT_PREFERENCE = "-1"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/eglibc-svn"
PV = "2.8+svnr${SRCREV}"
-PR = "r6"
+PR = "r8"
SRC_URI = "svn://svn.eglibc.org;module=trunk \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
file://etc/ld.so.conf \
diff --git a/packages/ffmpeg/omapfbplay/fbplay-static.diff b/packages/ffmpeg/omapfbplay/fbplay-static.diff
index 439fc6e6bb..f1f7015c2a 100644
--- a/packages/ffmpeg/omapfbplay/fbplay-static.diff
+++ b/packages/ffmpeg/omapfbplay/fbplay-static.diff
@@ -1,10 +1,10 @@
---- /tmp/Makefile 2008-07-10 12:59:00.000000000 +0200
-+++ git/Makefile 2008-07-10 12:57:38.723198000 +0200
+--- /tmp/Makefile 2008-07-21 22:08:58.000000000 +0200
++++ git/Makefile 2008-07-21 22:10:08.023198000 +0200
@@ -5,6 +5,6 @@
CFLAGS = -O3 -Wall -fomit-frame-pointer -mcpu=cortex-a8 -mfpu=neon \
-I$(LINUX)/include -I$(FFMPEG)
LDFLAGS = -L$(FFMPEG)/libavcodec -L$(FFMPEG)/libavformat -L$(FFMPEG)/libavutil
--LDLIBS = -lavformat -lavcodec -lavutil -lm -lz -lpthread
-+LDLIBS = -lavformat -lavcodec -lavutil -lz -ldl -lbz2 -lfaac -lgsm -lmp3lame -lm -lpthread
+-LDLIBS = -lavformat -lavcodec -lavutil -lm -lz -lpthread -lrt
++LDLIBS = -lavformat -lavcodec -lavutil -lz -ldl -lbz2 -lfaac -lgsm -lmp3lame -lm -lpthread -lrt
all: omapfbplay
diff --git a/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf b/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf
index 79c06edff2..28a6416729 100644
--- a/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf
+++ b/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf
@@ -5,6 +5,8 @@ ignoreinput=2,3
[input]
# don't read from accellerometers for GTA02
ignoreinput=2,3
+# specify accellerometer type
+accelerometer_type = gta02
# keys
report1 = AUX,key,169,1
report2 = POWER,key,116,1
diff --git a/packages/freesmartphone/frameworkd_git.bb b/packages/freesmartphone/frameworkd_git.bb
index 20c655e98d..76e8b78691 100644
--- a/packages/freesmartphone/frameworkd_git.bb
+++ b/packages/freesmartphone/frameworkd_git.bb
@@ -5,7 +5,7 @@ SECTION = "console/network"
DEPENDS = "python-cython-native python-pyrex-native"
LICENSE = "GPL"
PV = "0.8.1+gitr${SRCREV}"
-PR = "r9"
+PR = "r11"
inherit distutils update-rc.d
@@ -34,7 +34,16 @@ RDEPENDS_${PN} += "\
python-pyyaml \
python-shell \
python-syslog \
+ \
+ ${PN}-config \
"
-FILES_${PN} += "${sysconfdir} ${datadir}"
+
+PACKAGES =+ "${PN}-config"
+
+PACKAGE_ARCH_${PN}-config = "${MACHINE_ARCH}"
+FILES_${PN}-config = "${sysconfdir}"
+
+PACKAGE_ARCH_${PN} = "${BASE_PACKAGE_ARCH}"
+FILES_${PN} += "${datadir}"
FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/framework/subsystems/*/.debug"
diff --git a/packages/freesmartphone/illume-theme-freesmartphone_git.bb b/packages/freesmartphone/illume-theme-freesmartphone_git.bb
new file mode 100644
index 0000000000..2d881214a0
--- /dev/null
+++ b/packages/freesmartphone/illume-theme-freesmartphone_git.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Illume theme for the freesmartphone.org project"
+HOMEPAGE = "http://illume.projects.openmoko.org/"
+LICENSE = "MIT/BSD"
+PV = "0.0+gitr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "${FREESMARTPHONE_GIT}/artwork.git;protocol=git;branch=master"
+S = "${WORKDIR}/git/illume"
+
+do_install() {
+ install -d ${D}${sysconfdir}/enlightenment
+ install -d ${D}${datadir}/enlightenment/data/themes/
+ install -d ${D}${datadir}/enlightenment/data/init/
+
+ # Make illume the default profile
+ echo 'E_PROFILE="-profile illume"' > ${D}${sysconfdir}/enlightenment/default_profile
+
+ install -m 0644 ${S}/illume.edj ${D}${datadir}/enlightenment/data/themes/
+ install -m 0644 ${S}/illume_init.edj ${D}${datadir}/enlightenment/data/init/
+}
+
+RPROVIDES_${PN} = "illume-theme"
+CONFFILES_${PN} = "${sysconfdir}/enlightenment/default_profile"
+FILES_${PN} = "${sysconfdir}/enlightenment ${datadir}/enlightenment"
+
+PACKAGE_ARCH_${PN} = "all"
+
diff --git a/packages/freesmartphone/zhone_git.bb b/packages/freesmartphone/zhone_git.bb
index 8a4a21bbed..55b56c8e26 100644
--- a/packages/freesmartphone/zhone_git.bb
+++ b/packages/freesmartphone/zhone_git.bb
@@ -2,9 +2,9 @@ DESCRIPTION = "Zhone: Zen Phone"
LICENSE = "GPL"
SECTION = "x11"
DEPENDS = "edje-native python-pyrex-native python-cython-native"
-RDEPENDS = "task-python-efl python-textutils python-dbus"
+RDEPENDS = "task-python-efl python-textutils python-dbus python-pycairo"
PV = "0.0.0+gitr${SRCREV}"
-PR = "r7"
+PR = "r8"
SRC_URI = "${FREESMARTPHONE_GIT}/zhone.git;protocol=git;branch=master \
file://80zhone"
diff --git a/packages/gcc/gcc-3.4.4.inc b/packages/gcc/gcc-3.4.4.inc
index 704d9bc5c8..34204f10fa 100644
--- a/packages/gcc/gcc-3.4.4.inc
+++ b/packages/gcc/gcc-3.4.4.inc
@@ -17,8 +17,10 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://always-fixincperm.patch;patch=1 \
file://GCOV_PREFIX_STRIP-cross-profile_3.4.patch;patch=1 \
file://zecke-xgcc-cpp.patch;patch=1 \
- file://gcc4-mtune-compat.patch;patch=1"
-
-SRC_URI += "file://gcc34-configure.in.patch;patch=1"
-SRC_URI += "file://gcc34-thumb-support.patch;patch=1"
+ file://gcc-libgcc2-inhibit-libc.patch;patch=1 \
+ file://gcc4-mtune-compat.patch;patch=1 \
+ file://gcc34-configure.in.patch;patch=1 \
+ file://gcc34-thumb-support.patch;patch=1 \
+ file://gcc-cross-fixincl.patch;patch=1 \
+ "
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
diff --git a/packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch b/packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch
new file mode 100644
index 0000000000..365485497c
--- /dev/null
+++ b/packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch
@@ -0,0 +1,77 @@
+See http://gcc.gnu.org/PR22541
+
+From: Dan Kegel
+
+When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
+(the only two I've tried like this), the configure script happily copies
+the glibc include files from include to sys-include; here's the line
+from the log file (with $PREFIX instead of the real prefix):
+
+Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
+
+But later, when running fixincludes, it gives the error message
+ The directory that should contain system headers does not exist:
+ $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
+
+Nevertheless, it continues building; the header files it installs in
+ $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
+do not include the boilerplate that would cause it to #include_next the
+glibc headers in the system header directory.
+Thus the resulting toolchain can't compile the following program:
+#include <limits.h>
+int x = PATH_MAX;
+because its limits.h doesn't include the glibc header.
+
+That's not nice. I suspect the problem is that gcc/Makefile.in assumes that
+it can refer to $PREFIX/i686-unknown-linux-gnu with the path
+ $PREFIX/lib/../i686-unknown-linux-gnu, but
+that fails because the directory $PREFIX/lib doesn't exist during 'make all';
+it is only created later, during 'make install'. (Which makes this problem
+confusing, since one only notices the breakage well after 'make install',
+at which point the path configure complained about does exist, and has the
+right stuff in it.)
+
+A possible fix is to replace the line in gcc/Makefile.in that says
+ SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
+with a version that gets rid of extra ..'s, e.g.
+ SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
+(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
+for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
+
+
+---
+ gcc/Makefile.in | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+Index: gcc-3.4.4/gcc/Makefile.in
+===================================================================
+--- gcc-3.4.4.orig/gcc/Makefile.in 2008-07-23 23:44:15.000000000 -0700
++++ gcc-3.4.4/gcc/Makefile.in 2008-07-23 23:46:54.000000000 -0700
+@@ -350,7 +350,10 @@ NATIVE_SYSTEM_HEADER_DIR = /usr/include
+ CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
+
+ # autoconf sets SYSTEM_HEADER_DIR to one of the above.
+-SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
++# Purge it of unneccessary internal relative paths
++# to directories that might not exist yet.
++# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
++SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
+
+ # Control whether to run fixproto and fixincludes.
+ STMP_FIXPROTO = @STMP_FIXPROTO@
+@@ -2548,11 +2551,14 @@ install-gcc-tooldir:
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
+
+ # Build fixed copies of system files.
++# Abort if no system headers available, unless building a crosscompiler.
++# FIXME: abort unless building --without-headers would be more accurate and less ugly
++
+ stmp-fixinc: fixinc.sh gsyslimits.h
+ @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
+ echo The directory that should contain system headers does not exist: >&2 ; \
+ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
+- if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
++ if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
+ then sleep 1; else exit 1; fi; \
+ fi
+ rm -rf include; mkdir include
diff --git a/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch b/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch
new file mode 100644
index 0000000000..4e2b5667ff
--- /dev/null
+++ b/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch
@@ -0,0 +1,251 @@
+---
+ gcc/Makefile.in | 25 ++++++++++++++++---------
+ gcc/configure | 22 ++++++++++++++++++----
+ gcc/configure.ac | 15 ++++++++++++---
+ gcc/gcc.c | 9 +++++++++
+ 4 files changed, 55 insertions(+), 16 deletions(-)
+
+Index: gcc-3.4.4/gcc/configure.ac
+===================================================================
+--- gcc-3.4.4.orig/gcc/configure.ac 2008-07-23 23:53:04.000000000 -0700
++++ gcc-3.4.4/gcc/configure.ac 2008-07-23 23:53:05.000000000 -0700
+@@ -567,6 +567,10 @@ AC_ARG_ENABLE(shared,
+ ], [enable_shared=yes])
+ AC_SUBST(enable_shared)
+
++AC_ARG_WITH(build-sysroot,
++ [ --with-build-sysroot=sysroot
++ use sysroot as the system root during the build])
++
+ AC_ARG_WITH(sysroot,
+ [ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
+ [
+@@ -577,6 +581,11 @@ AC_ARG_WITH(sysroot,
+
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
+ CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
++ if test "x$with_build_sysroot" != x; then
++ build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
++ else
++ build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
++ fi
+
+ if test "x$exec_prefix" = xNONE; then
+ if test "x$prefix" = xNONE; then
+@@ -1453,7 +1462,7 @@ if test x$host != x$target
+ then
+ CROSS="-DCROSS_COMPILE"
+ ALL=all.cross
+- SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
++ SYSTEM_HEADER_DIR=$build_system_header_dir
+ case "$host","$target" in
+ # Darwin crosses can use the host system's libraries and headers,
+ # because of the fat library support. Of course, it must be the
+@@ -1487,11 +1496,11 @@ fi
+ # then define inhibit_libc in LIBGCC2_CFLAGS.
+ # This prevents libgcc2 from containing any code which requires libc
+ # support.
+-inhibit_libc=
++inhibit_libc=false
+ if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
+ test x$with_newlib = xyes ; } &&
+ { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
+- inhibit_libc=-Dinhibit_libc
++ inhibit_libc=true
+ fi
+ AC_SUBST(inhibit_libc)
+
+Index: gcc-3.4.4/gcc/Makefile.in
+===================================================================
+--- gcc-3.4.4.orig/gcc/Makefile.in 2005-02-24 01:26:57.000000000 -0800
++++ gcc-3.4.4/gcc/Makefile.in 2008-07-24 00:08:18.000000000 -0700
+@@ -291,7 +291,7 @@ GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./x
+ # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
+ # It omits XCFLAGS, and specifies -B./.
+ # It also specifies -isystem ./include to find, e.g., stddef.h.
+-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS)
++GCC_CFLAGS=$(CFLAGS_FOR_TARGET) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS)
+
+ # ---------------------------------------------------
+ # Programs which produce files for the target machine
+@@ -485,10 +485,17 @@ GGC_LIB=
+ LIBGCC = libgcc.a
+ INSTALL_LIBGCC = install-libgcc
+
++# "true" if the target C library headers are unavailable; "false"
++# otherwise.
++inhibit_libc = @inhibit_libc@
++ifeq ($(inhibit_libc),true)
++INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
++endif
++
+ # Options to use when compiling libgcc2.a.
+ #
+ LIBGCC2_DEBUG_CFLAGS = -g
+-LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@
++LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED $(INHIBIT_LIBC_CFLAGS)
+
+ # Additional options to use when compiling libgcc2.a.
+ # Some targets override this to -isystem include
+@@ -500,7 +507,7 @@ TARGET_LIBGCC2_CFLAGS =
+ # Options to use when compiling crtbegin/end.
+ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+ -finhibit-size-directive -fno-inline-functions -fno-exceptions \
+- -fno-zero-initialized-in-bss -fno-unit-at-a-time
++ -fno-zero-initialized-in-bss -fno-unit-at-a-time $(INHIBIT_LIBC_CFLAGS)
+
+ # Additional sources to handle exceptions; overridden by targets as needed.
+ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
+@@ -1247,33 +1254,33 @@ stmp-multilib: $(LIBGCC_DEPS)
+ $(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN \
++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN \
+ -o $(T)crtbegin$(objext)
+
+ $(T)crtend.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END \
++ -c $(srcdir)/crtstuff.c -DCRT_END \
+ -o $(T)crtend$(objext)
+
+ # These are versions of crtbegin and crtend for shared libraries.
+ $(T)crtbeginS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \
++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \
+ -o $(T)crtbeginS$(objext)
+
+ $(T)crtendS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \
++ -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \
+ -o $(T)crtendS$(objext)
+
+ # This is a version of crtbegin for -static links.
+ $(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
+ -o $(T)crtbeginT$(objext)
+
+ # Compile the start modules crt0.o and mcrt0.o that are linked with
+@@ -2542,7 +2549,7 @@ install-gcc-tooldir:
+
+ # Build fixed copies of system files.
+ stmp-fixinc: fixinc.sh gsyslimits.h
+- @if test ! -d ${SYSTEM_HEADER_DIR}; then \
++ @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
+ echo The directory that should contain system headers does not exist: >&2 ; \
+ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
+ if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
+Index: gcc-3.4.4/gcc/gcc.c
+===================================================================
+--- gcc-3.4.4.orig/gcc/gcc.c 2005-05-01 03:33:14.000000000 -0700
++++ gcc-3.4.4/gcc/gcc.c 2008-07-23 23:53:05.000000000 -0700
+@@ -1069,6 +1069,7 @@ static const struct option_map option_ma
+ {"--static", "-static", 0},
+ {"--std", "-std=", "aj"},
+ {"--symbolic", "-symbolic", 0},
++ {"--sysroot", "--sysroot=", "aj"},
+ {"--time", "-time", 0},
+ {"--trace-includes", "-H", 0},
+ {"--traditional", "-traditional", 0},
+@@ -3016,6 +3017,9 @@ display_help (void)
+ fputs (_(" -time Time the execution of each subprocess\n"), stdout);
+ fputs (_(" -specs=<file> Override built-in specs with the contents of <file>\n"), stdout);
+ fputs (_(" -std=<standard> Assume that the input sources are for <standard>\n"), stdout);
++ fputs (_("\
++ --sysroot=<directory> Use <directory> as the root directory for headers\n\
++ for headers and libraries\n"), stdout);
+ fputs (_(" -B <directory> Add <directory> to the compiler's search paths\n"), stdout);
+ fputs (_(" -b <machine> Run gcc for target <machine>, if installed\n"), stdout);
+ fputs (_(" -V <version> Run gcc version number <version>, if installed\n"), stdout);
+@@ -3884,6 +3888,11 @@ warranty; not even for MERCHANTABILITY o
+ ;
+ else if (! strcmp (argv[i], "-fhelp"))
+ ;
++ else if (! strncmp (argv[i], "--sysroot=", strlen ("--sysroot=")))
++ {
++ target_system_root = argv[i] + strlen ("--sysroot=");
++ target_system_root_changed = 1;
++ }
+ else if (argv[i][0] == '+' && argv[i][1] == 'e')
+ {
+ /* Compensate for the +e options to the C++ front-end;
+Index: gcc-3.4.4/gcc/configure
+===================================================================
+--- gcc-3.4.4.orig/gcc/configure 2008-07-23 23:53:04.000000000 -0700
++++ gcc-3.4.4/gcc/configure 2008-07-23 23:53:05.000000000 -0700
+@@ -907,6 +907,8 @@ Optional Packages:
+ --with-as arrange to use the specified as (full pathname)
+ --with-stabs arrange to use stabs instead of host debug format
+ --with-dwarf2 force the default debug format to be DWARF 2
++ --with-build-sysroot=sysroot
++ use sysroot as the system root during the build
+ --with-sysroot=DIR Search for usr/lib, usr/include, et al, within DIR.
+ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib
+ --with-system-libunwind use installed libunwind
+@@ -4756,6 +4758,13 @@ fi;
+
+
+
++# Check whether --with-build-sysroot or --without-build-sysroot was given.
++if test "${with_build_sysroot+set}" = set; then
++ withval="$with_build_sysroot"
++
++fi;
++
++
+ # Check whether --with-sysroot or --without-sysroot was given.
+ if test "${with_sysroot+set}" = set; then
+ withval="$with_sysroot"
+@@ -4767,6 +4776,11 @@ if test "${with_sysroot+set}" = set; the
+
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
+ CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
++ if test "x$with_build_sysroot" != x; then
++ build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
++ else
++ build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
++ fi
+
+ if test "x$exec_prefix" = xNONE; then
+ if test "x$prefix" = xNONE; then
+@@ -5229,7 +5243,7 @@ if test "${gcc_cv_prog_makeinfo_modern+s
+ else
+ ac_prog_version=`$MAKEINFO --version 2>&1 |
+ sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
+- echo "configure:5232: version of makeinfo is $ac_prog_version" >&5
++ echo "configure:5246: version of makeinfo is $ac_prog_version" >&5
+ case $ac_prog_version in
+ '') gcc_cv_prog_makeinfo_modern=no;;
+ 4.[2-9]*)
+@@ -9845,7 +9859,7 @@ if test x$host != x$target
+ then
+ CROSS="-DCROSS_COMPILE"
+ ALL=all.cross
+- SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
++ SYSTEM_HEADER_DIR=$build_system_header_dir
+ case "$host","$target" in
+ # Darwin crosses can use the host system's libraries and headers,
+ # because of the fat library support. Of course, it must be the
+@@ -9879,11 +9893,11 @@ fi
+ # then define inhibit_libc in LIBGCC2_CFLAGS.
+ # This prevents libgcc2 from containing any code which requires libc
+ # support.
+-inhibit_libc=
++inhibit_libc=false
+ if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
+ test x$with_newlib = xyes ; } &&
+ { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
+- inhibit_libc=-Dinhibit_libc
++ inhibit_libc=true
+ fi
+
+
diff --git a/packages/gcc/gcc-4.3.1.inc b/packages/gcc/gcc-4.3.1.inc
index 3784727d9b..b14dd4acf5 100644
--- a/packages/gcc/gcc-4.3.1.inc
+++ b/packages/gcc/gcc-4.3.1.inc
@@ -45,7 +45,6 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://904-flatten-switch-stmt-00.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 \
@@ -59,6 +58,8 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
# file://intermask-bigendian.patch;patch=1 \
file://gcc-arm-frename-registers.patch;patch=1 \
file://gcc-release-branch/PR-36500-fix-neon.patch;patch=1 \
+ file://gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch;patch=1 \
+ file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch;patch=1 \
"
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
diff --git a/packages/gcc/gcc-4.3.1/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/packages/gcc/gcc-4.3.1/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
new file mode 100644
index 0000000000..f33e6c1ea6
--- /dev/null
+++ b/packages/gcc/gcc-4.3.1/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
@@ -0,0 +1,31 @@
+---
+ configure | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: gcc-4.3.1/configure.ac
+===================================================================
+--- gcc-4.3.1.orig/configure.ac 2008-07-21 12:29:18.000000000 -0700
++++ gcc-4.3.1/configure.ac 2008-07-21 12:29:35.000000000 -0700
+@@ -2352,7 +2352,7 @@ fi
+ # for target_alias and gcc doesn't manage it consistently.
+ target_configargs="--cache-file=./config.cache ${target_configargs}"
+
+-FLAGS_FOR_TARGET=
++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
+ case " $target_configdirs " in
+ *" newlib "*)
+ case " $target_configargs " in
+Index: gcc-4.3.1/configure
+===================================================================
+--- gcc-4.3.1.orig/configure 2008-07-21 12:29:48.000000000 -0700
++++ gcc-4.3.1/configure 2008-07-21 12:29:59.000000000 -0700
+@@ -5841,7 +5841,7 @@ fi
+ # for target_alias and gcc doesn't manage it consistently.
+ target_configargs="--cache-file=./config.cache ${target_configargs}"
+
+-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.3.1/gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch b/packages/gcc/gcc-4.3.1/gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch
new file mode 100644
index 0000000000..2a9605c3d6
--- /dev/null
+++ b/packages/gcc/gcc-4.3.1/gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch
@@ -0,0 +1,5466 @@
+Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it.
+
+This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET.
+
+Other changes I had to do include:
+
+- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though.
+
+- passing the right CFLAGS to configure scripts as exported environment variables
+
+I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do.
+
+Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3?
+
+Paolo
+
+2008-02-19 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/32009
+ PR bootstrap/32161
+
+ * configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Compute here.
+ * configure: Regenerate.
+
+ * Makefile.def: Define stage_libcflags for all bootstrap stages.
+ * Makefile.tpl (BOOT_LIBCFLAGS, STAGE2_LIBCFLAGS, STAGE3_LIBCFLAGS,
+ STAGE4_LIBCFLAGS): New.
+ (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Subst from autoconf, without
+ $(SYSROOT_CFLAGS_FOR_TARGET) and $(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
+ (BASE_TARGET_EXPORTS): Append them here to C{,XX}FLAGS.
+ (EXTRA_TARGET_FLAGS): Append them here to {LIB,}C{,XX}FLAGS.
+ (configure-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags
+ for target modules. Don't export LIBCFLAGS.
+ (all-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags; pass
+ $(BASE_FLAGS_TO_PASS) where [+args+] was passed, and [+args+] after
+ the overridden CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
+ (invocations of `all'): Replace $(TARGET_FLAGS_TO_PASS) with
+ $(EXTRA_TARGET_FLAGS), $(FLAGS_TO_PASS) with $(EXTRA_HOST_FLAGS).
+ * Makefile.in: Regenerate.
+
+config:
+2008-02-19 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/32009
+ * mh-ppc-darwin (BOOT_CFLAGS): Reenable.
+
+gcc:
+2008-02-19 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/32009
+ * doc/install.texi: Correct references to CFLAGS, replacing them
+ with BOOT_CFLAGS. Document flags used during bootstrap for
+ target libraries.
+
+
+---
+ Makefile.def | 24
+ Makefile.in | 1802 +++++++++++++++++++++++++++++++--------------------
+ Makefile.tpl | 57 -
+ config/mh-ppc-darwin | 3
+ configure | 36 -
+ configure.ac | 32
+ gcc/doc/install.texi | 56 -
+ 7 files changed, 1261 insertions(+), 749 deletions(-)
+
+Index: gcc-4.3.1/configure.ac
+===================================================================
+--- gcc-4.3.1.orig/configure.ac 2008-02-01 19:29:30.000000000 -0800
++++ gcc-4.3.1/configure.ac 2008-07-21 10:56:15.000000000 -0700
+@@ -1667,6 +1667,38 @@ AC_ARG_WITH([debug-prefix-map],
+ [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
+ AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
+
++# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
++# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
++# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
++# We want to ensure that TARGET libraries (which we know are built with
++# gcc) are built with "-O2 -g", so include those options when setting
++# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
++if test "x$CFLAGS_FOR_TARGET" = x; then
++ CFLAGS_FOR_TARGET=$CFLAGS
++ case " $CFLAGS " in
++ *" -O2 "*) ;;
++ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
++ esac
++ case " $CFLAGS " in
++ *" -g "* | *" -g3 "*) ;;
++ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
++ esac
++fi
++AC_SUBST(CFLAGS_FOR_TARGET)
++
++if test "x$CXXFLAGS_FOR_TARGET" = x; then
++ CXXFLAGS_FOR_TARGET=$CXXFLAGS
++ case " $CXXFLAGS " in
++ *" -O2 "*) ;;
++ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
++ esac
++ case " $CXXFLAGS " in
++ *" -g "* | *" -g3 "*) ;;
++ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
++ esac
++fi
++AC_SUBST(CXXFLAGS_FOR_TARGET)
++
+ # Handle --with-headers=XXX. If the value is not "yes", the contents of
+ # the named directory are copied to $(tooldir)/sys-include.
+ if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
+Index: gcc-4.3.1/Makefile.def
+===================================================================
+--- gcc-4.3.1.orig/Makefile.def 2007-10-23 08:53:18.000000000 -0700
++++ gcc-4.3.1/Makefile.def 2008-07-21 10:56:15.000000000 -0700
+@@ -511,43 +511,51 @@ bootstrap_stage = {
+ // compiler probably has never heard of them.
+ stage_configure_flags='--disable-intermodule $(STAGE1_CHECKING) \
+ --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"' ;
+- stage_cflags='$(STAGE1_CFLAGS)' ; };
++ stage_cflags='$(STAGE1_CFLAGS)' ;
++ stage_libcflags='$(STAGE1_LIBCFLAGS)' ; };
+ bootstrap_stage = {
+ id=2 ; prev=1 ;
+ bootstrap_target=bootstrap2 ;
+ stage_configure_flags="@stage2_werror_flag@" ;
+- stage_cflags="$(STAGE2_CFLAGS)" ; };
++ stage_cflags="$(STAGE2_CFLAGS)" ;
++ stage_libcflags="$(STAGE2_LIBCFLAGS)" ; };
+ bootstrap_stage = {
+ id=b2g0 ; prev=1 ;
+ bootstrap_target=bootstrap2-debug ;
+ stage_configure_flags="@stage2_werror_flag@" ;
+- stage_cflags="$(STAGE2_CFLAGS) -g0" ; };
++ stage_cflags="$(STAGE2_CFLAGS) -g0" ;
++ stage_libcflags="$(STAGE2_LIBCFLAGS) -g0" ; };
+ bootstrap_stage = {
+ id=3 ; prev=2 ; lean=1 ;
+ compare_target=compare ;
+ bootstrap_target=bootstrap ;
+ cleanstrap_target=cleanstrap ;
+ stage_configure_flags="@stage2_werror_flag@" ;
+- stage_cflags="$(STAGE3_CFLAGS)" ; };
++ stage_cflags="$(STAGE3_CFLAGS)" ;
++ stage_libcflags="$(STAGE3_LIBCFLAGS)" ; };
+ bootstrap_stage = {
+ id=b3g2 ; prev=b2g0 ; lean=1 ;
+ compare_target=compare-debug ;
+ bootstrap_target=bootstrap-debug ;
+ cleanstrap_target=cleanstrap-debug ;
+ stage_configure_flags="@stage2_werror_flag@" ;
+- stage_cflags="$(STAGE3_CFLAGS) -g2" ; };
++ stage_cflags="$(STAGE3_CFLAGS) -g2" ;
++ stage_libcflags="$(STAGE3_LIBCFLAGS) -g2" ; };
+ bootstrap_stage = {
+ id=4 ; prev=3 ; lean=2 ;
+ compare_target=compare3 ;
+ bootstrap_target=bootstrap4 ;
+ stage_configure_flags="@stage2_werror_flag@" ;
+- stage_cflags="$(STAGE4_CFLAGS)" ; };
++ stage_cflags="$(STAGE4_CFLAGS)" ;
++ stage_libcflags="$(STAGE4_CFLAGS)" ; };
+ bootstrap_stage = {
+ id=profile ; prev=1 ;
+ stage_configure_flags="@stage2_werror_flag@" ;
+- stage_cflags='$(STAGE2_CFLAGS) -fprofile-generate' ; };
++ stage_cflags='$(STAGE2_CFLAGS) -fprofile-generate' ;
++ stage_libcflags='$(STAGE2_LIBCFLAGS) -fprofile-generate' ; };
+ bootstrap_stage = {
+ id=feedback ; prev=profile ;
+ bootstrap_target=profiledbootstrap ;
+ stage_configure_flags="@stage2_werror_flag@" ;
+- stage_cflags='$(STAGE3_CFLAGS) -fprofile-use' ; };
++ stage_cflags='$(STAGE3_CFLAGS) -fprofile-use' ;
++ stage_libcflags='$(STAGE3_LIBCFLAGS) -fprofile-use' ; };
+Index: gcc-4.3.1/Makefile.tpl
+===================================================================
+--- gcc-4.3.1.orig/Makefile.tpl 2008-07-21 10:56:14.000000000 -0700
++++ gcc-4.3.1/Makefile.tpl 2008-07-21 10:56:15.000000000 -0700
+@@ -207,10 +207,10 @@ BASE_TARGET_EXPORTS = \
+ AR="$(AR_FOR_TARGET)"; export AR; \
+ AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+ CC="$(CC_FOR_TARGET)"; export CC; \
+- CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+- CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
++ CXXFLAGS="$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+ GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \
+ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+@@ -330,14 +330,19 @@ PICFLAG =
+ # MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
+ # overrideable (for a bootstrap build stage1 also builds gcc.info).
+
+-STAGE1_CFLAGS=@stage1_cflags@
+ STAGE1_CHECKING=@stage1_checking@
+ STAGE1_LANGUAGES=@stage1_languages@
+
++STAGE1_CFLAGS=@stage1_cflags@
+ STAGE2_CFLAGS=$(BOOT_CFLAGS)
+ STAGE3_CFLAGS=$(BOOT_CFLAGS)
+ STAGE4_CFLAGS=$(BOOT_CFLAGS)
+
++STAGE1_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE2_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE3_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE4_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++
+ do-compare = @do_compare@
+ do-compare3 = $(do-compare)
+ do-compare-debug = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
+@@ -376,18 +381,11 @@ COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_
+ COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@
+ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@
+
+-# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
+-# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
+-# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
+-# We want to ensure that TARGET libraries (which we know are built with
+-# gcc) are built with "-O2 -g", so prepend those options when setting
+-# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
+-CFLAGS_FOR_TARGET = -O2 -g $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+- $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@
++CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@
+ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
+ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
+-CXXFLAGS_FOR_TARGET = -O2 -g $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+- $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++
+ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
+ LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
+ LDFLAGS_FOR_TARGET = @LDFLAGS@
+@@ -491,19 +489,20 @@ POSTSTAGE1_FLAGS_TO_PASS = \
+ # Flags to pass down to makes which are built with the target environment.
+ # The double $ decreases the length of the command line; those variables
+ # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
+-# COMPILER_ prefixed variables are not passed down so we expand them here.
++# *_CFLAGS_FOR_TARGET variables are not passed down and most often empty,
++# so we expand them here.
+ EXTRA_TARGET_FLAGS = \
+ 'AR=$$(AR_FOR_TARGET)' \
+ 'AS=$(COMPILER_AS_FOR_TARGET)' \
+ 'CC=$$(CC_FOR_TARGET)' \
+- 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
++ 'CFLAGS=$$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 'CXX=$$(CXX_FOR_TARGET)' \
+- 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
++ 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
+ 'LD=$(COMPILER_LD_FOR_TARGET)' \
+ 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \
+- 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
+- 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
++ 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
++ 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 'NM=$(COMPILER_NM_FOR_TARGET)' \
+ 'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \
+ 'RANLIB=$$(RANLIB_FOR_TARGET)' \
+@@ -851,9 +850,11 @@ configure-stage[+id+]-[+prefix+][+module
+ fi; \
+ [+ ENDIF check_multilibs +]test ! -f [+subdir+]/[+module+]/Makefile || exit 0; \
+ [+exports+][+ IF prev +] \
+- [+poststage1_exports+][+ ENDIF prev +] \
++ [+poststage1_exports+][+ ENDIF prev +] [+ IF prefix +] \
++ CFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; [+ ELSE +] \
+ CFLAGS="[+stage_cflags+]"; export CFLAGS; \
+- LIBCFLAGS="[+stage_cflags+]"; export LIBCFLAGS; \
++ CXXFLAGS="[+stage_cflags+]"; export CXXFLAGS; [+ ENDIF +] \
+ echo Configuring stage [+id+] in [+subdir+]/[+module+] ; \
+ $(SHELL) $(srcdir)/mkinstalldirs [+subdir+]/[+module+] ; \
+ cd [+subdir+]/[+module+] || exit 1; \
+@@ -890,7 +891,8 @@ all-[+prefix+][+module+]: configure-[+pr
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ [+exports+] \
+ (cd [+subdir+]/[+module+] && \
+- $(MAKE) [+args+] [+extra_make_flags+] $(TARGET-[+prefix+][+module+]))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) [+args+] [+extra_make_flags+] \
++ $(TARGET-[+prefix+][+module+]))
+ @endif [+prefix+][+module+]
+
+ [+ IF bootstrap +]
+@@ -910,8 +912,11 @@ all-stage[+id+]-[+prefix+][+module+]: co
+ [+exports+][+ IF prev +] \
+ [+poststage1_exports+][+ ENDIF prev +] \
+ cd [+subdir+]/[+module+] && \
+- $(MAKE) [+args+] \
+- CFLAGS="[+stage_cflags+]" LIBCFLAGS="[+stage_cflags+]" [+
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="[+stage_cflags+]" CXXFLAGS="[+stage_cflags+]" \
++ LIBCFLAGS="[+stage_libcflags+]" \
++ CFLAGS_FOR_TARGET="[+stage_libcflags+]" \
++ CXXFLAGS_FOR_TARGET="[+stage_libcflags+]" [+args+] [+
+ IF prev +][+poststage1_args+][+ ENDIF prev
+ +] [+extra_make_flags+] \
+ $(TARGET-stage[+id+]-[+prefix+][+module+])
+@@ -961,7 +966,7 @@ clean-stage[+id+]-[+prefix+][+module+]:
+ [+ all prefix="" subdir="$(HOST_SUBDIR)"
+ exports="$(HOST_EXPORTS)"
+ poststage1_exports="$(POSTSTAGE1_HOST_EXPORTS)"
+- args="$(FLAGS_TO_PASS)"
++ args="$(EXTRA_HOST_FLAGS)"
+ poststage1_args="$(POSTSTAGE1_FLAGS_TO_PASS)" +]
+
+ .PHONY: check-[+module+] maybe-check-[+module+]
+@@ -1059,7 +1064,7 @@ maybe-[+make_target+]-[+module+]: [+make
+
+ [+ all prefix="target-" subdir="$(TARGET_SUBDIR)"
+ exports="$(RAW_CXX_TARGET_EXPORTS)"
+- args="$(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +]
++ args="$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +]
+ [+ ELSE +]
+ [+ configure prefix="target-" subdir="$(TARGET_SUBDIR)"
+ check_multilibs=true
+@@ -1070,7 +1075,7 @@ maybe-[+make_target+]-[+module+]: [+make
+
+ [+ all prefix="target-" subdir="$(TARGET_SUBDIR)"
+ exports="$(NORMAL_TARGET_EXPORTS)"
+- args="$(TARGET_FLAGS_TO_PASS)" +]
++ args="$(EXTRA_TARGET_FLAGS)" +]
+ [+ ENDIF +]
+
+ .PHONY: check-target-[+module+] maybe-check-target-[+module+]
+Index: gcc-4.3.1/config/mh-ppc-darwin
+===================================================================
+--- gcc-4.3.1.orig/config/mh-ppc-darwin 2007-05-23 07:26:31.000000000 -0700
++++ gcc-4.3.1/config/mh-ppc-darwin 2008-07-21 10:56:15.000000000 -0700
+@@ -2,5 +2,4 @@
+ # position-independent-code -- the usual default on Darwin. This fix speeds
+ # compiles by 3-5%.
+
+-# Broken because of PR32009.
+-# BOOT_CFLAGS=-g -O2 -mdynamic-no-pic
++BOOT_CFLAGS=-g -O2 -mdynamic-no-pic
+Index: gcc-4.3.1/gcc/doc/install.texi
+===================================================================
+--- gcc-4.3.1.orig/gcc/doc/install.texi 2008-05-22 23:58:10.000000000 -0700
++++ gcc-4.3.1/gcc/doc/install.texi 2008-07-21 10:56:15.000000000 -0700
+@@ -1772,33 +1772,35 @@ same described above, but object files f
+ stage2 of the 3-stage bootstrap of the compiler are deleted as
+ soon as they are no longer needed.
+
+-If you want to save additional space during the bootstrap and in
+-the final installation as well, you can build the compiler binaries
+-without debugging information as in the following example. This will save
+-roughly 40% of disk space both for the bootstrap and the final installation.
+-(Libraries will still contain debugging information.)
+-
+-@smallexample
+- make CFLAGS='-O' LIBCFLAGS='-g -O2' \
+- LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
+-@end smallexample
+-
+-If you wish to use non-default GCC flags when compiling the stage2 and
+-stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing
+-@samp{make}. Non-default optimization flags are less well
+-tested here than the default of @samp{-g -O2}, but should still work.
+-In a few cases, you may find that you need to specify special flags such
+-as @option{-msoft-float} here to complete the bootstrap; or, if the
+-native compiler miscompiles the stage1 compiler, you may need to work
+-around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the
+-stage1 compiler that were miscompiled, or by using @samp{make
++If you wish to use non-default GCC flags when compiling the stage2
++and stage3 compilers, set @code{BOOT_CFLAGS} on the command line when
++doing @samp{make}. For example, if you want to save additional space
++during the bootstrap and in the final installation as well, you can
++build the compiler binaries without debugging information as in the
++following example. This will save roughly 40% of disk space both for
++the bootstrap and the final installation. (Libraries will still contain
++debugging information.)
++
++@smallexample
++ make BOOT_CFLAGS='-O' bootstrap
++@end smallexample
++
++You can place non-default optimization flags into @code{BOOT_CFLAGS}; they
++are less well tested here than the default of @samp{-g -O2}, but should
++still work. In a few cases, you may find that you need to specify special
++flags such as @option{-msoft-float} here to complete the bootstrap; or,
++if the native compiler miscompiles the stage1 compiler, you may need
++to work around this, by choosing @code{BOOT_CFLAGS} to avoid the parts
++of the stage1 compiler that were miscompiled, or by using @samp{make
+ bootstrap4} to increase the number of stages of bootstrap.
+
+-Note that using non-standard @code{CFLAGS} can cause bootstrap to fail
+-if these trigger a warning with the new compiler. For example using
+-@samp{-O2 -g -mcpu=i686} on @code{i686-pc-linux-gnu} will cause bootstrap
+-failure as @option{-mcpu=} is deprecated in 3.4.0 and above.
+-
++@code{BOOT_CFLAGS} does not apply to bootstrapped target libraries.
++Since these are always compiled with the compiler currently being
++bootstrapped, you can use @code{CFLAGS_FOR_TARGET} to modify their
++compilation flags, as for non-bootstrapped target libraries.
++Again, if the native compiler miscompiles the stage1 compiler, you may
++need to work around this by avoiding non-working parts of the stage1
++compiler. Use @code{STAGE1_LIBCFLAGS} to this end.
+
+ If you used the flag @option{--enable-languages=@dots{}} to restrict
+ the compilers to be built, only those you've actually enabled will be
+@@ -2689,8 +2691,8 @@ cross-compilers on the Alpha for 32-bit
+ a few cases and may not work properly.
+
+ @samp{make compare} may fail on old versions of DEC Unix unless you add
+-@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the
+-assembler input file is stored in the object file, and that makes
++@option{-save-temps} to @code{BOOT_CFLAGS}. On these systems, the name
++of the assembler input file is stored in the object file, and that makes
+ comparison fail if it differs between the @code{stage1} and
+ @code{stage2} compilations. The option @option{-save-temps} forces a
+ fixed name to be used for the assembler input file, instead of a
+Index: gcc-4.3.1/Makefile.in
+===================================================================
+--- gcc-4.3.1.orig/Makefile.in 2008-07-21 10:56:14.000000000 -0700
++++ gcc-4.3.1/Makefile.in 2008-07-21 10:56:15.000000000 -0700
+@@ -204,11 +204,10 @@ BASE_TARGET_EXPORTS = \
+ AR="$(AR_FOR_TARGET)"; export AR; \
+ 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 CPP; \
++ CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+- CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
++ CXXFLAGS="$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+ GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \
+ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+@@ -328,14 +327,19 @@ PICFLAG =
+ # MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
+ # overrideable (for a bootstrap build stage1 also builds gcc.info).
+
+-STAGE1_CFLAGS=@stage1_cflags@
+ STAGE1_CHECKING=@stage1_checking@
+ STAGE1_LANGUAGES=@stage1_languages@
+
++STAGE1_CFLAGS=@stage1_cflags@
+ STAGE2_CFLAGS=$(BOOT_CFLAGS)
+ STAGE3_CFLAGS=$(BOOT_CFLAGS)
+ STAGE4_CFLAGS=$(BOOT_CFLAGS)
+
++STAGE1_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE2_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE3_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE4_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++
+ do-compare = @do_compare@
+ do-compare3 = $(do-compare)
+ do-compare-debug = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
+@@ -374,18 +378,11 @@ COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_
+ COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@
+ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@
+
+-# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
+-# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
+-# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
+-# We want to ensure that TARGET libraries (which we know are built with
+-# gcc) are built with "-O2 -g", so prepend those options when setting
+-# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
+-CFLAGS_FOR_TARGET = -O2 -g $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+- $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@
++CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@
+ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
+ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
+-CXXFLAGS_FOR_TARGET = -O2 -g $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+- $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++
+ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
+ LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
+ LDFLAGS_FOR_TARGET = @LDFLAGS@
+@@ -592,19 +589,20 @@ POSTSTAGE1_FLAGS_TO_PASS = \
+ # Flags to pass down to makes which are built with the target environment.
+ # The double $ decreases the length of the command line; those variables
+ # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
+-# COMPILER_ prefixed variables are not passed down so we expand them here.
++# *_CFLAGS_FOR_TARGET variables are not passed down and most often empty,
++# so we expand them here.
+ EXTRA_TARGET_FLAGS = \
+ 'AR=$$(AR_FOR_TARGET)' \
+ 'AS=$(COMPILER_AS_FOR_TARGET)' \
+ 'CC=$$(CC_FOR_TARGET)' \
+- 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
++ 'CFLAGS=$$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 'CXX=$$(CXX_FOR_TARGET)' \
+- 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
++ 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
+ 'LD=$(COMPILER_LD_FOR_TARGET)' \
+ 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \
+- 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
+- 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
++ 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
++ 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 'NM=$(COMPILER_NM_FOR_TARGET)' \
+ 'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \
+ 'RANLIB=$$(RANLIB_FOR_TARGET)' \
+@@ -2738,7 +2736,8 @@ all-build-libiberty: configure-build-lib
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(BUILD_EXPORTS) \
+ (cd $(BUILD_SUBDIR)/libiberty && \
+- $(MAKE) $(TARGET-build-libiberty))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ $(TARGET-build-libiberty))
+ @endif build-libiberty
+
+
+@@ -2793,7 +2792,8 @@ all-build-bison: configure-build-bison
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(BUILD_EXPORTS) \
+ (cd $(BUILD_SUBDIR)/bison && \
+- $(MAKE) $(TARGET-build-bison))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ $(TARGET-build-bison))
+ @endif build-bison
+
+
+@@ -2848,7 +2848,8 @@ all-build-byacc: configure-build-byacc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(BUILD_EXPORTS) \
+ (cd $(BUILD_SUBDIR)/byacc && \
+- $(MAKE) $(TARGET-build-byacc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ $(TARGET-build-byacc))
+ @endif build-byacc
+
+
+@@ -2903,7 +2904,8 @@ all-build-flex: configure-build-flex
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(BUILD_EXPORTS) \
+ (cd $(BUILD_SUBDIR)/flex && \
+- $(MAKE) $(TARGET-build-flex))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ $(TARGET-build-flex))
+ @endif build-flex
+
+
+@@ -2958,7 +2960,8 @@ all-build-m4: configure-build-m4
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(BUILD_EXPORTS) \
+ (cd $(BUILD_SUBDIR)/m4 && \
+- $(MAKE) $(TARGET-build-m4))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ $(TARGET-build-m4))
+ @endif build-m4
+
+
+@@ -3013,7 +3016,8 @@ all-build-texinfo: configure-build-texin
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(BUILD_EXPORTS) \
+ (cd $(BUILD_SUBDIR)/texinfo && \
+- $(MAKE) $(TARGET-build-texinfo))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ $(TARGET-build-texinfo))
+ @endif build-texinfo
+
+
+@@ -3068,7 +3072,8 @@ all-build-fixincludes: configure-build-f
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(BUILD_EXPORTS) \
+ (cd $(BUILD_SUBDIR)/fixincludes && \
+- $(MAKE) $(TARGET-build-fixincludes))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ $(TARGET-build-fixincludes))
+ @endif build-fixincludes
+
+
+@@ -3127,7 +3132,8 @@ all-ash: configure-ash
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/ash && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-ash))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-ash))
+ @endif ash
+
+
+@@ -3551,7 +3557,8 @@ all-autoconf: configure-autoconf
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/autoconf && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-autoconf))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-autoconf))
+ @endif autoconf
+
+
+@@ -3975,7 +3982,8 @@ all-automake: configure-automake
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/automake && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-automake))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-automake))
+ @endif automake
+
+
+@@ -4399,7 +4407,8 @@ all-bash: configure-bash
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/bash && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-bash))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-bash))
+ @endif bash
+
+
+@@ -4816,9 +4825,9 @@ configure-stage1-bfd:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4847,9 +4856,9 @@ configure-stage2-bfd:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4878,9 +4887,9 @@ configure-stageb2g0-bfd:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4909,9 +4918,9 @@ configure-stage3-bfd:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4940,9 +4949,9 @@ configure-stageb3g2-bfd:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4971,9 +4980,9 @@ configure-stage4-bfd:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -5002,9 +5011,9 @@ configure-stageprofile-bfd:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -5033,9 +5042,9 @@ configure-stagefeedback-bfd:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/bfd ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -5070,7 +5079,8 @@ all-bfd: configure-bfd
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-bfd))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-bfd))
+ @endif bfd
+
+
+@@ -5089,8 +5099,11 @@ all-stage1-bfd: configure-stage1-bfd
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-bfd)
+
+ maybe-clean-stage1-bfd: clean-stage1-bfd
+@@ -5103,7 +5116,7 @@ clean-stage1-bfd:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif bfd-bootstrap
+
+@@ -5123,8 +5136,11 @@ all-stage2-bfd: configure-stage2-bfd
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-bfd)
+
+ maybe-clean-stage2-bfd: clean-stage2-bfd
+@@ -5137,7 +5153,7 @@ clean-stage2-bfd:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif bfd-bootstrap
+@@ -5158,8 +5174,11 @@ all-stageb2g0-bfd: configure-stageb2g0-b
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-bfd)
+
+ maybe-clean-stageb2g0-bfd: clean-stageb2g0-bfd
+@@ -5172,7 +5191,7 @@ clean-stageb2g0-bfd:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif bfd-bootstrap
+@@ -5193,8 +5212,11 @@ all-stage3-bfd: configure-stage3-bfd
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-bfd)
+
+ maybe-clean-stage3-bfd: clean-stage3-bfd
+@@ -5207,7 +5229,7 @@ clean-stage3-bfd:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif bfd-bootstrap
+@@ -5228,8 +5250,11 @@ all-stageb3g2-bfd: configure-stageb3g2-b
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-bfd)
+
+ maybe-clean-stageb3g2-bfd: clean-stageb3g2-bfd
+@@ -5242,7 +5267,7 @@ clean-stageb3g2-bfd:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif bfd-bootstrap
+@@ -5263,8 +5288,11 @@ all-stage4-bfd: configure-stage4-bfd
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-bfd)
+
+ maybe-clean-stage4-bfd: clean-stage4-bfd
+@@ -5277,7 +5305,7 @@ clean-stage4-bfd:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif bfd-bootstrap
+@@ -5298,8 +5326,11 @@ all-stageprofile-bfd: configure-stagepro
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-bfd)
+
+ maybe-clean-stageprofile-bfd: clean-stageprofile-bfd
+@@ -5312,7 +5343,7 @@ clean-stageprofile-bfd:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif bfd-bootstrap
+@@ -5333,8 +5364,11 @@ all-stagefeedback-bfd: configure-stagefe
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-bfd)
+
+ maybe-clean-stagefeedback-bfd: clean-stagefeedback-bfd
+@@ -5347,7 +5381,7 @@ clean-stagefeedback-bfd:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/bfd && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif bfd-bootstrap
+@@ -5754,9 +5788,9 @@ configure-stage1-opcodes:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5785,9 +5819,9 @@ configure-stage2-opcodes:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5816,9 +5850,9 @@ configure-stageb2g0-opcodes:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5847,9 +5881,9 @@ configure-stage3-opcodes:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5878,9 +5912,9 @@ configure-stageb3g2-opcodes:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5909,9 +5943,9 @@ configure-stage4-opcodes:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5940,9 +5974,9 @@ configure-stageprofile-opcodes:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5971,9 +6005,9 @@ configure-stagefeedback-opcodes:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/opcodes ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -6008,7 +6042,8 @@ all-opcodes: configure-opcodes
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-opcodes))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-opcodes))
+ @endif opcodes
+
+
+@@ -6027,8 +6062,11 @@ all-stage1-opcodes: configure-stage1-opc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-opcodes)
+
+ maybe-clean-stage1-opcodes: clean-stage1-opcodes
+@@ -6041,7 +6079,7 @@ clean-stage1-opcodes:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif opcodes-bootstrap
+
+@@ -6061,8 +6099,11 @@ all-stage2-opcodes: configure-stage2-opc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-opcodes)
+
+ maybe-clean-stage2-opcodes: clean-stage2-opcodes
+@@ -6075,7 +6116,7 @@ clean-stage2-opcodes:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif opcodes-bootstrap
+@@ -6096,8 +6137,11 @@ all-stageb2g0-opcodes: configure-stageb2
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-opcodes)
+
+ maybe-clean-stageb2g0-opcodes: clean-stageb2g0-opcodes
+@@ -6110,7 +6154,7 @@ clean-stageb2g0-opcodes:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif opcodes-bootstrap
+@@ -6131,8 +6175,11 @@ all-stage3-opcodes: configure-stage3-opc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-opcodes)
+
+ maybe-clean-stage3-opcodes: clean-stage3-opcodes
+@@ -6145,7 +6192,7 @@ clean-stage3-opcodes:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif opcodes-bootstrap
+@@ -6166,8 +6213,11 @@ all-stageb3g2-opcodes: configure-stageb3
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-opcodes)
+
+ maybe-clean-stageb3g2-opcodes: clean-stageb3g2-opcodes
+@@ -6180,7 +6230,7 @@ clean-stageb3g2-opcodes:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif opcodes-bootstrap
+@@ -6201,8 +6251,11 @@ all-stage4-opcodes: configure-stage4-opc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-opcodes)
+
+ maybe-clean-stage4-opcodes: clean-stage4-opcodes
+@@ -6215,7 +6268,7 @@ clean-stage4-opcodes:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif opcodes-bootstrap
+@@ -6236,8 +6289,11 @@ all-stageprofile-opcodes: configure-stag
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-opcodes)
+
+ maybe-clean-stageprofile-opcodes: clean-stageprofile-opcodes
+@@ -6250,7 +6306,7 @@ clean-stageprofile-opcodes:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif opcodes-bootstrap
+@@ -6271,8 +6327,11 @@ all-stagefeedback-opcodes: configure-sta
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-opcodes)
+
+ maybe-clean-stagefeedback-opcodes: clean-stagefeedback-opcodes
+@@ -6285,7 +6344,7 @@ clean-stagefeedback-opcodes:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/opcodes && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif opcodes-bootstrap
+@@ -6692,9 +6751,9 @@ configure-stage1-binutils:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6723,9 +6782,9 @@ configure-stage2-binutils:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6754,9 +6813,9 @@ configure-stageb2g0-binutils:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6785,9 +6844,9 @@ configure-stage3-binutils:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6816,9 +6875,9 @@ configure-stageb3g2-binutils:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6847,9 +6906,9 @@ configure-stage4-binutils:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6878,9 +6937,9 @@ configure-stageprofile-binutils:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6909,9 +6968,9 @@ configure-stagefeedback-binutils:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/binutils ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6946,7 +7005,8 @@ all-binutils: configure-binutils
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-binutils))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-binutils))
+ @endif binutils
+
+
+@@ -6965,8 +7025,11 @@ all-stage1-binutils: configure-stage1-bi
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-binutils)
+
+ maybe-clean-stage1-binutils: clean-stage1-binutils
+@@ -6979,7 +7042,7 @@ clean-stage1-binutils:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif binutils-bootstrap
+
+@@ -6999,8 +7062,11 @@ all-stage2-binutils: configure-stage2-bi
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-binutils)
+
+ maybe-clean-stage2-binutils: clean-stage2-binutils
+@@ -7013,7 +7079,7 @@ clean-stage2-binutils:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif binutils-bootstrap
+@@ -7034,8 +7100,11 @@ all-stageb2g0-binutils: configure-stageb
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-binutils)
+
+ maybe-clean-stageb2g0-binutils: clean-stageb2g0-binutils
+@@ -7048,7 +7117,7 @@ clean-stageb2g0-binutils:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif binutils-bootstrap
+@@ -7069,8 +7138,11 @@ all-stage3-binutils: configure-stage3-bi
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-binutils)
+
+ maybe-clean-stage3-binutils: clean-stage3-binutils
+@@ -7083,7 +7155,7 @@ clean-stage3-binutils:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif binutils-bootstrap
+@@ -7104,8 +7176,11 @@ all-stageb3g2-binutils: configure-stageb
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-binutils)
+
+ maybe-clean-stageb3g2-binutils: clean-stageb3g2-binutils
+@@ -7118,7 +7193,7 @@ clean-stageb3g2-binutils:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif binutils-bootstrap
+@@ -7139,8 +7214,11 @@ all-stage4-binutils: configure-stage4-bi
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-binutils)
+
+ maybe-clean-stage4-binutils: clean-stage4-binutils
+@@ -7153,7 +7231,7 @@ clean-stage4-binutils:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif binutils-bootstrap
+@@ -7174,8 +7252,11 @@ all-stageprofile-binutils: configure-sta
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-binutils)
+
+ maybe-clean-stageprofile-binutils: clean-stageprofile-binutils
+@@ -7188,7 +7269,7 @@ clean-stageprofile-binutils:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif binutils-bootstrap
+@@ -7209,8 +7290,11 @@ all-stagefeedback-binutils: configure-st
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-binutils)
+
+ maybe-clean-stagefeedback-binutils: clean-stagefeedback-binutils
+@@ -7223,7 +7307,7 @@ clean-stagefeedback-binutils:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/binutils && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif binutils-bootstrap
+@@ -7637,7 +7721,8 @@ all-bison: configure-bison
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/bison && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-bison))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-bison))
+ @endif bison
+
+
+@@ -8064,7 +8149,8 @@ all-byacc: configure-byacc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/byacc && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-byacc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-byacc))
+ @endif byacc
+
+
+@@ -8491,7 +8577,8 @@ all-bzip2: configure-bzip2
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/bzip2 && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-bzip2))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-bzip2))
+ @endif bzip2
+
+
+@@ -8915,7 +9002,8 @@ all-dejagnu: configure-dejagnu
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/dejagnu && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-dejagnu))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-dejagnu))
+ @endif dejagnu
+
+
+@@ -9339,7 +9427,8 @@ all-diff: configure-diff
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/diff && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-diff))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-diff))
+ @endif diff
+
+
+@@ -9763,7 +9852,8 @@ all-dosutils: configure-dosutils
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/dosutils && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-dosutils))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-dosutils))
+ @endif dosutils
+
+
+@@ -10181,7 +10271,8 @@ all-etc: configure-etc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/etc && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-etc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-etc))
+ @endif etc
+
+
+@@ -10605,7 +10696,8 @@ all-fastjar: configure-fastjar
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/fastjar && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-fastjar))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-fastjar))
+ @endif fastjar
+
+
+@@ -11032,7 +11124,8 @@ all-fileutils: configure-fileutils
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/fileutils && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-fileutils))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-fileutils))
+ @endif fileutils
+
+
+@@ -11456,7 +11549,8 @@ all-findutils: configure-findutils
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/findutils && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-findutils))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-findutils))
+ @endif findutils
+
+
+@@ -11880,7 +11974,8 @@ all-find: configure-find
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/find && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-find))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-find))
+ @endif find
+
+
+@@ -12304,7 +12399,8 @@ all-fixincludes: configure-fixincludes
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/fixincludes && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-fixincludes))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-fixincludes))
+ @endif fixincludes
+
+
+@@ -12712,7 +12808,8 @@ all-flex: configure-flex
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/flex && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-flex))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-flex))
+ @endif flex
+
+
+@@ -13132,9 +13229,9 @@ configure-stage1-gas:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13163,9 +13260,9 @@ configure-stage2-gas:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13194,9 +13291,9 @@ configure-stageb2g0-gas:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13225,9 +13322,9 @@ configure-stage3-gas:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13256,9 +13353,9 @@ configure-stageb3g2-gas:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13287,9 +13384,9 @@ configure-stage4-gas:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13318,9 +13415,9 @@ configure-stageprofile-gas:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13349,9 +13446,9 @@ configure-stagefeedback-gas:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/gas ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13386,7 +13483,8 @@ all-gas: configure-gas
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gas))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gas))
+ @endif gas
+
+
+@@ -13405,8 +13503,11 @@ all-stage1-gas: configure-stage1-gas
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-gas)
+
+ maybe-clean-stage1-gas: clean-stage1-gas
+@@ -13419,7 +13520,7 @@ clean-stage1-gas:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif gas-bootstrap
+
+@@ -13439,8 +13540,11 @@ all-stage2-gas: configure-stage2-gas
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-gas)
+
+ maybe-clean-stage2-gas: clean-stage2-gas
+@@ -13453,7 +13557,7 @@ clean-stage2-gas:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gas-bootstrap
+@@ -13474,8 +13578,11 @@ all-stageb2g0-gas: configure-stageb2g0-g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-gas)
+
+ maybe-clean-stageb2g0-gas: clean-stageb2g0-gas
+@@ -13488,7 +13595,7 @@ clean-stageb2g0-gas:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gas-bootstrap
+@@ -13509,8 +13616,11 @@ all-stage3-gas: configure-stage3-gas
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-gas)
+
+ maybe-clean-stage3-gas: clean-stage3-gas
+@@ -13523,7 +13633,7 @@ clean-stage3-gas:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gas-bootstrap
+@@ -13544,8 +13654,11 @@ all-stageb3g2-gas: configure-stageb3g2-g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-gas)
+
+ maybe-clean-stageb3g2-gas: clean-stageb3g2-gas
+@@ -13558,7 +13671,7 @@ clean-stageb3g2-gas:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gas-bootstrap
+@@ -13579,8 +13692,11 @@ all-stage4-gas: configure-stage4-gas
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-gas)
+
+ maybe-clean-stage4-gas: clean-stage4-gas
+@@ -13593,7 +13709,7 @@ clean-stage4-gas:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gas-bootstrap
+@@ -13614,8 +13730,11 @@ all-stageprofile-gas: configure-stagepro
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-gas)
+
+ maybe-clean-stageprofile-gas: clean-stageprofile-gas
+@@ -13628,7 +13747,7 @@ clean-stageprofile-gas:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gas-bootstrap
+@@ -13649,8 +13768,11 @@ all-stagefeedback-gas: configure-stagefe
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-gas)
+
+ maybe-clean-stagefeedback-gas: clean-stagefeedback-gas
+@@ -13663,7 +13785,7 @@ clean-stagefeedback-gas:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gas && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gas-bootstrap
+@@ -14070,9 +14192,9 @@ configure-stage1-gcc:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14101,9 +14223,9 @@ configure-stage2-gcc:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14132,9 +14254,9 @@ configure-stageb2g0-gcc:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14163,9 +14285,9 @@ configure-stage3-gcc:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14194,9 +14316,9 @@ configure-stageb3g2-gcc:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14225,9 +14347,9 @@ configure-stage4-gcc:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14256,9 +14378,9 @@ configure-stageprofile-gcc:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14287,9 +14409,9 @@ configure-stagefeedback-gcc:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/gcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14324,7 +14446,8 @@ all-gcc: configure-gcc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) $(TARGET-gcc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS) \
++ $(TARGET-gcc))
+ @endif gcc
+
+
+@@ -14343,8 +14466,11 @@ all-stage1-gcc: configure-stage1-gcc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stage1-gcc)
+
+ maybe-clean-stage1-gcc: clean-stage1-gcc
+@@ -14357,7 +14483,7 @@ clean-stage1-gcc:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+
+@@ -14377,8 +14503,11 @@ all-stage2-gcc: configure-stage2-gcc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stage2-gcc)
+
+ maybe-clean-stage2-gcc: clean-stage2-gcc
+@@ -14391,7 +14520,7 @@ clean-stage2-gcc:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14412,8 +14541,11 @@ all-stageb2g0-gcc: configure-stageb2g0-g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stageb2g0-gcc)
+
+ maybe-clean-stageb2g0-gcc: clean-stageb2g0-gcc
+@@ -14426,7 +14558,7 @@ clean-stageb2g0-gcc:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14447,8 +14579,11 @@ all-stage3-gcc: configure-stage3-gcc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stage3-gcc)
+
+ maybe-clean-stage3-gcc: clean-stage3-gcc
+@@ -14461,7 +14596,7 @@ clean-stage3-gcc:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14482,8 +14617,11 @@ all-stageb3g2-gcc: configure-stageb3g2-g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stageb3g2-gcc)
+
+ maybe-clean-stageb3g2-gcc: clean-stageb3g2-gcc
+@@ -14496,7 +14634,7 @@ clean-stageb3g2-gcc:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14517,8 +14655,11 @@ all-stage4-gcc: configure-stage4-gcc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stage4-gcc)
+
+ maybe-clean-stage4-gcc: clean-stage4-gcc
+@@ -14531,7 +14672,7 @@ clean-stage4-gcc:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14552,8 +14693,11 @@ all-stageprofile-gcc: configure-stagepro
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stageprofile-gcc)
+
+ maybe-clean-stageprofile-gcc: clean-stageprofile-gcc
+@@ -14566,7 +14710,7 @@ clean-stageprofile-gcc:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14587,8 +14731,11 @@ all-stagefeedback-gcc: configure-stagefe
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ $(TARGET-stagefeedback-gcc)
+
+ maybe-clean-stagefeedback-gcc: clean-stagefeedback-gcc
+@@ -14601,7 +14748,7 @@ clean-stagefeedback-gcc:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gcc && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -15015,7 +15162,8 @@ all-gawk: configure-gawk
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gawk && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gawk))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gawk))
+ @endif gawk
+
+
+@@ -15439,7 +15587,8 @@ all-gettext: configure-gettext
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gettext && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gettext))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gettext))
+ @endif gettext
+
+
+@@ -15856,9 +16005,9 @@ configure-stage1-gmp:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15887,9 +16036,9 @@ configure-stage2-gmp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15918,9 +16067,9 @@ configure-stageb2g0-gmp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15949,9 +16098,9 @@ configure-stage3-gmp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15980,9 +16129,9 @@ configure-stageb3g2-gmp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16011,9 +16160,9 @@ configure-stage4-gmp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16042,9 +16191,9 @@ configure-stageprofile-gmp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16073,9 +16222,9 @@ configure-stagefeedback-gmp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/gmp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16110,7 +16259,8 @@ all-gmp: configure-gmp
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gmp))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gmp))
+ @endif gmp
+
+
+@@ -16129,8 +16279,11 @@ all-stage1-gmp: configure-stage1-gmp
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-gmp)
+
+ maybe-clean-stage1-gmp: clean-stage1-gmp
+@@ -16143,7 +16296,7 @@ clean-stage1-gmp:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif gmp-bootstrap
+
+@@ -16163,8 +16316,11 @@ all-stage2-gmp: configure-stage2-gmp
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-gmp)
+
+ maybe-clean-stage2-gmp: clean-stage2-gmp
+@@ -16177,7 +16333,7 @@ clean-stage2-gmp:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gmp-bootstrap
+@@ -16198,8 +16354,11 @@ all-stageb2g0-gmp: configure-stageb2g0-g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-gmp)
+
+ maybe-clean-stageb2g0-gmp: clean-stageb2g0-gmp
+@@ -16212,7 +16371,7 @@ clean-stageb2g0-gmp:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gmp-bootstrap
+@@ -16233,8 +16392,11 @@ all-stage3-gmp: configure-stage3-gmp
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-gmp)
+
+ maybe-clean-stage3-gmp: clean-stage3-gmp
+@@ -16247,7 +16409,7 @@ clean-stage3-gmp:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gmp-bootstrap
+@@ -16268,8 +16430,11 @@ all-stageb3g2-gmp: configure-stageb3g2-g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-gmp)
+
+ maybe-clean-stageb3g2-gmp: clean-stageb3g2-gmp
+@@ -16282,7 +16447,7 @@ clean-stageb3g2-gmp:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gmp-bootstrap
+@@ -16303,8 +16468,11 @@ all-stage4-gmp: configure-stage4-gmp
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-gmp)
+
+ maybe-clean-stage4-gmp: clean-stage4-gmp
+@@ -16317,7 +16485,7 @@ clean-stage4-gmp:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gmp-bootstrap
+@@ -16338,8 +16506,11 @@ all-stageprofile-gmp: configure-stagepro
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-gmp)
+
+ maybe-clean-stageprofile-gmp: clean-stageprofile-gmp
+@@ -16352,7 +16523,7 @@ clean-stageprofile-gmp:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gmp-bootstrap
+@@ -16373,8 +16544,11 @@ all-stagefeedback-gmp: configure-stagefe
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-gmp)
+
+ maybe-clean-stagefeedback-gmp: clean-stagefeedback-gmp
+@@ -16387,7 +16561,7 @@ clean-stagefeedback-gmp:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/gmp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif gmp-bootstrap
+@@ -16788,9 +16962,9 @@ configure-stage1-mpfr:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16819,9 +16993,9 @@ configure-stage2-mpfr:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16850,9 +17024,9 @@ configure-stageb2g0-mpfr:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16881,9 +17055,9 @@ configure-stage3-mpfr:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16912,9 +17086,9 @@ configure-stageb3g2-mpfr:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16943,9 +17117,9 @@ configure-stage4-mpfr:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16974,9 +17148,9 @@ configure-stageprofile-mpfr:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -17005,9 +17179,9 @@ configure-stagefeedback-mpfr:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/mpfr ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -17042,7 +17216,8 @@ all-mpfr: configure-mpfr
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-mpfr))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-mpfr))
+ @endif mpfr
+
+
+@@ -17061,8 +17236,11 @@ all-stage1-mpfr: configure-stage1-mpfr
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-mpfr)
+
+ maybe-clean-stage1-mpfr: clean-stage1-mpfr
+@@ -17075,7 +17253,7 @@ clean-stage1-mpfr:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif mpfr-bootstrap
+
+@@ -17095,8 +17273,11 @@ all-stage2-mpfr: configure-stage2-mpfr
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-mpfr)
+
+ maybe-clean-stage2-mpfr: clean-stage2-mpfr
+@@ -17109,7 +17290,7 @@ clean-stage2-mpfr:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif mpfr-bootstrap
+@@ -17130,8 +17311,11 @@ all-stageb2g0-mpfr: configure-stageb2g0-
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-mpfr)
+
+ maybe-clean-stageb2g0-mpfr: clean-stageb2g0-mpfr
+@@ -17144,7 +17328,7 @@ clean-stageb2g0-mpfr:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif mpfr-bootstrap
+@@ -17165,8 +17349,11 @@ all-stage3-mpfr: configure-stage3-mpfr
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-mpfr)
+
+ maybe-clean-stage3-mpfr: clean-stage3-mpfr
+@@ -17179,7 +17366,7 @@ clean-stage3-mpfr:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif mpfr-bootstrap
+@@ -17200,8 +17387,11 @@ all-stageb3g2-mpfr: configure-stageb3g2-
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-mpfr)
+
+ maybe-clean-stageb3g2-mpfr: clean-stageb3g2-mpfr
+@@ -17214,7 +17404,7 @@ clean-stageb3g2-mpfr:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif mpfr-bootstrap
+@@ -17235,8 +17425,11 @@ all-stage4-mpfr: configure-stage4-mpfr
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-mpfr)
+
+ maybe-clean-stage4-mpfr: clean-stage4-mpfr
+@@ -17249,7 +17442,7 @@ clean-stage4-mpfr:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif mpfr-bootstrap
+@@ -17270,8 +17463,11 @@ all-stageprofile-mpfr: configure-stagepr
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-mpfr)
+
+ maybe-clean-stageprofile-mpfr: clean-stageprofile-mpfr
+@@ -17284,7 +17480,7 @@ clean-stageprofile-mpfr:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif mpfr-bootstrap
+@@ -17305,8 +17501,11 @@ all-stagefeedback-mpfr: configure-stagef
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-mpfr)
+
+ maybe-clean-stagefeedback-mpfr: clean-stagefeedback-mpfr
+@@ -17319,7 +17518,7 @@ clean-stagefeedback-mpfr:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/mpfr && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif mpfr-bootstrap
+@@ -17727,7 +17926,8 @@ all-gnuserv: configure-gnuserv
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gnuserv && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gnuserv))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gnuserv))
+ @endif gnuserv
+
+
+@@ -18151,7 +18351,8 @@ all-gprof: configure-gprof
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gprof && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gprof))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gprof))
+ @endif gprof
+
+
+@@ -18575,7 +18776,8 @@ all-gzip: configure-gzip
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gzip && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gzip))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gzip))
+ @endif gzip
+
+
+@@ -18999,7 +19201,8 @@ all-hello: configure-hello
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/hello && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-hello))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-hello))
+ @endif hello
+
+
+@@ -19423,7 +19626,8 @@ all-indent: configure-indent
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/indent && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-indent))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-indent))
+ @endif indent
+
+
+@@ -19840,9 +20044,9 @@ configure-stage1-intl:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19871,9 +20075,9 @@ configure-stage2-intl:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19902,9 +20106,9 @@ configure-stageb2g0-intl:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19933,9 +20137,9 @@ configure-stage3-intl:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19964,9 +20168,9 @@ configure-stageb3g2-intl:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19995,9 +20199,9 @@ configure-stage4-intl:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -20026,9 +20230,9 @@ configure-stageprofile-intl:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -20057,9 +20261,9 @@ configure-stagefeedback-intl:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/intl ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -20094,7 +20298,8 @@ all-intl: configure-intl
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-intl))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-intl))
+ @endif intl
+
+
+@@ -20113,8 +20318,11 @@ all-stage1-intl: configure-stage1-intl
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-intl)
+
+ maybe-clean-stage1-intl: clean-stage1-intl
+@@ -20127,7 +20335,7 @@ clean-stage1-intl:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif intl-bootstrap
+
+@@ -20147,8 +20355,11 @@ all-stage2-intl: configure-stage2-intl
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-intl)
+
+ maybe-clean-stage2-intl: clean-stage2-intl
+@@ -20161,7 +20372,7 @@ clean-stage2-intl:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif intl-bootstrap
+@@ -20182,8 +20393,11 @@ all-stageb2g0-intl: configure-stageb2g0-
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-intl)
+
+ maybe-clean-stageb2g0-intl: clean-stageb2g0-intl
+@@ -20196,7 +20410,7 @@ clean-stageb2g0-intl:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif intl-bootstrap
+@@ -20217,8 +20431,11 @@ all-stage3-intl: configure-stage3-intl
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-intl)
+
+ maybe-clean-stage3-intl: clean-stage3-intl
+@@ -20231,7 +20448,7 @@ clean-stage3-intl:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif intl-bootstrap
+@@ -20252,8 +20469,11 @@ all-stageb3g2-intl: configure-stageb3g2-
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-intl)
+
+ maybe-clean-stageb3g2-intl: clean-stageb3g2-intl
+@@ -20266,7 +20486,7 @@ clean-stageb3g2-intl:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif intl-bootstrap
+@@ -20287,8 +20507,11 @@ all-stage4-intl: configure-stage4-intl
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-intl)
+
+ maybe-clean-stage4-intl: clean-stage4-intl
+@@ -20301,7 +20524,7 @@ clean-stage4-intl:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif intl-bootstrap
+@@ -20322,8 +20545,11 @@ all-stageprofile-intl: configure-stagepr
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-intl)
+
+ maybe-clean-stageprofile-intl: clean-stageprofile-intl
+@@ -20336,7 +20562,7 @@ clean-stageprofile-intl:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif intl-bootstrap
+@@ -20357,8 +20583,11 @@ all-stagefeedback-intl: configure-stagef
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-intl)
+
+ maybe-clean-stagefeedback-intl: clean-stagefeedback-intl
+@@ -20371,7 +20600,7 @@ clean-stagefeedback-intl:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/intl && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif intl-bootstrap
+@@ -20785,7 +21014,8 @@ all-tcl: configure-tcl
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/tcl && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-tcl))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-tcl))
+ @endif tcl
+
+
+@@ -21194,7 +21424,8 @@ all-itcl: configure-itcl
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/itcl && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-itcl))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-itcl))
+ @endif itcl
+
+
+@@ -21611,9 +21842,9 @@ configure-stage1-ld:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21642,9 +21873,9 @@ configure-stage2-ld:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21673,9 +21904,9 @@ configure-stageb2g0-ld:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21704,9 +21935,9 @@ configure-stage3-ld:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21735,9 +21966,9 @@ configure-stageb3g2-ld:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21766,9 +21997,9 @@ configure-stage4-ld:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21797,9 +22028,9 @@ configure-stageprofile-ld:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21828,9 +22059,9 @@ configure-stagefeedback-ld:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/ld ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21865,7 +22096,8 @@ all-ld: configure-ld
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-ld))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-ld))
+ @endif ld
+
+
+@@ -21884,8 +22116,11 @@ all-stage1-ld: configure-stage1-ld
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-ld)
+
+ maybe-clean-stage1-ld: clean-stage1-ld
+@@ -21898,7 +22133,7 @@ clean-stage1-ld:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif ld-bootstrap
+
+@@ -21918,8 +22153,11 @@ all-stage2-ld: configure-stage2-ld
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-ld)
+
+ maybe-clean-stage2-ld: clean-stage2-ld
+@@ -21932,7 +22170,7 @@ clean-stage2-ld:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif ld-bootstrap
+@@ -21953,8 +22191,11 @@ all-stageb2g0-ld: configure-stageb2g0-ld
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-ld)
+
+ maybe-clean-stageb2g0-ld: clean-stageb2g0-ld
+@@ -21967,7 +22208,7 @@ clean-stageb2g0-ld:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif ld-bootstrap
+@@ -21988,8 +22229,11 @@ all-stage3-ld: configure-stage3-ld
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-ld)
+
+ maybe-clean-stage3-ld: clean-stage3-ld
+@@ -22002,7 +22246,7 @@ clean-stage3-ld:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif ld-bootstrap
+@@ -22023,8 +22267,11 @@ all-stageb3g2-ld: configure-stageb3g2-ld
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-ld)
+
+ maybe-clean-stageb3g2-ld: clean-stageb3g2-ld
+@@ -22037,7 +22284,7 @@ clean-stageb3g2-ld:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif ld-bootstrap
+@@ -22058,8 +22305,11 @@ all-stage4-ld: configure-stage4-ld
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-ld)
+
+ maybe-clean-stage4-ld: clean-stage4-ld
+@@ -22072,7 +22322,7 @@ clean-stage4-ld:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif ld-bootstrap
+@@ -22093,8 +22343,11 @@ all-stageprofile-ld: configure-stageprof
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-ld)
+
+ maybe-clean-stageprofile-ld: clean-stageprofile-ld
+@@ -22107,7 +22360,7 @@ clean-stageprofile-ld:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif ld-bootstrap
+@@ -22128,8 +22381,11 @@ all-stagefeedback-ld: configure-stagefee
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-ld)
+
+ maybe-clean-stagefeedback-ld: clean-stagefeedback-ld
+@@ -22142,7 +22398,7 @@ clean-stagefeedback-ld:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/ld && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif ld-bootstrap
+@@ -22549,9 +22805,9 @@ configure-stage1-libcpp:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22580,9 +22836,9 @@ configure-stage2-libcpp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22611,9 +22867,9 @@ configure-stageb2g0-libcpp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22642,9 +22898,9 @@ configure-stage3-libcpp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22673,9 +22929,9 @@ configure-stageb3g2-libcpp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22704,9 +22960,9 @@ configure-stage4-libcpp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22735,9 +22991,9 @@ configure-stageprofile-libcpp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22766,9 +23022,9 @@ configure-stagefeedback-libcpp:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/libcpp ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22803,7 +23059,8 @@ all-libcpp: configure-libcpp
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-libcpp))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-libcpp))
+ @endif libcpp
+
+
+@@ -22822,8 +23079,11 @@ all-stage1-libcpp: configure-stage1-libc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-libcpp)
+
+ maybe-clean-stage1-libcpp: clean-stage1-libcpp
+@@ -22836,7 +23096,7 @@ clean-stage1-libcpp:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif libcpp-bootstrap
+
+@@ -22856,8 +23116,11 @@ all-stage2-libcpp: configure-stage2-libc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-libcpp)
+
+ maybe-clean-stage2-libcpp: clean-stage2-libcpp
+@@ -22870,7 +23133,7 @@ clean-stage2-libcpp:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libcpp-bootstrap
+@@ -22891,8 +23154,11 @@ all-stageb2g0-libcpp: configure-stageb2g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-libcpp)
+
+ maybe-clean-stageb2g0-libcpp: clean-stageb2g0-libcpp
+@@ -22905,7 +23171,7 @@ clean-stageb2g0-libcpp:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libcpp-bootstrap
+@@ -22926,8 +23192,11 @@ all-stage3-libcpp: configure-stage3-libc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-libcpp)
+
+ maybe-clean-stage3-libcpp: clean-stage3-libcpp
+@@ -22940,7 +23209,7 @@ clean-stage3-libcpp:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libcpp-bootstrap
+@@ -22961,8 +23230,11 @@ all-stageb3g2-libcpp: configure-stageb3g
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-libcpp)
+
+ maybe-clean-stageb3g2-libcpp: clean-stageb3g2-libcpp
+@@ -22975,7 +23247,7 @@ clean-stageb3g2-libcpp:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libcpp-bootstrap
+@@ -22996,8 +23268,11 @@ all-stage4-libcpp: configure-stage4-libc
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-libcpp)
+
+ maybe-clean-stage4-libcpp: clean-stage4-libcpp
+@@ -23010,7 +23285,7 @@ clean-stage4-libcpp:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libcpp-bootstrap
+@@ -23031,8 +23306,11 @@ all-stageprofile-libcpp: configure-stage
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-libcpp)
+
+ maybe-clean-stageprofile-libcpp: clean-stageprofile-libcpp
+@@ -23045,7 +23323,7 @@ clean-stageprofile-libcpp:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libcpp-bootstrap
+@@ -23066,8 +23344,11 @@ all-stagefeedback-libcpp: configure-stag
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-libcpp)
+
+ maybe-clean-stagefeedback-libcpp: clean-stagefeedback-libcpp
+@@ -23080,7 +23361,7 @@ clean-stagefeedback-libcpp:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libcpp && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libcpp-bootstrap
+@@ -23487,9 +23768,9 @@ configure-stage1-libdecnumber:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23518,9 +23799,9 @@ configure-stage2-libdecnumber:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23549,9 +23830,9 @@ configure-stageb2g0-libdecnumber:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23580,9 +23861,9 @@ configure-stage3-libdecnumber:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23611,9 +23892,9 @@ configure-stageb3g2-libdecnumber:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23642,9 +23923,9 @@ configure-stage4-libdecnumber:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23673,9 +23954,9 @@ configure-stageprofile-libdecnumber:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23704,9 +23985,9 @@ configure-stagefeedback-libdecnumber:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/libdecnumber ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23741,7 +24022,8 @@ all-libdecnumber: configure-libdecnumber
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-libdecnumber))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-libdecnumber))
+ @endif libdecnumber
+
+
+@@ -23760,8 +24042,11 @@ all-stage1-libdecnumber: configure-stage
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-libdecnumber)
+
+ maybe-clean-stage1-libdecnumber: clean-stage1-libdecnumber
+@@ -23774,7 +24059,7 @@ clean-stage1-libdecnumber:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif libdecnumber-bootstrap
+
+@@ -23794,8 +24079,11 @@ all-stage2-libdecnumber: configure-stage
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-libdecnumber)
+
+ maybe-clean-stage2-libdecnumber: clean-stage2-libdecnumber
+@@ -23808,7 +24096,7 @@ clean-stage2-libdecnumber:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libdecnumber-bootstrap
+@@ -23829,8 +24117,11 @@ all-stageb2g0-libdecnumber: configure-st
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-libdecnumber)
+
+ maybe-clean-stageb2g0-libdecnumber: clean-stageb2g0-libdecnumber
+@@ -23843,7 +24134,7 @@ clean-stageb2g0-libdecnumber:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libdecnumber-bootstrap
+@@ -23864,8 +24155,11 @@ all-stage3-libdecnumber: configure-stage
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-libdecnumber)
+
+ maybe-clean-stage3-libdecnumber: clean-stage3-libdecnumber
+@@ -23878,7 +24172,7 @@ clean-stage3-libdecnumber:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libdecnumber-bootstrap
+@@ -23899,8 +24193,11 @@ all-stageb3g2-libdecnumber: configure-st
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-libdecnumber)
+
+ maybe-clean-stageb3g2-libdecnumber: clean-stageb3g2-libdecnumber
+@@ -23913,7 +24210,7 @@ clean-stageb3g2-libdecnumber:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libdecnumber-bootstrap
+@@ -23934,8 +24231,11 @@ all-stage4-libdecnumber: configure-stage
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-libdecnumber)
+
+ maybe-clean-stage4-libdecnumber: clean-stage4-libdecnumber
+@@ -23948,7 +24248,7 @@ clean-stage4-libdecnumber:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libdecnumber-bootstrap
+@@ -23969,8 +24269,11 @@ all-stageprofile-libdecnumber: configure
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-libdecnumber)
+
+ maybe-clean-stageprofile-libdecnumber: clean-stageprofile-libdecnumber
+@@ -23983,7 +24286,7 @@ clean-stageprofile-libdecnumber:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libdecnumber-bootstrap
+@@ -24004,8 +24307,11 @@ all-stagefeedback-libdecnumber: configur
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-libdecnumber)
+
+ maybe-clean-stagefeedback-libdecnumber: clean-stagefeedback-libdecnumber
+@@ -24018,7 +24324,7 @@ clean-stagefeedback-libdecnumber:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libdecnumber && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libdecnumber-bootstrap
+@@ -24432,7 +24738,8 @@ all-libgui: configure-libgui
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libgui && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-libgui))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-libgui))
+ @endif libgui
+
+
+@@ -24849,9 +25156,9 @@ configure-stage1-libiberty:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24880,9 +25187,9 @@ configure-stage2-libiberty:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24911,9 +25218,9 @@ configure-stageb2g0-libiberty:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24942,9 +25249,9 @@ configure-stage3-libiberty:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24973,9 +25280,9 @@ configure-stageb3g2-libiberty:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25004,9 +25311,9 @@ configure-stage4-libiberty:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25035,9 +25342,9 @@ configure-stageprofile-libiberty:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25066,9 +25373,9 @@ configure-stagefeedback-libiberty:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/libiberty ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25103,7 +25410,8 @@ all-libiberty: configure-libiberty
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-libiberty))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-libiberty))
+ @endif libiberty
+
+
+@@ -25122,8 +25430,11 @@ all-stage1-libiberty: configure-stage1-l
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-libiberty)
+
+ maybe-clean-stage1-libiberty: clean-stage1-libiberty
+@@ -25136,7 +25447,7 @@ clean-stage1-libiberty:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif libiberty-bootstrap
+
+@@ -25156,8 +25467,11 @@ all-stage2-libiberty: configure-stage2-l
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-libiberty)
+
+ maybe-clean-stage2-libiberty: clean-stage2-libiberty
+@@ -25170,7 +25484,7 @@ clean-stage2-libiberty:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libiberty-bootstrap
+@@ -25191,8 +25505,11 @@ all-stageb2g0-libiberty: configure-stage
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-libiberty)
+
+ maybe-clean-stageb2g0-libiberty: clean-stageb2g0-libiberty
+@@ -25205,7 +25522,7 @@ clean-stageb2g0-libiberty:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libiberty-bootstrap
+@@ -25226,8 +25543,11 @@ all-stage3-libiberty: configure-stage3-l
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-libiberty)
+
+ maybe-clean-stage3-libiberty: clean-stage3-libiberty
+@@ -25240,7 +25560,7 @@ clean-stage3-libiberty:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libiberty-bootstrap
+@@ -25261,8 +25581,11 @@ all-stageb3g2-libiberty: configure-stage
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-libiberty)
+
+ maybe-clean-stageb3g2-libiberty: clean-stageb3g2-libiberty
+@@ -25275,7 +25598,7 @@ clean-stageb3g2-libiberty:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libiberty-bootstrap
+@@ -25296,8 +25619,11 @@ all-stage4-libiberty: configure-stage4-l
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-libiberty)
+
+ maybe-clean-stage4-libiberty: clean-stage4-libiberty
+@@ -25310,7 +25636,7 @@ clean-stage4-libiberty:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libiberty-bootstrap
+@@ -25331,8 +25657,11 @@ all-stageprofile-libiberty: configure-st
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-libiberty)
+
+ maybe-clean-stageprofile-libiberty: clean-stageprofile-libiberty
+@@ -25345,7 +25674,7 @@ clean-stageprofile-libiberty:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libiberty-bootstrap
+@@ -25366,8 +25695,11 @@ all-stagefeedback-libiberty: configure-s
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-libiberty)
+
+ maybe-clean-stagefeedback-libiberty: clean-stagefeedback-libiberty
+@@ -25380,7 +25712,7 @@ clean-stagefeedback-libiberty:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/libiberty && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif libiberty-bootstrap
+@@ -25794,7 +26126,8 @@ all-libtool: configure-libtool
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libtool && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-libtool))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-libtool))
+ @endif libtool
+
+
+@@ -26218,7 +26551,8 @@ all-m4: configure-m4
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/m4 && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-m4))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-m4))
+ @endif m4
+
+
+@@ -26642,7 +26976,8 @@ all-make: configure-make
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/make && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-make))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-make))
+ @endif make
+
+
+@@ -27066,7 +27401,8 @@ all-mmalloc: configure-mmalloc
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/mmalloc && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-mmalloc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-mmalloc))
+ @endif mmalloc
+
+
+@@ -27484,7 +27820,8 @@ all-patch: configure-patch
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/patch && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-patch))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-patch))
+ @endif patch
+
+
+@@ -27908,7 +28245,8 @@ all-perl: configure-perl
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/perl && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-perl))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-perl))
+ @endif perl
+
+
+@@ -28332,7 +28670,8 @@ all-prms: configure-prms
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/prms && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-prms))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-prms))
+ @endif prms
+
+
+@@ -28756,7 +29095,8 @@ all-rcs: configure-rcs
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/rcs && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-rcs))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-rcs))
+ @endif rcs
+
+
+@@ -29180,7 +29520,8 @@ all-readline: configure-readline
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/readline && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-readline))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-readline))
+ @endif readline
+
+
+@@ -29604,7 +29945,8 @@ all-release: configure-release
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/release && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-release))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-release))
+ @endif release
+
+
+@@ -30016,7 +30358,8 @@ all-recode: configure-recode
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/recode && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-recode))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-recode))
+ @endif recode
+
+
+@@ -30440,7 +30783,8 @@ all-sed: configure-sed
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/sed && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-sed))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-sed))
+ @endif sed
+
+
+@@ -30864,7 +31208,8 @@ all-send-pr: configure-send-pr
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/send-pr && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-send-pr))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-send-pr))
+ @endif send-pr
+
+
+@@ -31288,7 +31633,8 @@ all-shellutils: configure-shellutils
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/shellutils && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-shellutils))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-shellutils))
+ @endif shellutils
+
+
+@@ -31712,7 +32058,8 @@ all-sid: configure-sid
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/sid && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-sid))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-sid))
+ @endif sid
+
+
+@@ -32136,7 +32483,8 @@ all-sim: configure-sim
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/sim && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-sim))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-sim))
+ @endif sim
+
+
+@@ -32560,7 +32908,8 @@ all-tar: configure-tar
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/tar && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-tar))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-tar))
+ @endif tar
+
+
+@@ -32984,7 +33333,8 @@ all-texinfo: configure-texinfo
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/texinfo && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-texinfo))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-texinfo))
+ @endif texinfo
+
+
+@@ -33402,7 +33752,8 @@ all-textutils: configure-textutils
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/textutils && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-textutils))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-textutils))
+ @endif textutils
+
+
+@@ -33826,7 +34177,8 @@ all-time: configure-time
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/time && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-time))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-time))
+ @endif time
+
+
+@@ -34250,7 +34602,8 @@ all-uudecode: configure-uudecode
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/uudecode && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-uudecode))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-uudecode))
+ @endif uudecode
+
+
+@@ -34674,7 +35027,8 @@ all-wdiff: configure-wdiff
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/wdiff && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-wdiff))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-wdiff))
+ @endif wdiff
+
+
+@@ -35098,7 +35452,8 @@ all-zip: configure-zip
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/zip && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-zip))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-zip))
+ @endif zip
+
+
+@@ -35518,9 +35873,9 @@ configure-stage1-zlib:
+ @r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+- $(HOST_EXPORTS) \
++ $(HOST_EXPORTS) \
+ CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35549,9 +35904,9 @@ configure-stage2-zlib:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35580,9 +35935,9 @@ configure-stageb2g0-zlib:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35611,9 +35966,9 @@ configure-stage3-zlib:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35642,9 +35997,9 @@ configure-stageb3g2-zlib:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35673,9 +36028,9 @@ configure-stage4-zlib:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35704,9 +36059,9 @@ configure-stageprofile-zlib:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS; \
+ echo Configuring stage profile in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35735,9 +36090,9 @@ configure-stagefeedback-zlib:
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ $(HOST_EXPORTS) \
+- $(POSTSTAGE1_HOST_EXPORTS) \
++ $(POSTSTAGE1_HOST_EXPORTS) \
+ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(HOST_SUBDIR)/zlib ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35772,7 +36127,8 @@ all-zlib: configure-zlib
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-zlib))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-zlib))
+ @endif zlib
+
+
+@@ -35791,8 +36147,11 @@ all-stage1-zlib: configure-stage1-zlib
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) \
+ $(TARGET-stage1-zlib)
+
+ maybe-clean-stage1-zlib: clean-stage1-zlib
+@@ -35805,7 +36164,7 @@ clean-stage1-zlib:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ clean
+ @endif zlib-bootstrap
+
+@@ -35825,8 +36184,11 @@ all-stage2-zlib: configure-stage2-zlib
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage2-zlib)
+
+ maybe-clean-stage2-zlib: clean-stage2-zlib
+@@ -35839,7 +36201,7 @@ clean-stage2-zlib:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif zlib-bootstrap
+@@ -35860,8 +36222,11 @@ all-stageb2g0-zlib: configure-stageb2g0-
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb2g0-zlib)
+
+ maybe-clean-stageb2g0-zlib: clean-stageb2g0-zlib
+@@ -35874,7 +36239,7 @@ clean-stageb2g0-zlib:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif zlib-bootstrap
+@@ -35895,8 +36260,11 @@ all-stage3-zlib: configure-stage3-zlib
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage3-zlib)
+
+ maybe-clean-stage3-zlib: clean-stage3-zlib
+@@ -35909,7 +36277,7 @@ clean-stage3-zlib:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif zlib-bootstrap
+@@ -35930,8 +36298,11 @@ all-stageb3g2-zlib: configure-stageb3g2-
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageb3g2-zlib)
+
+ maybe-clean-stageb3g2-zlib: clean-stageb3g2-zlib
+@@ -35944,7 +36315,7 @@ clean-stageb3g2-zlib:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif zlib-bootstrap
+@@ -35965,8 +36336,11 @@ all-stage4-zlib: configure-stage4-zlib
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stage4-zlib)
+
+ maybe-clean-stage4-zlib: clean-stage4-zlib
+@@ -35979,7 +36353,7 @@ clean-stage4-zlib:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif zlib-bootstrap
+@@ -36000,8 +36374,11 @@ all-stageprofile-zlib: configure-stagepr
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stageprofile-zlib)
+
+ maybe-clean-stageprofile-zlib: clean-stageprofile-zlib
+@@ -36014,7 +36391,7 @@ clean-stageprofile-zlib:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif zlib-bootstrap
+@@ -36035,8 +36412,11 @@ all-stagefeedback-zlib: configure-stagef
+ $(HOST_EXPORTS) \
+ $(POSTSTAGE1_HOST_EXPORTS) \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) \
+ $(TARGET-stagefeedback-zlib)
+
+ maybe-clean-stagefeedback-zlib: clean-stagefeedback-zlib
+@@ -36049,7 +36429,7 @@ clean-stagefeedback-zlib:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(HOST_SUBDIR)/zlib && \
+- $(MAKE) $(FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_HOST_FLAGS) \
+ $(POSTSTAGE1_FLAGS_TO_PASS) \
+ clean
+ @endif zlib-bootstrap
+@@ -36451,7 +36831,8 @@ all-gdb: configure-gdb
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gdb && \
+- $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-gdb))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++ $(TARGET-gdb))
+ @endif gdb
+
+
+@@ -36875,7 +37256,8 @@ all-expect: configure-expect
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/expect && \
+- $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-expect))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++ $(TARGET-expect))
+ @endif expect
+
+
+@@ -37299,7 +37681,8 @@ all-guile: configure-guile
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/guile && \
+- $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-guile))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++ $(TARGET-guile))
+ @endif guile
+
+
+@@ -37723,7 +38106,8 @@ all-tk: configure-tk
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/tk && \
+- $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-tk))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++ $(TARGET-tk))
+ @endif tk
+
+
+@@ -38147,7 +38531,8 @@ all-libtermcap: configure-libtermcap
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/libtermcap && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-libtermcap))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-libtermcap))
+ @endif libtermcap
+
+
+@@ -38505,7 +38890,8 @@ all-utils: configure-utils
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/utils && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-utils))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-utils))
+ @endif utils
+
+
+@@ -38923,7 +39309,8 @@ all-gnattools: configure-gnattools
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd $(HOST_SUBDIR)/gnattools && \
+- $(MAKE) $(FLAGS_TO_PASS) $(TARGET-gnattools))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) \
++ $(TARGET-gnattools))
+ @endif gnattools
+
+
+@@ -39368,7 +39755,8 @@ all-target-libstdc++-v3: configure-targe
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(RAW_CXX_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libstdc++-v3 && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' $(TARGET-target-libstdc++-v3))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' \
++ $(TARGET-target-libstdc++-v3))
+ @endif target-libstdc++-v3
+
+
+@@ -39809,7 +40197,8 @@ all-target-libmudflap: configure-target-
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libmudflap && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libmudflap))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libmudflap))
+ @endif target-libmudflap
+
+
+@@ -40250,7 +40639,8 @@ all-target-libssp: configure-target-libs
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libssp && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libssp))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libssp))
+ @endif target-libssp
+
+
+@@ -40691,7 +41081,8 @@ all-target-newlib: configure-target-newl
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/newlib && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-newlib))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-newlib))
+ @endif target-newlib
+
+
+@@ -41137,9 +41528,9 @@ configure-stage1-target-libgcc:
+ mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+- $(NORMAL_TARGET_EXPORTS) \
+- CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++ $(NORMAL_TARGET_EXPORTS) \
++ CFLAGS="$(STAGE1_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE1_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage 1 in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41180,9 +41571,9 @@ configure-stage2-target-libgcc:
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ $(NORMAL_TARGET_EXPORTS) \
+- \
+- CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++ \
++ CFLAGS="$(STAGE2_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE2_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage 2 in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41223,9 +41614,9 @@ configure-stageb2g0-target-libgcc:
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ $(NORMAL_TARGET_EXPORTS) \
+- \
+- CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++ \
++ CFLAGS="$(STAGE2_LIBCFLAGS) -g0 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE2_LIBCFLAGS) -g0 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage b2g0 in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41266,9 +41657,9 @@ configure-stage3-target-libgcc:
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ $(NORMAL_TARGET_EXPORTS) \
+- \
+- CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++ \
++ CFLAGS="$(STAGE3_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE3_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage 3 in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41309,9 +41700,9 @@ configure-stageb3g2-target-libgcc:
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ $(NORMAL_TARGET_EXPORTS) \
+- \
+- CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++ \
++ CFLAGS="$(STAGE3_LIBCFLAGS) -g2 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE3_LIBCFLAGS) -g2 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage b3g2 in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41352,9 +41743,9 @@ configure-stage4-target-libgcc:
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ $(NORMAL_TARGET_EXPORTS) \
+- \
+- CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++ \
++ CFLAGS="$(STAGE4_CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE4_CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage 4 in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41395,9 +41786,9 @@ configure-stageprofile-target-libgcc:
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ $(NORMAL_TARGET_EXPORTS) \
+- \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++ \
++ CFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage profile in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41438,9 +41829,9 @@ configure-stagefeedback-target-libgcc:
+ fi; \
+ test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ $(NORMAL_TARGET_EXPORTS) \
+- \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+- LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++ \
++ CFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++ CXXFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ echo Configuring stage feedback in $(TARGET_SUBDIR)/libgcc ; \
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41475,7 +41866,8 @@ all-target-libgcc: configure-target-libg
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libgcc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libgcc))
+ @endif target-libgcc
+
+
+@@ -41494,8 +41886,11 @@ all-stage1-target-libgcc: configure-stag
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++ LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stage1-target-libgcc)
+
+ maybe-clean-stage1-target-libgcc: clean-stage1-target-libgcc
+@@ -41508,7 +41903,7 @@ clean-stage1-target-libgcc:
+ $(MAKE) stage1-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ clean
+ @endif target-libgcc-bootstrap
+
+@@ -41528,8 +41923,11 @@ all-stage2-target-libgcc: configure-stag
+ $(NORMAL_TARGET_EXPORTS) \
+ \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stage2-target-libgcc)
+
+ maybe-clean-stage2-target-libgcc: clean-stage2-target-libgcc
+@@ -41542,7 +41940,7 @@ clean-stage2-target-libgcc:
+ $(MAKE) stage2-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ \
+ clean
+ @endif target-libgcc-bootstrap
+@@ -41563,8 +41961,11 @@ all-stageb2g0-target-libgcc: configure-s
+ $(NORMAL_TARGET_EXPORTS) \
+ \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stageb2g0-target-libgcc)
+
+ maybe-clean-stageb2g0-target-libgcc: clean-stageb2g0-target-libgcc
+@@ -41577,7 +41978,7 @@ clean-stageb2g0-target-libgcc:
+ $(MAKE) stageb2g0-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ \
+ clean
+ @endif target-libgcc-bootstrap
+@@ -41598,8 +41999,11 @@ all-stage3-target-libgcc: configure-stag
+ $(NORMAL_TARGET_EXPORTS) \
+ \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stage3-target-libgcc)
+
+ maybe-clean-stage3-target-libgcc: clean-stage3-target-libgcc
+@@ -41612,7 +42016,7 @@ clean-stage3-target-libgcc:
+ $(MAKE) stage3-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ \
+ clean
+ @endif target-libgcc-bootstrap
+@@ -41633,8 +42037,11 @@ all-stageb3g2-target-libgcc: configure-s
+ $(NORMAL_TARGET_EXPORTS) \
+ \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stageb3g2-target-libgcc)
+
+ maybe-clean-stageb3g2-target-libgcc: clean-stageb3g2-target-libgcc
+@@ -41647,7 +42054,7 @@ clean-stageb3g2-target-libgcc:
+ $(MAKE) stageb3g2-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ \
+ clean
+ @endif target-libgcc-bootstrap
+@@ -41668,8 +42075,11 @@ all-stage4-target-libgcc: configure-stag
+ $(NORMAL_TARGET_EXPORTS) \
+ \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++ LIBCFLAGS="$(STAGE4_CFLAGS)" \
++ CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++ CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stage4-target-libgcc)
+
+ maybe-clean-stage4-target-libgcc: clean-stage4-target-libgcc
+@@ -41682,7 +42092,7 @@ clean-stage4-target-libgcc:
+ $(MAKE) stage4-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ \
+ clean
+ @endif target-libgcc-bootstrap
+@@ -41703,8 +42113,11 @@ all-stageprofile-target-libgcc: configur
+ $(NORMAL_TARGET_EXPORTS) \
+ \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++ LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++ CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stageprofile-target-libgcc)
+
+ maybe-clean-stageprofile-target-libgcc: clean-stageprofile-target-libgcc
+@@ -41717,7 +42130,7 @@ clean-stageprofile-target-libgcc:
+ $(MAKE) stageprofile-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ \
+ clean
+ @endif target-libgcc-bootstrap
+@@ -41738,8 +42151,11 @@ all-stagefeedback-target-libgcc: configu
+ $(NORMAL_TARGET_EXPORTS) \
+ \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
+- CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ $(MAKE) $(BASE_FLAGS_TO_PASS) \
++ CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++ LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++ CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_TARGET_FLAGS) \
+ $(TARGET-stagefeedback-target-libgcc)
+
+ maybe-clean-stagefeedback-target-libgcc: clean-stagefeedback-target-libgcc
+@@ -41752,7 +42168,7 @@ clean-stagefeedback-target-libgcc:
+ $(MAKE) stagefeedback-start; \
+ fi; \
+ cd $(TARGET_SUBDIR)/libgcc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) \
++ $(MAKE) $(EXTRA_TARGET_FLAGS) \
+ \
+ clean
+ @endif target-libgcc-bootstrap
+@@ -42191,7 +42607,8 @@ all-target-libgfortran: configure-target
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libgfortran))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libgfortran))
+ @endif target-libgfortran
+
+
+@@ -42632,7 +43049,8 @@ all-target-libobjc: configure-target-lib
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libobjc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libobjc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libobjc))
+ @endif target-libobjc
+
+
+@@ -43073,7 +43491,8 @@ all-target-libtermcap: configure-target-
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libtermcap && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libtermcap))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libtermcap))
+ @endif target-libtermcap
+
+
+@@ -43449,7 +43868,8 @@ all-target-winsup: configure-target-wins
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/winsup && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-winsup))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-winsup))
+ @endif target-winsup
+
+
+@@ -43890,7 +44310,8 @@ all-target-libgloss: configure-target-li
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libgloss && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libgloss))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libgloss))
+ @endif target-libgloss
+
+
+@@ -44326,7 +44747,8 @@ all-target-libiberty: configure-target-l
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libiberty && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libiberty))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libiberty))
+ @endif target-libiberty
+
+
+@@ -44767,7 +45189,8 @@ all-target-gperf: configure-target-gperf
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/gperf && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-gperf))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-gperf))
+ @endif target-gperf
+
+
+@@ -45208,7 +45631,8 @@ all-target-examples: configure-target-ex
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/examples && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-examples))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-examples))
+ @endif target-examples
+
+
+@@ -45639,7 +46063,8 @@ all-target-libffi: configure-target-libf
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libffi && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libffi))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libffi))
+ @endif target-libffi
+
+
+@@ -46080,7 +46505,8 @@ all-target-libjava: configure-target-lib
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(RAW_CXX_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libjava && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' $(TARGET-target-libjava))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' \
++ $(TARGET-target-libjava))
+ @endif target-libjava
+
+
+@@ -46521,7 +46947,8 @@ all-target-zlib: configure-target-zlib
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/zlib && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-zlib))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-zlib))
+ @endif target-zlib
+
+
+@@ -46962,7 +47389,8 @@ all-target-boehm-gc: configure-target-bo
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/boehm-gc && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-boehm-gc))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-boehm-gc))
+ @endif target-boehm-gc
+
+
+@@ -47403,7 +47831,8 @@ all-target-qthreads: configure-target-qt
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/qthreads && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-qthreads))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-qthreads))
+ @endif target-qthreads
+
+
+@@ -47844,7 +48273,8 @@ all-target-rda: configure-target-rda
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/rda && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-rda))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-rda))
+ @endif target-rda
+
+
+@@ -48285,7 +48715,8 @@ all-target-libada: configure-target-liba
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libada && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libada))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libada))
+ @endif target-libada
+
+
+@@ -48726,7 +49157,8 @@ all-target-libgomp: configure-target-lib
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(NORMAL_TARGET_EXPORTS) \
+ (cd $(TARGET_SUBDIR)/libgomp && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libgomp))
++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
++ $(TARGET-target-libgomp))
+ @endif target-libgomp
+
+
+Index: gcc-4.3.1/configure
+===================================================================
+--- gcc-4.3.1.orig/configure 2008-02-01 19:29:30.000000000 -0800
++++ gcc-4.3.1/configure 2008-07-21 11:22:34.000000000 -0700
+@@ -272,7 +272,7 @@ PACKAGE_STRING=
+ PACKAGE_BUGREPORT=
+
+ ac_unique_file="move-if-change"
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
+ ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag'
+
+ # Initialize some variables set by options.
+@@ -5147,6 +5147,38 @@ else
+ fi;
+
+
++# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
++# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
++# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
++# We want to ensure that TARGET libraries (which we know are built with
++# gcc) are built with "-O2 -g", so include those options when setting
++# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
++if test "x$CFLAGS_FOR_TARGET" = x; then
++ CFLAGS_FOR_TARGET=$CFLAGS
++ case " $CFLAGS " in
++ *" -O2 "*) ;;
++ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
++ esac
++ case " $CFLAGS " in
++ *" -g "* | *" -g3 "*) ;;
++ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
++ esac
++fi
++
++
++if test "x$CXXFLAGS_FOR_TARGET" = x; then
++ CXXFLAGS_FOR_TARGET=$CXXFLAGS
++ case " $CXXFLAGS " in
++ *" -O2 "*) ;;
++ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
++ esac
++ case " $CXXFLAGS " in
++ *" -g "* | *" -g3 "*) ;;
++ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
++ esac
++fi
++
++
+ # Handle --with-headers=XXX. If the value is not "yes", the contents of
+ # the named directory are copied to $(tooldir)/sys-include.
+ if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
+@@ -12825,6 +12857,8 @@ s,@gmpinc@,$gmpinc,;t t
+ s,@stage1_languages@,$stage1_languages,;t t
+ s,@SYSROOT_CFLAGS_FOR_TARGET@,$SYSROOT_CFLAGS_FOR_TARGET,;t t
+ s,@DEBUG_PREFIX_CFLAGS_FOR_TARGET@,$DEBUG_PREFIX_CFLAGS_FOR_TARGET,;t t
++s,@CFLAGS_FOR_TARGET@,$CFLAGS_FOR_TARGET,;t t
++s,@CXXFLAGS_FOR_TARGET@,$CXXFLAGS_FOR_TARGET,;t t
+ s,@RPATH_ENVVAR@,$RPATH_ENVVAR,;t t
+ s,@tooldir@,$tooldir,;t t
+ s,@build_tooldir@,$build_tooldir,;t t
diff --git a/packages/gcc/gcc-configure-cross.inc b/packages/gcc/gcc-configure-cross.inc
index 333cb8f9bf..d5800c78ff 100644
--- a/packages/gcc/gcc-configure-cross.inc
+++ b/packages/gcc/gcc-configure-cross.inc
@@ -7,10 +7,6 @@ EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix}
--with-sysroot=${STAGING_DIR_TARGET} \
--with-build-sysroot=${STAGING_DIR_TARGET}"
-do_configure_prepend () {
- rm -f ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
-}
-
do_compile_prepend () {
export CC="${BUILD_CC}"
export AR_FOR_TARGET="${TARGET_SYS}-ar"
diff --git a/packages/gcc/gcc-configure-sdk.inc b/packages/gcc/gcc-configure-sdk.inc
index f8c4de8c78..faa183f8e4 100644
--- a/packages/gcc/gcc-configure-sdk.inc
+++ b/packages/gcc/gcc-configure-sdk.inc
@@ -7,6 +7,7 @@ USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d
EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
--with-gxx-include-dir=${STAGING_DIR_TARGET}/${layout_includedir}/c++ \
--with-sysroot=${prefix}/${TARGET_SYS} \
+ --with-build-time-tools=${CROSS_DIR}/${TARGET_SYS}/bin \
--with-build-sysroot=${STAGING_DIR_TARGET}"
#
diff --git a/packages/gcc/gcc-cross-initial.inc b/packages/gcc/gcc-cross-initial.inc
index e0675263ea..15e5fa62fc 100644
--- a/packages/gcc/gcc-cross-initial.inc
+++ b/packages/gcc/gcc-cross-initial.inc
@@ -1,6 +1,4 @@
DEPENDS = "virtual/${TARGET_PREFIX}binutils"
-# @todo Please add comment on why this is (still?) needed?
-DEPENDS += "${@['virtual/${TARGET_PREFIX}libc-initial',''][bb.data.getVar('TARGET_ARCH', d, 1) in ['arm', 'armeb', 'mips', 'mipsel', 'powerpc']]}"
PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
PACKAGES = ""
@@ -8,6 +6,7 @@ PACKAGES = ""
# sysroot is needed in case we use libc-initial
EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
--with-newlib \
+ --without-headers \
--disable-shared \
--disable-threads \
--disable-multilib \
@@ -19,11 +18,6 @@ EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
--with-build-sysroot=${STAGING_DIR_TARGET} \
${@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
-}
-
do_install () {
:
}
diff --git a/packages/gcc/gcc-cross-initial_4.3.1.bb b/packages/gcc/gcc-cross-initial_4.3.1.bb
index c8738ad614..3858d8813b 100644
--- a/packages/gcc/gcc-cross-initial_4.3.1.bb
+++ b/packages/gcc/gcc-cross-initial_4.3.1.bb
@@ -5,6 +5,7 @@ DEPENDS += "gmp-native mpfr-native"
EXTRA_OECONF += " --disable-libmudflap \
--disable-libgomp \
+ --enable-decimal-float=no \
--disable-libssp"
# Hack till we fix *libc properly
diff --git a/packages/gcc/gcc-cross-intermediate.inc b/packages/gcc/gcc-cross-intermediate.inc
new file mode 100644
index 0000000000..4fa12886f1
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate.inc
@@ -0,0 +1,21 @@
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+DEPENDS += "virtual/${TARGET_PREFIX}libc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate"
+PACKAGES = ""
+
+# This is intended to be a -very- basic config
+# sysroot is needed in case we use libc-initial
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+ --enable-shared \
+ --disable-multilib \
+ --disable-threads \
+ --enable-languages=c \
+ --enable-target-optspace \
+ --program-prefix=${TARGET_PREFIX} \
+ --with-sysroot=${STAGING_DIR_TARGET} \
+ --with-build-sysroot=${STAGING_DIR_TARGET} \
+ ${@get_gcc_fpu_setting(bb, d)}"
+
+do_install () {
+ :
+}
diff --git a/packages/gcc/gcc-cross-intermediate_3.3.3.bb b/packages/gcc/gcc-cross-intermediate_3.3.3.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.3.3.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_3.3.4.bb b/packages/gcc/gcc-cross-intermediate_3.3.4.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.3.4.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_3.4.3.bb b/packages/gcc/gcc-cross-intermediate_3.4.3.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.4.3.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_3.4.4.bb b/packages/gcc/gcc-cross-intermediate_3.4.4.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.4.4.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_4.0.2.bb b/packages/gcc/gcc-cross-intermediate_4.0.2.bb
new file mode 100644
index 0000000000..8df8d597aa
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.0.2.bb
@@ -0,0 +1,4 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-multilib"
diff --git a/packages/gcc/gcc-cross-intermediate_4.1.0.bb b/packages/gcc/gcc-cross-intermediate_4.1.0.bb
new file mode 100644
index 0000000000..3e103aa24e
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.1.0.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.1.1.bb b/packages/gcc/gcc-cross-intermediate_4.1.1.bb
new file mode 100644
index 0000000000..837237e7d4
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.1.1.bb
@@ -0,0 +1,6 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libunwind-exceptions \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.1.2.bb b/packages/gcc/gcc-cross-intermediate_4.1.2.bb
new file mode 100644
index 0000000000..3e103aa24e
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.1.2.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.1.bb b/packages/gcc/gcc-cross-intermediate_4.2.1.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.1.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.2.bb b/packages/gcc/gcc-cross-intermediate_4.2.2.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.2.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.3.bb b/packages/gcc/gcc-cross-intermediate_4.2.3.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.3.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.4.bb b/packages/gcc/gcc-cross-intermediate_4.2.4.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.4.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.3.1.bb b/packages/gcc/gcc-cross-intermediate_4.3.1.bb
new file mode 100644
index 0000000000..b0932f520d
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.3.1.bb
@@ -0,0 +1,14 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+DEPENDS += "gmp-native mpfr-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+ --disable-libgomp \
+ --disable-libssp"
+
+# Hack till we fix *libc properly
+do_stage_append() {
+ ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb
new file mode 100644
index 0000000000..6e9c252e7e
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb
@@ -0,0 +1,2 @@
+require gcc-cross_csl-arm-2005q3.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb
new file mode 100644
index 0000000000..2d4b55f997
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb
@@ -0,0 +1,7 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-2006q1"
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb
new file mode 100644
index 0000000000..114d9831c6
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+ ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb
new file mode 100644
index 0000000000..114d9831c6
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+ ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
diff --git a/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb b/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb
index 9b5a2fed2c..e8051dde22 100644
--- a/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb
@@ -7,7 +7,7 @@ DEFAULT_PREFERENCE = "-1"
require gcc-cross-initial_csl-arm-2005q3.bb
require gcc-cross-kernel.inc
-PR = "r2"
+PR = "r3"
SRC_URI += "file://gcc-3.4.4-makefile-fix.patch;patch=1"
diff --git a/packages/gcc/gcc-cross-kernel.inc b/packages/gcc/gcc-cross-kernel.inc
index 7bca7d2bf5..a567c60119 100644
--- a/packages/gcc/gcc-cross-kernel.inc
+++ b/packages/gcc/gcc-cross-kernel.inc
@@ -11,6 +11,6 @@ do_install () {
do_stage () {
cd gcc
- oe_runmake install-common install-headers install-libgcc
+ oe_runmake installdirs install-common install-headers install-libgcc
install -m 0755 xgcc ${CROSS_DIR}/bin/${TARGET_PREFIX}gcc-${PV}
}
diff --git a/packages/gcc/gcc-cross-sdk_3.3.4.bb b/packages/gcc/gcc-cross-sdk_3.3.4.bb
index 4608733b58..02d860b1f7 100644
--- a/packages/gcc/gcc-cross-sdk_3.3.4.bb
+++ b/packages/gcc/gcc-cross-sdk_3.3.4.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_3.4.3.bb b/packages/gcc/gcc-cross-sdk_3.4.3.bb
index 1a7faa5b8c..c76b5b3c07 100644
--- a/packages/gcc/gcc-cross-sdk_3.4.3.bb
+++ b/packages/gcc/gcc-cross-sdk_3.4.3.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_3.4.4.bb b/packages/gcc/gcc-cross-sdk_3.4.4.bb
index c76b5b3c07..b00c86617d 100644
--- a/packages/gcc/gcc-cross-sdk_3.4.4.bb
+++ b/packages/gcc/gcc-cross-sdk_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
@@ -6,3 +6,9 @@ require gcc-configure-sdk.inc
require gcc-package-sdk.inc
SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1'
+
+do_compile_prepend () {
+ mkdir -p gcc
+ ln -s ${CROSS_DIR}/bin/${TARGET_PREFIX}as gcc/as
+ ln -s ${CROSS_DIR}/bin/${TARGET_PREFIX}ld gcc/ld
+}
diff --git a/packages/gcc/gcc-cross-sdk_4.1.0.bb b/packages/gcc/gcc-cross-sdk_4.1.0.bb
index 8329aac27f..ee769e034e 100644
--- a/packages/gcc/gcc-cross-sdk_4.1.0.bb
+++ b/packages/gcc/gcc-cross-sdk_4.1.0.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_4.1.1.bb b/packages/gcc/gcc-cross-sdk_4.1.1.bb
index 5caec0b5a5..6b6097fb00 100644
--- a/packages/gcc/gcc-cross-sdk_4.1.1.bb
+++ b/packages/gcc/gcc-cross-sdk_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_4.1.2.bb b/packages/gcc/gcc-cross-sdk_4.1.2.bb
index 51b99f882a..c632169f23 100644
--- a/packages/gcc/gcc-cross-sdk_4.1.2.bb
+++ b/packages/gcc/gcc-cross-sdk_4.1.2.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_4.2.2.bb b/packages/gcc/gcc-cross-sdk_4.2.2.bb
index 8057608e0d..ee4ce855af 100644
--- a/packages/gcc/gcc-cross-sdk_4.2.2.bb
+++ b/packages/gcc/gcc-cross-sdk_4.2.2.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_4.2.3.bb b/packages/gcc/gcc-cross-sdk_4.2.3.bb
index 54e7453e69..8057608e0d 100644
--- a/packages/gcc/gcc-cross-sdk_4.2.3.bb
+++ b/packages/gcc/gcc-cross-sdk_4.2.3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_4.2.4.bb b/packages/gcc/gcc-cross-sdk_4.2.4.bb
index 29ee187785..7f3e1466ce 100644
--- a/packages/gcc/gcc-cross-sdk_4.2.4.bb
+++ b/packages/gcc/gcc-cross-sdk_4.2.4.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_4.3.1.bb b/packages/gcc/gcc-cross-sdk_4.3.1.bb
index 8057608e0d..ee4ce855af 100644
--- a/packages/gcc/gcc-cross-sdk_4.3.1.bb
+++ b/packages/gcc/gcc-cross-sdk_4.3.1.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
inherit sdk
diff --git a/packages/gcc/gcc-cross_3.3.3.bb b/packages/gcc/gcc-cross_3.3.3.bb
index 781214f815..38488642fd 100644
--- a/packages/gcc/gcc-cross_3.3.3.bb
+++ b/packages/gcc/gcc-cross_3.3.3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_3.3.4.bb b/packages/gcc/gcc-cross_3.3.4.bb
index bfc37e436c..7b7e51bc45 100644
--- a/packages/gcc/gcc-cross_3.3.4.bb
+++ b/packages/gcc/gcc-cross_3.3.4.bb
@@ -1,4 +1,4 @@
-PR="r7"
+PR="r8"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_3.4.3.bb b/packages/gcc/gcc-cross_3.4.3.bb
index 8a2aa6a2bd..271509b32e 100644
--- a/packages/gcc/gcc-cross_3.4.3.bb
+++ b/packages/gcc/gcc-cross_3.4.3.bb
@@ -1,4 +1,4 @@
-PR = "r15"
+PR = "r16"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_3.4.4.bb b/packages/gcc/gcc-cross_3.4.4.bb
index c7a4cfe857..515b41628c 100644
--- a/packages/gcc/gcc-cross_3.4.4.bb
+++ b/packages/gcc/gcc-cross_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r10"
+PR = "r11"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_4.0.0.bb b/packages/gcc/gcc-cross_4.0.0.bb
index ab990e2f80..dd3fbbc000 100644
--- a/packages/gcc/gcc-cross_4.0.0.bb
+++ b/packages/gcc/gcc-cross_4.0.0.bb
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r7"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.0.2.bb b/packages/gcc/gcc-cross_4.0.2.bb
index ddecddb34a..bb4c6f0366 100644
--- a/packages/gcc/gcc-cross_4.0.2.bb
+++ b/packages/gcc/gcc-cross_4.0.2.bb
@@ -1,4 +1,4 @@
-PR = "r12"
+PR = "r13"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.1.0.bb b/packages/gcc/gcc-cross_4.1.0.bb
index ad73dc7cb0..33042da5a2 100644
--- a/packages/gcc/gcc-cross_4.1.0.bb
+++ b/packages/gcc/gcc-cross_4.1.0.bb
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r7"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.1.1.bb b/packages/gcc/gcc-cross_4.1.1.bb
index dafa5fa79d..da797597d7 100644
--- a/packages/gcc/gcc-cross_4.1.1.bb
+++ b/packages/gcc/gcc-cross_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r21"
+PR = "r22"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.1.2.bb b/packages/gcc/gcc-cross_4.1.2.bb
index c9e3279ffc..b3c6437467 100644
--- a/packages/gcc/gcc-cross_4.1.2.bb
+++ b/packages/gcc/gcc-cross_4.1.2.bb
@@ -1,4 +1,4 @@
-PR = "r17"
+PR = "r18"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.1.bb b/packages/gcc/gcc-cross_4.2.1.bb
index ece545b049..5986fad253 100644
--- a/packages/gcc/gcc-cross_4.2.1.bb
+++ b/packages/gcc/gcc-cross_4.2.1.bb
@@ -1,4 +1,4 @@
-PR = "r17"
+PR = "r18"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.2.bb b/packages/gcc/gcc-cross_4.2.2.bb
index 38a69aafc3..fe25ae2857 100644
--- a/packages/gcc/gcc-cross_4.2.2.bb
+++ b/packages/gcc/gcc-cross_4.2.2.bb
@@ -1,4 +1,4 @@
-PR = "r11"
+PR = "r12"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.3.bb b/packages/gcc/gcc-cross_4.2.3.bb
index 72f72835c3..4149179d8e 100644
--- a/packages/gcc/gcc-cross_4.2.3.bb
+++ b/packages/gcc/gcc-cross_4.2.3.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.4.bb b/packages/gcc/gcc-cross_4.2.4.bb
index 036ebd96b0..e07143d0d8 100644
--- a/packages/gcc/gcc-cross_4.2.4.bb
+++ b/packages/gcc/gcc-cross_4.2.4.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.3.1.bb b/packages/gcc/gcc-cross_4.3.1.bb
index 066fa32b86..5383079904 100644
--- a/packages/gcc/gcc-cross_4.3.1.bb
+++ b/packages/gcc/gcc-cross_4.3.1.bb
@@ -1,4 +1,4 @@
-PR = "r8"
+PR = "r9"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2005q3.bb b/packages/gcc/gcc-cross_csl-arm-2005q3.bb
index 8726500ce2..858459c026 100644
--- a/packages/gcc/gcc-cross_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2005q3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-csl-arm-2005q3.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2006q1.bb b/packages/gcc/gcc-cross_csl-arm-2006q1.bb
index 45ace68af9..a8c662e462 100644
--- a/packages/gcc/gcc-cross_csl-arm-2006q1.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2006q1.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-csl-arm-2006q1.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2007q3.bb b/packages/gcc/gcc-cross_csl-arm-2007q3.bb
index 295353a0f8..6ae42784cb 100644
--- a/packages/gcc/gcc-cross_csl-arm-2007q3.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2007q3.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
require gcc-csl-arm-2007q3.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2008q1.bb b/packages/gcc/gcc-cross_csl-arm-2008q1.bb
index 01b5bdacc4..69127daea6 100644
--- a/packages/gcc/gcc-cross_csl-arm-2008q1.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2008q1.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
require gcc-csl-arm-2008q1.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-native_3.4.4.bb b/packages/gcc/gcc-native_3.4.4.bb
index 6f74a1ea46..5f39f1bbb3 100644
--- a/packages/gcc/gcc-native_3.4.4.bb
+++ b/packages/gcc/gcc-native_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc-native_3.4.6.bb b/packages/gcc/gcc-native_3.4.6.bb
index 5f39f1bbb3..c3f8106d3a 100644
--- a/packages/gcc/gcc-native_3.4.6.bb
+++ b/packages/gcc/gcc-native_3.4.6.bb
@@ -1,4 +1,4 @@
-PR = "r8"
+PR = "r9"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.3.3.bb b/packages/gcc/gcc_3.3.3.bb
index 2df12ef9ef..9fd2b0acc3 100644
--- a/packages/gcc/gcc_3.3.3.bb
+++ b/packages/gcc/gcc_3.3.3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.3.4.bb b/packages/gcc/gcc_3.3.4.bb
index 2df12ef9ef..9fd2b0acc3 100644
--- a/packages/gcc/gcc_3.3.4.bb
+++ b/packages/gcc/gcc_3.3.4.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.4.3.bb b/packages/gcc/gcc_3.4.3.bb
index 0f31362dc1..10d868893b 100644
--- a/packages/gcc/gcc_3.4.3.bb
+++ b/packages/gcc/gcc_3.4.3.bb
@@ -1,4 +1,4 @@
-PR = "r15"
+PR = "r16"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.4.4.bb b/packages/gcc/gcc_3.4.4.bb
index 7ec84b6012..5bc3761068 100644
--- a/packages/gcc/gcc_3.4.4.bb
+++ b/packages/gcc/gcc_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.0.0.bb b/packages/gcc/gcc_4.0.0.bb
index 9fd2b0acc3..1bbab50930 100644
--- a/packages/gcc/gcc_4.0.0.bb
+++ b/packages/gcc/gcc_4.0.0.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.0.2.bb b/packages/gcc/gcc_4.0.2.bb
index 7ec84b6012..5bc3761068 100644
--- a/packages/gcc/gcc_4.0.2.bb
+++ b/packages/gcc/gcc_4.0.2.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.1.0.bb b/packages/gcc/gcc_4.1.0.bb
index 9fd2b0acc3..1bbab50930 100644
--- a/packages/gcc/gcc_4.1.0.bb
+++ b/packages/gcc/gcc_4.1.0.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.1.1.bb b/packages/gcc/gcc_4.1.1.bb
index 9e23eb8af7..6ba5972fc1 100644
--- a/packages/gcc/gcc_4.1.1.bb
+++ b/packages/gcc/gcc_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r21"
+PR = "r22"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.1.2.bb b/packages/gcc/gcc_4.1.2.bb
index a8c8b71648..dd88ccdc27 100644
--- a/packages/gcc/gcc_4.1.2.bb
+++ b/packages/gcc/gcc_4.1.2.bb
@@ -1,4 +1,4 @@
-PR = "r13"
+PR = "r14"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.1.bb b/packages/gcc/gcc_4.2.1.bb
index da1ecb9b17..a8c8b71648 100644
--- a/packages/gcc/gcc_4.2.1.bb
+++ b/packages/gcc/gcc_4.2.1.bb
@@ -1,4 +1,4 @@
-PR = "r12"
+PR = "r13"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.2.bb b/packages/gcc/gcc_4.2.2.bb
index ca22e0f69c..582fff49ac 100644
--- a/packages/gcc/gcc_4.2.2.bb
+++ b/packages/gcc/gcc_4.2.2.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.3.bb b/packages/gcc/gcc_4.2.3.bb
index 556fc74267..a2ae0c0e92 100644
--- a/packages/gcc/gcc_4.2.3.bb
+++ b/packages/gcc/gcc_4.2.3.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.4.bb b/packages/gcc/gcc_4.2.4.bb
index ff100fd892..43fa3a9ebc 100644
--- a/packages/gcc/gcc_4.2.4.bb
+++ b/packages/gcc/gcc_4.2.4.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.3.1.bb b/packages/gcc/gcc_4.3.1.bb
index 318ccd3775..c51d537d2d 100644
--- a/packages/gcc/gcc_4.3.1.bb
+++ b/packages/gcc/gcc_4.3.1.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2005q3.bb b/packages/gcc/gcc_csl-arm-2005q3.bb
index 9fd2b0acc3..1bbab50930 100644
--- a/packages/gcc/gcc_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc_csl-arm-2005q3.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2006q1.bb b/packages/gcc/gcc_csl-arm-2006q1.bb
index cc7540af15..2df12ef9ef 100644
--- a/packages/gcc/gcc_csl-arm-2006q1.bb
+++ b/packages/gcc/gcc_csl-arm-2006q1.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2007q3.bb b/packages/gcc/gcc_csl-arm-2007q3.bb
index 4999c6a53e..cc7540af15 100644
--- a/packages/gcc/gcc_csl-arm-2007q3.bb
+++ b/packages/gcc/gcc_csl-arm-2007q3.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2008q1.bb b/packages/gcc/gcc_csl-arm-2008q1.bb
index 832167ca4e..4999c6a53e 100644
--- a/packages/gcc/gcc_csl-arm-2008q1.bb
+++ b/packages/gcc/gcc_csl-arm-2008q1.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch b/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
new file mode 100644
index 0000000000..6979229279
--- /dev/null
+++ b/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
@@ -0,0 +1,30 @@
+Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html
+
+I am checking this x86 assembler patch:
+
+http://sourceware.org/ml/binutils/2008-01/msg00148.html
+
+to check operand size. fnstsw stores 16bit into %ax. The upper
+16bit of %eax is unchanged. The new assembler will disallow
+"fnstsw %eax". Here is a patch for glibc.
+
+
+H.J.
+
+---
+ sysdeps/i386/fpu/ftestexcept.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c
+===================================================================
+--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:00:45.000000000 -0700
++++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:01:25.000000000 -0700
+@@ -26,7 +26,7 @@
+ int
+ fetestexcept (int excepts)
+ {
+- int temp;
++ short temp;
+ int xtemp = 0;
+
+ /* Get current exceptions. */
diff --git a/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch b/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch
new file mode 100644
index 0000000000..dae5db3846
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch
@@ -0,0 +1,37 @@
+--- glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c.org 2008-07-16 22:57:58.000000000 -0700
++++ glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2008-07-16 22:58:26.000000000 -0700
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991, 1996, 2002, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1991, 1996, 2002, 2003, 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -18,10 +18,13 @@
+
+ #include <signal.h>
+ #include <unistd.h>
+-#include <bits/libc-lock.h>
+
+-#ifndef SHARED
++#ifndef IS_IN_rtld
++# include <bits/libc-lock.h>
++
++# ifndef SHARED
+ weak_extern (__pthread_raise)
++# endif
+ #endif
+
+ /* Raise the signal SIG. */
+@@ -29,8 +32,12 @@ int
+ raise (sig)
+ int sig;
+ {
++#ifdef IS_IN_rtld
++ return __kill (__getpid (), sig);
++#else
+ return __libc_maybe_call2 (pthread_raise, (sig),
+ __kill (__getpid (), sig));
++#endif
+ }
+ libc_hidden_def (raise)
+ weak_alias (raise, gsignal)
diff --git a/packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch b/packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch
new file mode 100644
index 0000000000..722365f122
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch
@@ -0,0 +1,45 @@
+This one was taken from debian.
+
+# DP: Description: Fix __bind redefinition problem
+# DP: Related bugs:
+# DP: Dpatch author: Phil Blundell
+# DP: Patch author: Daniel Jacobowitz
+# DP: Upstream status: In CVS
+# DP: Status Details:
+# DP: Date: 2005-12-25
+
+Index: sysdeps/unix/sysv/linux/arm/socket.S
+===================================================================
+RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/arm/socket.S,v
+retrieving revision 1.12
+retrieving revision 1.13
+diff -u -r1.12 -r1.13
+--- glibc-2.3.6.ds1.orig/sysdeps/unix/sysv/linux/arm/socket.S 4 Dec 2004 21:20:16 -0000 1.12
++++ glibc-2.3.6.ds1/sysdeps/unix/sysv/linux/arm/socket.S 27 Oct 2005 18:50:12 -0000 1.13
+@@ -1,4 +1,6 @@
+-/* Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2004, 2005
++ Free Software Foundation, Inc.
++
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -32,7 +34,11 @@
+ The .S files for the other calls just #define socket and #include this. */
+
+ #ifndef __socket
++#ifndef NO_WEAK_ALIAS
+ #define __socket P(__,socket)
++#else
++#define __socket socket
++#endif
+ #endif
+
+ #define PUSHARGS_1 str a1, [sp, $-4]!
+@@ -120,4 +126,6 @@
+
+ PSEUDO_END (__socket)
+
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
diff --git a/packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch b/packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch
new file mode 100644
index 0000000000..8e24a831b0
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch
@@ -0,0 +1,79 @@
+Fix rpcsvc headers missing from glibc, also
+allows glibc to produce the rpc headers when cross compiling,
+And fix for glibc-bootstrap package doesn't currently build because the
+generated sunrpc headers are not available
+
+
+---
+ sunrpc/Makefile | 28 ++++++++++++++++++++++++----
+ 1 file changed, 24 insertions(+), 4 deletions(-)
+
+Index: glibc-2.3.6/sunrpc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/sunrpc/Makefile 2005-07-17 20:03:49.000000000 -0700
++++ glibc-2.3.6/sunrpc/Makefile 2008-07-17 15:28:04.000000000 -0700
+@@ -75,6 +75,8 @@ install-sbin := rpcinfo
+ rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
+ rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \
+ rpc_tblout.o rpc_sample.o
++host-rpcgen-objs = $(addprefix host-,$(rpcgen-objs))
++
+ # These headers are part of rpcgen.
+ distribute := proto.h rpc_util.h rpc_parse.h rpc_scan.h \
+ $(rpcgen-objs:.o=.c) etc.rpc \
+@@ -98,8 +100,8 @@ otherlibs += $(nssobjdir)/libnss_files.a
+ $(resolvobjdir)/libresolv.a
+ endif
+
+-ifeq (no,$(cross-compiling))
+-# We can only build this library if we can run the rpcgen we build.
++ifneq (,$(findstring subdir_install,$(MAKECMDGOALS)))
++## We can only build this library if we can run the rpcgen we build.
+ headers += $(rpcsvc:%.x=rpcsvc/%.h)
+ extra-libs := librpcsvc
+ extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass.
+@@ -144,8 +146,26 @@ cpp-srcs-left := $(rpcgen-objs:.o=.c)
+ lib := nonlib
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+
++# Rely on the target rpcgen objects for dependency information.
++$(objpfx)host-%.o: %.c $(objpfx)%.o
++ $(patsubst %/,cd % &&,$(objpfx)) \
++ $(BUILD_CC) $($(basename $(<F))-CFLAGS) \
++ -I$(shell cd .. && pwd) \
++ -Dattribute_hidden= \
++ -include $(shell cd ../include && pwd)/libintl.h \
++ -O2 $(ALL_BUILD_CFLAGS) $(shell pwd)/$(<F) -c -o $(@F)
++
++$(objpfx)host-rpcgen: $(addprefix $(objpfx),$(host-rpcgen-objs))
++ $(BUILD_CC) $(BUILD_CFLAGS) $+ -o $(objpfx)host-rpcgen
++
+ # Tell rpcgen where to find the C preprocessor.
++ifeq ($(cross-compiling),no)
+ rpcgen-cmd = CPP='$(CC) -E -x c-header' $(built-program-cmd) -Y ../scripts
++rpcgen-prog = $(objpfx)rpcgen
++else
++rpcgen-cmd = CPP='$(CC) -E -x c-header' $(objpfx)host-rpcgen -Y ../scripts
++rpcgen-prog = $(objpfx)host-rpcgen
++endif
+
+ # Install the rpc data base file.
+ $(inst_sysconfdir)/rpc: etc.rpc $(+force)
+@@ -156,7 +176,7 @@ $(inst_sysconfdir)/rpc: etc.rpc $(+force
+ # relinked.
+ $(rpcsvc:%.x=$(objpfx)rpcsvc/%.h): $(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp
+ @:
+-$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ $(make-target-directory)
+ -@rm -f ${@:stmp=T} $@
+ $(rpcgen-cmd) -h $< -o ${@:stmp=T}
+@@ -166,7 +186,7 @@ $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(obj
+ # Generate the rpcsvc XDR functions with rpcgen.
+ $(rpcsvc:%.x=$(objpfx)x%.c): $(objpfx)x%.c: $(objpfx)x%.stmp
+ @:
+-$(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)x%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ -@rm -f ${@:stmp=T} $@
+ $(rpcgen-cmd) -c $< -o ${@:stmp=T}
+ $(move-if-change) $(@:stmp=T) $(@:stmp=c)
diff --git a/packages/glibc/glibc-2.3.6/glibc-memusage.patch b/packages/glibc/glibc-2.3.6/glibc-memusage.patch
new file mode 100644
index 0000000000..39ca1a77b5
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-memusage.patch
@@ -0,0 +1,44 @@
+---
+ malloc/Makefile | 4 +++-
+ malloc/memusage.sh | 6 ++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/malloc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/malloc/Makefile 2008-07-17 14:40:54.000000000 -0700
++++ glibc-2.3.6/malloc/Makefile 2008-07-17 14:42:07.000000000 -0700
+@@ -80,7 +80,7 @@ ifneq ($(cross-compiling),yes)
+ ifneq ($(LIBGD),no)
+ install-bin = memusagestat
+ install-bin-script += memusage
+-generated += memusagestat memusage
++generated += memusagestat
+ extra-objs += memusagestat.o
+
+ # The configure.in check for libgd and its headers did not use $SYSINCLUDES.
+@@ -90,6 +90,8 @@ extra-objs += memusagestat.o
+ $(objpfx)memusagestat.o: sysincludes = # nothing
+ endif
+ endif
++install-bin-script += memusage
++generated += memusage
+
+ # Another goal which can be used to override the configure decision.
+ .PHONY: do-memusagestat
+Index: glibc-2.3.6/malloc/memusage.sh
+===================================================================
+--- glibc-2.3.6.orig/malloc/memusage.sh 2008-07-17 14:42:17.000000000 -0700
++++ glibc-2.3.6/malloc/memusage.sh 2008-07-17 14:42:54.000000000 -0700
+@@ -205,6 +205,12 @@ if test $# -eq 0; then
+ do_usage
+ fi
+
++# Find memusagestat.
++if test -n "$png" -a ! -x $memusagestat; then
++ echo >&2 $"PNG generation is not supported."
++ png=""
++fi
++
+ # This will be in the environment.
+ add_env="LD_PRELOAD=$memusageso"
+
diff --git a/packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch b/packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch
new file mode 100644
index 0000000000..a3658f4cd6
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch
@@ -0,0 +1,25 @@
+---
+ elf/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/elf/Makefile
+===================================================================
+--- glibc-2.3.6.orig/elf/Makefile 2008-07-17 01:10:39.000000000 -0700
++++ glibc-2.3.6/elf/Makefile 2008-07-17 01:17:18.000000000 -0700
+@@ -279,7 +279,7 @@ $(objpfx)rtld-libc.a: $(objpfx)librtld.m
+ $(MAKE) -f $< -f rtld-Rules
+
+ $(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a
+- $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' \
++ $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc -lgcc_eh '-Wl,-)' \
+ -Wl,-Map,$@.map
+
+ generated += librtld.map librtld.mk rtld-libc.a librtld.os.map
+@@ -295,6 +295,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld
+ -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+ > $@.lds
+ $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
++ -lgcc -lgcc_eh \
+ $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \
+ $(filter-out $(map-file),$^) $(load-map-file) \
+ -Wl,-soname=$(rtld-installed-name) -T $@.lds
diff --git a/packages/gpe-login/gpe-login-0.88/.mtn2git_empty b/packages/glibc/glibc-2.7/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/gpe-login/gpe-login-0.88/.mtn2git_empty
+++ b/packages/glibc/glibc-2.7/.mtn2git_empty
diff --git a/packages/glibc/glibc-2.7/all_glibc-i586-chk.patch b/packages/glibc/glibc-2.7/all_glibc-i586-chk.patch
new file mode 100644
index 0000000000..9362bcaf17
--- /dev/null
+++ b/packages/glibc/glibc-2.7/all_glibc-i586-chk.patch
@@ -0,0 +1,33 @@
+http://bugs.gentoo.org/199479
+
+2007-09-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i586/memcpy_chk.S: New file.
+ * sysdeps/i386/i586/mempcpy_chk.S: Likewise.
+ * sysdeps/i386/i586/memset_chk.S: Likewise.
+
+Index: glibc/sysdeps/i386/i586/memcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memcpy_chk.S
+diff -N sysdeps/i386/i586/memcpy_chk.S
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memcpy_chk.S 13 Nov 2007 01:56:18 -0000 1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/mempcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/mempcpy_chk.S
+diff -N sysdeps/i386/i586/mempcpy_chk.S
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/mempcpy_chk.S 13 Nov 2007 01:56:18 -0000 1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/mempcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/memset_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memset_chk.S
+diff -N sysdeps/i386/i586/memset_chk.S
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memset_chk.S 13 Nov 2007 01:56:18 -0000 1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memset_chk.S>
+
diff --git a/packages/glibc/glibc-initial.inc b/packages/glibc/glibc-initial.inc
index 0e5db2e729..143a662d52 100644
--- a/packages/glibc/glibc-initial.inc
+++ b/packages/glibc/glibc-initial.inc
@@ -1,5 +1,5 @@
SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial 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)}"
@@ -9,7 +9,8 @@ PACKAGES_DYNAMIC = ""
do_configure () {
sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
chmod +x ${S}/configure
- CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+ find ${S} -name "configure" | xargs touch
+ ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
--without-cvs --disable-sanity-checks \
--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
--enable-hacker-mode
@@ -30,8 +31,11 @@ do_compile () {
}
do_stage () {
- oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+ oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
+ includedir='${layout_includedir}' prefix='${layout_prefix}' \
+ install-bootstrap-headers=yes install-headers
+ oe_runmake csu/subdir_lib
# 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
@@ -42,6 +46,10 @@ do_stage () {
if [ -e ${B}/bits/stdio_lim.h ]; then
cp ${B}/bits/stdio_lim.h ${STAGING_INCDIR}/bits/
fi
+ mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+ install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
}
do_install () {
diff --git a/packages/glibc/glibc-initial_2.5.bb b/packages/glibc/glibc-initial_2.5.bb
index 44f5775fd7..35c9febcce 100644
--- a/packages/glibc/glibc-initial_2.5.bb
+++ b/packages/glibc/glibc-initial_2.5.bb
@@ -5,7 +5,7 @@ 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} \
+ ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
--without-cvs --disable-sanity-checks \
--with-headers=${STAGING_INCDIR} \
--enable-hacker-mode
diff --git a/packages/glibc/glibc-intermediate.inc b/packages/glibc/glibc-intermediate.inc
deleted file mode 100644
index c226d8658d..0000000000
--- a/packages/glibc/glibc-intermediate.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SECTION = "libs"
-PACKAGES = ""
-PACKAGES_DYNAMIC = ""
-PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc"
-DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
-
-do_install () {
- :
-}
-
-GLIBC_ADDONS = "nptl,ports"
-GLIBC_EXTRA_OECONF = ""
diff --git a/packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb b/packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb
deleted file mode 100644
index aba5ac0451..0000000000
--- a/packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-DEFAULT_PREFERENCE_sh3 = "-99"
-
-GLIBC_ADDONS = "linuxthreads"
diff --git a/packages/glibc/glibc-intermediate_2.3.6.bb b/packages/glibc/glibc-intermediate_2.3.6.bb
deleted file mode 100644
index f7113ba04c..0000000000
--- a/packages/glibc/glibc-intermediate_2.3.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
diff --git a/packages/glibc/glibc-intermediate_2.4.bb b/packages/glibc/glibc-intermediate_2.4.bb
deleted file mode 100644
index e1c7ecfbd1..0000000000
--- a/packages/glibc/glibc-intermediate_2.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-DEFAULT_PREFERENCE = "-1"
diff --git a/packages/glibc/glibc-intermediate_2.5.bb b/packages/glibc/glibc-intermediate_2.5.bb
deleted file mode 100644
index 661a69a10d..0000000000
--- a/packages/glibc/glibc-intermediate_2.5.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- sed -i s:-Werror:: ${S}/configure
-}
diff --git a/packages/glibc/glibc-intermediate_2.6.1.bb b/packages/glibc/glibc-intermediate_2.6.1.bb
deleted file mode 100644
index 05d6250783..0000000000
--- a/packages/glibc/glibc-intermediate_2.6.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- sed -i s:-Werror:: ${S}/configure
-}
-
diff --git a/packages/glibc/glibc-intermediate_2.7.bb b/packages/glibc/glibc-intermediate_2.7.bb
deleted file mode 100644
index 05d6250783..0000000000
--- a/packages/glibc/glibc-intermediate_2.7.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- sed -i s:-Werror:: ${S}/configure
-}
-
diff --git a/packages/glibc/glibc-intermediate_cvs.bb b/packages/glibc/glibc-intermediate_cvs.bb
deleted file mode 100644
index ad615a1911..0000000000
--- a/packages/glibc/glibc-intermediate_cvs.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-DEFAULT_PREFERENCE = "-1"
-
-GLIBC_ADDONS = "linuxthreads"
diff --git a/packages/glibc/glibc-stage.inc b/packages/glibc/glibc-stage.inc
index 46220d7831..2b7b303c14 100644
--- a/packages/glibc/glibc-stage.inc
+++ b/packages/glibc/glibc-stage.inc
@@ -3,7 +3,7 @@ do_stage() {
oe_runmake 'install_root=${STAGING_DIR_HOST}' \
'includedir=${layout_includedir}' 'libdir=${layout_libdir}' 'slibdir=${layout_base_libdir}' \
'${STAGING_DIR_HOST}${layout_base_libdir}/libc.so.6' \
- install-headers install-lib
+ install
install -d ${STAGING_INCDIR}/gnu \
${STAGING_INCDIR}/bits \
@@ -15,9 +15,4 @@ do_stage() {
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_DIR_HOST}/${layout_libdir}/ || die "failed to install $i"
- done
- echo 'GROUP ( ${layout_base_libdir}/libpthread.so.0 ${layout_libdir}/libpthread_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libpthread.so
- echo 'GROUP ( ${layout_base_libdir}/libc.so.6 ${layout_libdir}/libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libc.so
}
diff --git a/packages/glibc/glibc.inc b/packages/glibc/glibc.inc
index c8d2d3b16f..e8d56c2a42 100644
--- a/packages/glibc/glibc.inc
+++ b/packages/glibc/glibc.inc
@@ -4,12 +4,12 @@ SECTION = "libs"
PRIORITY = "required"
LICENSE = "LGPL"
# nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
#this leads to circular deps, so lets not add it yet
#RDEPENDS_ldd += " bash"
# nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+RRECOMMENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES += "virtual/libintl virtual/libiconv"
inherit autotools
diff --git a/packages/glibc/glibc_2.2.5.bb b/packages/glibc/glibc_2.2.5.bb
index 4a94dac5b7..2d37d5cf7f 100644
--- a/packages/glibc/glibc_2.2.5.bb
+++ b/packages/glibc/glibc_2.2.5.bb
@@ -1,7 +1,7 @@
require glibc.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r15"
+PR = "r17"
DEFAULT_PREFERENCE_sh3 = "-99"
diff --git a/packages/glibc/glibc_2.3.2+cvs20040726.bb b/packages/glibc/glibc_2.3.2+cvs20040726.bb
index 8beed8e8dc..7bb7cf5e43 100644
--- a/packages/glibc/glibc_2.3.2+cvs20040726.bb
+++ b/packages/glibc/glibc_2.3.2+cvs20040726.bb
@@ -3,7 +3,7 @@ require glibc.inc
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r26"
+PR = "r28"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.2.bb b/packages/glibc/glibc_2.3.2.bb
index fc06794e61..22fa33ec44 100644
--- a/packages/glibc/glibc_2.3.2.bb
+++ b/packages/glibc/glibc_2.3.2.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r15"
+PR = "r17"
DEFAULT_PREFERENCE_sh3 = "-99"
diff --git a/packages/glibc/glibc_2.3.3+cvs20041128.bb b/packages/glibc/glibc_2.3.3+cvs20041128.bb
index 4c9b3dce94..89dd366c86 100644
--- a/packages/glibc/glibc_2.3.3+cvs20041128.bb
+++ b/packages/glibc/glibc_2.3.3+cvs20041128.bb
@@ -3,7 +3,7 @@ require glibc.inc
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r11"
+PR = "r13"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.3+cvs20050221.bb b/packages/glibc/glibc_2.3.3+cvs20050221.bb
index 4517adedcc..3d21504842 100644
--- a/packages/glibc/glibc_2.3.3+cvs20050221.bb
+++ b/packages/glibc/glibc_2.3.3+cvs20050221.bb
@@ -3,7 +3,7 @@ require glibc.inc
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r11"
+PR = "r13"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.3+cvs20050420.bb b/packages/glibc/glibc_2.3.3+cvs20050420.bb
index b1a5d66b17..fdb9ad1519 100644
--- a/packages/glibc/glibc_2.3.3+cvs20050420.bb
+++ b/packages/glibc/glibc_2.3.3+cvs20050420.bb
@@ -5,7 +5,7 @@ DEFAULT_PREFERENCE_i586 = "0"
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r9"
+PR = "r11"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.3.bb b/packages/glibc/glibc_2.3.3.bb
index 510709aba9..1b527fbc10 100644
--- a/packages/glibc/glibc_2.3.3.bb
+++ b/packages/glibc/glibc_2.3.3.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r12"
+PR = "r14"
DEFAULT_PREFERENCE_sh3 = "-99"
diff --git a/packages/glibc/glibc_2.3.5+cvs20050627.bb b/packages/glibc/glibc_2.3.5+cvs20050627.bb
index d0a396d465..e00836b7be 100644
--- a/packages/glibc/glibc_2.3.5+cvs20050627.bb
+++ b/packages/glibc/glibc_2.3.5+cvs20050627.bb
@@ -2,7 +2,7 @@ require glibc.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
SRCDATE = "20050627"
-PR = "r18"
+PR = "r20"
#Doesnt build for sh3
DEFAULT_PREFERENCE_sh3="-1"
diff --git a/packages/glibc/glibc_2.3.6.bb b/packages/glibc/glibc_2.3.6.bb
index 4519be9d03..31a06de9cd 100644
--- a/packages/glibc/glibc_2.3.6.bb
+++ b/packages/glibc/glibc_2.3.6.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r0"
+PR = "r2"
#FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.3.6', '${FILE_DIRNAME}/orig/glibc', '${FILE_DIRNAME}/orig/files', '${FILE_DIRNAME}/orig' ], d)}"
@@ -19,13 +19,16 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
${CROSSTOOL_PATCH_URL}glibc-2.3.6-fix-pr631.patch;patch=1 \
${CROSSTOOL_PATCH_URL}glibc-fp-byteorder.patch;patch=1 \
${CROSSTOOL_PATCH_URL}glibc-mips-bootstrap-gcc-header-install.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}arm-ctl_bus_isa.patch;patch=1 \
${CROSSTOOL_PATCH_URL}make-install-lib-all.patch;patch=1 \
${CROSSTOOL_PATCH_URL}maybe/glibc-2.3.6-allow-gcc-4.0-powerpc32.patch;patch=1 \
file://glibc-2.3.6-bind-already-defined-on-powerpc.patch;patch=1 \
file://glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
file://glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
- file://late-install-loop-break.patch \
- \
+ file://late-install-loop-break.patch;patch=1 \
+ file://glibc-arm-socket-weakalias.patch;patch=1 \
+ file://glibc-2.3.6-linuxthreads-pthread-raise.patch;patch=1 \
+ file://glibc-cross_sunrpc.patch;patch=1 \
file://etc/ld.so.conf \
file://generate-supported.mk"
@@ -60,7 +63,7 @@ do_configure () {
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
- CPPFLAGS="" oe_runconf
+ CPPFLAGS="" libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
diff --git a/packages/glibc/glibc_2.4.bb b/packages/glibc/glibc_2.4.bb
index 1112486c50..62a4e36768 100644
--- a/packages/glibc/glibc_2.4.bb
+++ b/packages/glibc/glibc_2.4.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r16"
+PR = "r18"
#add the hosts that are confirmed to be working to COMPATIBLE_HOSTi
COMPATIBLE_HOST = '(i.86.*-linux|sh.*-linux)'
diff --git a/packages/glibc/glibc_2.5.bb b/packages/glibc/glibc_2.5.bb
index 6df70076b8..c58561a679 100644
--- a/packages/glibc/glibc_2.5.bb
+++ b/packages/glibc/glibc_2.5.bb
@@ -1,5 +1,5 @@
require glibc.inc
-PR = "r13"
+PR = "r15"
ARM_INSTRUCTION_SET = "arm"
@@ -48,6 +48,7 @@ SRC_URI = "\
file://glibc-check_pf.patch;patch=1;pnum=0 \
file://zecke-sane-readelf.patch;patch=1 \
file://ldd-unbash.patch;patch=1 \
+ file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
diff --git a/packages/glibc/glibc_2.6.1.bb b/packages/glibc/glibc_2.6.1.bb
index 8ee658c286..8d38c4890d 100644
--- a/packages/glibc/glibc_2.6.1.bb
+++ b/packages/glibc/glibc_2.6.1.bb
@@ -1,5 +1,5 @@
require glibc.inc
-PR = "r7"
+PR = "r9"
ARM_INSTRUCTION_SET = "arm"
@@ -56,6 +56,7 @@ SRC_URI = "\
file://etc/ld.so.conf \
file://generate-supported.mk \
file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \
+ file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
"
# Build fails on sh3 and sh4 without additional patches
diff --git a/packages/glibc/glibc_2.7.bb b/packages/glibc/glibc_2.7.bb
index 760883c4b6..8c82203024 100644
--- a/packages/glibc/glibc_2.7.bb
+++ b/packages/glibc/glibc_2.7.bb
@@ -5,14 +5,14 @@ ARM_INSTRUCTION_SET = "arm"
PACKAGES_DYNAMIC = "libc6*"
RPROVIDES_${PN}-dev = "libc6-dev"
-PR = "r3"
+PR = "r5"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
GLIBC_ADDONS ?= "ports,nptl,libidn"
@@ -58,6 +58,8 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
# file://zecke-sane-readelf.patch;patch=1 \
file://ldd-unbash.patch;patch=1 \
file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
+ file://all_glibc-i586-chk.patch;patch=1 \
+ file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
diff --git a/packages/glibc/glibc_cvs.bb b/packages/glibc/glibc_cvs.bb
index e5832e1f12..14de0300cf 100644
--- a/packages/glibc/glibc_cvs.bb
+++ b/packages/glibc/glibc_cvs.bb
@@ -1,7 +1,7 @@
require glibc.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
-PR = "r8"
+PR = "r10"
PV = "2.3.5+cvs${SRCDATE}"
GLIBC_ADDONS ?= "ports,linuxthreads"
diff --git a/packages/gpe-login/gpe-login-0.86/chvt-keylaunch.patch b/packages/gpe-login/gpe-login-0.86/chvt-keylaunch.patch
deleted file mode 100644
index 5e62a1107e..0000000000
--- a/packages/gpe-login/gpe-login-0.86/chvt-keylaunch.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- gpe-login-0.86/gpe-login.keylaunchrc.orig 2006-05-28 20:38:39.846547024 +0200
-+++ gpe-login-0.86/gpe-login.keylaunchrc 2006-05-28 20:38:56.800969560 +0200
-@@ -1,3 +1,8 @@
- 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.87/chvt-keylaunch.patch b/packages/gpe-login/gpe-login-0.87/chvt-keylaunch.patch
deleted file mode 100644
index 798c059ccc..0000000000
--- a/packages/gpe-login/gpe-login-0.87/chvt-keylaunch.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- /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/chvt-keylaunch.patch b/packages/gpe-login/gpe-login-0.88/chvt-keylaunch.patch
deleted file mode 100644
index 798c059ccc..0000000000
--- a/packages/gpe-login/gpe-login-0.88/chvt-keylaunch.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- /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.87.bb b/packages/gpe-login/gpe-login_0.87.bb
deleted file mode 100644
index d75af4a3a0..0000000000
--- a/packages/gpe-login/gpe-login_0.87.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-LICENSE = "GPL"
-inherit gpe
-
-DESCRIPTION = "GPE user login screen"
-SECTION = "gpe"
-PRIORITY = "optional"
-DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
-RDEPENDS = "xkbd"
-RPROVIDES_${PN} = "gpe-session-starter"
-PR = "r3"
-
-SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
-
-SRC_URI += "file://removeblue-fontsize8.patch;patch=1"
-
-SRC_URI += " file://chvt-keylaunch.patch;patch=1 "
diff --git a/packages/gpe-login/gpe-login_0.88.bb b/packages/gpe-login/gpe-login_0.88.bb
deleted file mode 100644
index a1d4c0e7fa..0000000000
--- a/packages/gpe-login/gpe-login_0.88.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "GPE user login screen"
-SECTION = "gpe"
-PRIORITY = "optional"
-LICENSE = "GPL"
-DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
-RDEPENDS = "xkbd"
-RPROVIDES_${PN} = "gpe-session-starter"
-PR = "r3"
-
-SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
-
-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
deleted file mode 100644
index c22d259a9f..0000000000
--- a/packages/gpe-login/gpe-login_0.90.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "GPE user login screen"
-SECTION = "gpe"
-PRIORITY = "optional"
-LICENSE = "GPL"
-DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
-RDEPENDS = "xkbd gpe-theme-clearlooks"
-RPROVIDES_${PN} = "gpe-session-starter"
-PR = "r6"
-
-SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
-
-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 += " file://lock-on-supend.patch;patch=1 "
-SRC_URI += " file://gpe-xcalibrate-rises-from-dead.patch;patch=1 "
-SRC_URI += " file://size-autolock-properly.patch;patch=1 "
-SRC_URI += " file://c-locale.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.91.bb b/packages/gpe-login/gpe-login_0.91.bb
deleted file mode 100644
index 16d9e471d7..0000000000
--- a/packages/gpe-login/gpe-login_0.91.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "GPE user login screen"
-SECTION = "gpe"
-PRIORITY = "optional"
-LICENSE = "GPL"
-DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
-RDEPENDS = "xkbd gpe-theme-clearlooks"
-RPROVIDES_${PN} = "gpe-session-starter"
-PR = "r0"
-
-SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
-
-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 += " file://gpe-xcalibrate-rises-from-dead.patch;patch=1 "
-SRC_URI += " file://size-autolock-properly.patch;patch=1 "
-SRC_URI += " file://c-locale.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.92.bb b/packages/gpe-login/gpe-login_0.92.bb
deleted file mode 100644
index ec168bfc93..0000000000
--- a/packages/gpe-login/gpe-login_0.92.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "GPE user login screen"
-SECTION = "gpe"
-PRIORITY = "optional"
-LICENSE = "GPL"
-DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
-RDEPENDS = "xkbd gpe-theme-clearlooks"
-RPROVIDES_${PN} = "gpe-session-starter"
-PR = "r0"
-
-SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
-
-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 += " file://c-locale.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.93.bb b/packages/gpe-login/gpe-login_0.93.bb
index ec168bfc93..4ea1cc235e 100644
--- a/packages/gpe-login/gpe-login_0.93.bb
+++ b/packages/gpe-login/gpe-login_0.93.bb
@@ -5,7 +5,7 @@ LICENSE = "GPL"
DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
RDEPENDS = "xkbd gpe-theme-clearlooks"
RPROVIDES_${PN} = "gpe-session-starter"
-PR = "r0"
+PR = "r1"
SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
@@ -22,3 +22,16 @@ 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"
+
+CONFFILES_${PN} += " \
+${sysconfdir}/apm/suspend.d/S98lock-display \
+${sysconfdir}/gpe/gpe-login.conf \
+${sysconfdir}/gpe/locale.alias \
+${sysconfdir}/sysconfig/gpelogin \
+${sysconfdir}/X11/gpe-login.keylaunchrc \
+${sysconfdir}/X11/gpe-login.gtkrc \
+${sysconfdir}/X11/gpe-login.setup \
+${sysconfdir}/X11/gpe-login.pre-session \
+${sysconfdir}/X11/Xinit.d/99gpe-login \
+${sysconfdir}/X11/Xsession.d/50autolock \
+"
diff --git a/packages/gpe-login/gpe-login_svn.bb b/packages/gpe-login/gpe-login_svn.bb
index 9af539bad3..f02e095698 100644
--- a/packages/gpe-login/gpe-login_svn.bb
+++ b/packages/gpe-login/gpe-login_svn.bb
@@ -5,7 +5,7 @@ LICENSE = "GPL"
DEPENDS = "gtk+ libgpewidget gpe-ownerinfo xkbd"
RDEPENDS = "xkbd"
RPROVIDES_${PN} = "gpe-session-starter"
-PV = "0.90+svn${SRCDATE}"
+PV = "0.93+svn${SRCDATE}"
inherit autotools
@@ -16,4 +16,18 @@ SRC_URI = "${GPE_SVN} \
S = "${WORKDIR}/${PN}"
+CONFFILES_${PN} += " \
+${sysconfdir}/apm/suspend.d/S98lock-display \
+${sysconfdir}/gpe/gpe-login.conf \
+${sysconfdir}/gpe/locale.alias \
+${sysconfdir}/sysconfig/gpelogin \
+${sysconfdir}/X11/gpe-login.keylaunchrc \
+${sysconfdir}/X11/gpe-login.gtkrc \
+${sysconfdir}/X11/gpe-login.setup \
+${sysconfdir}/X11/gpe-login.pre-session \
+${sysconfdir}/X11/Xinit.d/99gpe-login \
+${sysconfdir}/X11/Xsession.d/50autolock \
+"
+
+
DEFAULT_PREFERENCE = "-1"
diff --git a/packages/gpe-su/gpe-su_0.20.bb b/packages/gpe-su/gpe-su_0.20.bb
new file mode 100644
index 0000000000..84ef6eb5ae
--- /dev/null
+++ b/packages/gpe-su/gpe-su_0.20.bb
@@ -0,0 +1,3 @@
+require gpe-su.inc
+
+PR = "r0"
diff --git a/packages/h2200-bootloader/h2200-bootloader.bb b/packages/h2200-bootloader/h2200-bootloader.bb
index dc7c2277a8..5db3cd058d 100644
--- a/packages/h2200-bootloader/h2200-bootloader.bb
+++ b/packages/h2200-bootloader/h2200-bootloader.bb
@@ -1,6 +1,7 @@
DESCRIPTION = "Bootloader firmware extractor for the h2200 iPAQ"
+RRECOMMENDS_${PN} = "kernel-module-mtdblock"
ALLOW_EMPTY = "1"
-PR="r2"
+PR = "r3"
COMPATIBLE_MACHINE = "h2200"
#it is a shell script, but lets protect the innocent some more
@@ -9,5 +10,6 @@ PACKAGE_ARCH = "h2200"
pkg_postinst() {
#!/bin/sh
mkdir -p /lib/firmware
+modprobe mtdblock
dd if=/dev/mtdblock0 of=/lib/firmware/h2200_bootloader.bin 2>/dev/null
}
diff --git a/packages/images/fso-image.bb b/packages/images/fso-image.bb
index 5d6b21647e..8c9d56adbc 100644
--- a/packages/images/fso-image.bb
+++ b/packages/images/fso-image.bb
@@ -20,7 +20,7 @@ BASE_INSTALL = "\
X_INSTALL = "\
e-wm \
illume \
- illume-theme \
+ illume-theme-freesmartphone \
${XSERVER} \
xserver-kdrive-common \
xserver-nodm-init \
@@ -40,6 +40,7 @@ X_INSTALL = "\
# useful command line tools
TOOLS_INSTALL = "\
# bash \
+ dosfstools \
htop \
iptables \
lsof \
diff --git a/packages/initrdscripts/initramfs-kexec_1.0.bb b/packages/initrdscripts/initramfs-kexec_1.0.bb
index b14ebbe60c..1b2ae27cf7 100644
--- a/packages/initrdscripts/initramfs-kexec_1.0.bb
+++ b/packages/initrdscripts/initramfs-kexec_1.0.bb
@@ -1,12 +1,12 @@
DESCRIPTON = "A init script that mounts a device and kexecs a new kernel from it."
-PR = "r4"
+PR = "r6"
do_compile() {
cat > init.sh << EOF
#!/bin/sh
/bin/mount -t proc proc /proc
/bin/mount -t ${ROOTFS} ${ROOTDEV} /mnt
-/usr/sbin/kexec -l /mnt/zImage
+/usr/sbin/kexec -l /mnt/boot/zImage
/usr/sbin/kexec -e
EOF
}
@@ -21,5 +21,7 @@ PACKAGE_ARCH = "all"
FILES_${PN} = "/init /proc /mnt"
-ROOTDEV = "mtd2"
-ROOTFS = "jffs2"
+ROOTDEV = "/dev/mmcblk0p1"
+ROOTFS = "ext2"
+#ROOTDEV = "mtd2"
+#ROOTFS = "jffs2"
diff --git a/packages/openmoko-projects/tangogps/.mtn2git_empty b/packages/iscsi-target/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/openmoko-projects/tangogps/.mtn2git_empty
+++ b/packages/iscsi-target/.mtn2git_empty
diff --git a/packages/iscsi-target/files/.mtn2git_empty b/packages/iscsi-target/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/iscsi-target/files/.mtn2git_empty
diff --git a/packages/iscsi-target/files/ietd.conf b/packages/iscsi-target/files/ietd.conf
new file mode 100644
index 0000000000..0a100ac664
--- /dev/null
+++ b/packages/iscsi-target/files/ietd.conf
@@ -0,0 +1,17 @@
+Target iqn.2007-01.org.foonas:iSCSI.sda.target1
+ Lun 0 Path=/dev/sda,Type=blockio
+ MaxConnections 1
+ HeaderDigest None
+ DataDigest None
+ InitialR2T Yes
+ ImmediateData No
+ MaxRecvDataSegmentLength 8192
+ MaxXmitDataSegmentLength 8192
+ MaxBurstLength 262144
+ FirstBurstLength 65536
+ DefaultTime2Wait 2
+ DefaultTime2Retain 20
+ MaxOutstandingR2T 8
+ DataPDUInOrder Yes
+ DataSequenceInOrder Yes
+ ErrorRecoveryLevel 0
diff --git a/packages/iscsi-target/files/init b/packages/iscsi-target/files/init
new file mode 100644
index 0000000000..d000adfe3c
--- /dev/null
+++ b/packages/iscsi-target/files/init
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# Start the iSCSI Enterprise Target.
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+start_server()
+{
+ modprobe -q crc32c
+ modprobe iscsi_trgt
+ start-stop-daemon --start --quiet --pidfile /var/run/iscsi_trgt.pid --exec /sbin/ietd
+}
+
+stop_server()
+{
+ ietadm --op delete
+ start-stop-daemon --stop --quiet --pidfile /var/run/iscsi_trgt.pid --exec /sbin/ietd
+ sleep 1
+ modprobe -r iscsi_trgt
+}
+
+case "$1" in
+ start)
+ start_server
+ ;;
+ stop)
+ stop_server
+ ;;
+ *)
+ echo "Usage: {start|stop}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/packages/iscsi-target/files/libs.patch b/packages/iscsi-target/files/libs.patch
new file mode 100644
index 0000000000..5108027cc4
--- /dev/null
+++ b/packages/iscsi-target/files/libs.patch
@@ -0,0 +1,11 @@
+diff -urN iscsitarget-0.4.15/usr/Makefile iscsitarget-0.4.15.new/usr/Makefile
+--- iscsitarget-0.4.15/usr/Makefile 2006-07-03 14:09:30.000000000 +0000
++++ iscsitarget-0.4.15.new/usr/Makefile 2007-07-29 23:16:45.000000000 +0000
+@@ -1,6 +1,6 @@
+ CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include
+ PROGRAMS = ietd ietadm
+-LIBS = -lcrypto
++LIBS = -lcrypto $(LDFLAGS)
+
+ all: $(PROGRAMS)
+
diff --git a/packages/iscsi-target/iscsi-target_0.4.16.bb b/packages/iscsi-target/iscsi-target_0.4.16.bb
new file mode 100644
index 0000000000..0e50bfe22b
--- /dev/null
+++ b/packages/iscsi-target/iscsi-target_0.4.16.bb
@@ -0,0 +1,43 @@
+
+DESCRIPTION = "iSCSI Enterprise Target is for building an iSCSI storage system on Linux"
+HOMEPAGE = "http://iscsitarget.sourceforge.net/"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/iscsitarget/iscsitarget-${PV}.tar.gz \
+ file://libs.patch;patch=1 \
+ file://init \
+ "
+
+DEPENDS = " openssl"
+S = "${WORKDIR}/iscsitarget-${PV}"
+
+inherit module
+
+do_configure() {
+}
+
+CFLAGS = "-isystem${STAGING_KERNEL_DIR}/include -I${STAGING_INCDIR} -L${STAGING_LIBDIR}"
+LDFLAGS = "-L${STAGING_LIBDIR}"
+FILES_${PN} += " ${base_sbindir}"
+
+do_compile() {
+ oe_runmake KSRC=${STAGING_KERNEL_DIR} CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'
+}
+
+do_install() {
+ # Module
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/iscsi
+ install -m 0644 kernel/iscsi_trgt.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/iscsi/iscsi_trgt.ko
+
+ # Userspace utilities
+ install -d ${D}${base_sbindir}
+ install -m 0755 usr/ietd ${D}${base_sbindir}/ietd
+ install -m 0755 usr/ietadm ${D}${base_sbindir}/ietadm
+
+ # Config files, init scripts
+ mkdir -p ${D}${sysconfdir}/init.d
+ install -m 0755 ../init ${D}${sysconfdir}/init.d/iscsi-target
+ install -m 0644 etc/initiators.allow ${D}${sysconfdir}/
+ install -m 0644 etc/initiators.deny ${D}${sysconfdir}/
+}
diff --git a/packages/iscsi-target/iscsi-target_svn.bb b/packages/iscsi-target/iscsi-target_svn.bb
new file mode 100644
index 0000000000..6671934c48
--- /dev/null
+++ b/packages/iscsi-target/iscsi-target_svn.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "iSCSI Enterprise Target is for building an iSCSI storage system on Linux"
+HOMEPAGE = "http://iscsitarget.sourceforge.net/"
+LICENSE = "GPL"
+PR = "r12"
+
+SRC_URI = "svn://svn.berlios.de/iscsitarget/;module=trunk;rev=HEAD \
+ file://libs.patch;patch=1 \
+ file://init \
+ file://ietd.conf \
+ "
+
+DEPENDS = " openssl"
+RDEPENDS = "kernel-module-crc32c kernel-module-libcrc32c"
+
+S = "${WORKDIR}/trunk"
+
+inherit module
+
+do_configure() {
+}
+
+CFLAGS = "-isystem${STAGING_KERNEL_DIR}/include -I${STAGING_INCDIR} -L${STAGING_LIBDIR}"
+LDFLAGS = "-L${STAGING_LIBDIR}"
+FILES_${PN} += " ${base_sbindir}"
+
+do_compile() {
+ oe_runmake KSRC=${STAGING_KERNEL_DIR} CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'
+}
+
+do_install() {
+ # Module
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/iscsi
+ install -m 0644 kernel/iscsi_trgt.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/iscsi/iscsi_trgt.ko
+
+ # Userspace utilities
+ install -d ${D}${base_sbindir}
+ install -m 0755 usr/ietd ${D}${base_sbindir}/ietd
+ install -m 0755 usr/ietadm ${D}${base_sbindir}/ietadm
+
+ # Config files, init scripts
+ mkdir -p ${D}${sysconfdir}/init.d
+ install -m 0755 ../init ${D}${sysconfdir}/init.d/iscsi-target
+ install -m 0644 ${WORKDIR}/ietd.conf ${D}${sysconfdir}/
+ install -m 0644 etc/initiators.allow ${D}${sysconfdir}/
+ install -m 0644 etc/initiators.deny ${D}${sysconfdir}/
+}
diff --git a/packages/kexec/files/kexec-klibc.patch b/packages/kexec/files/kexec-klibc.patch
index b8e2c81689..090b6231f1 100644
--- a/packages/kexec/files/kexec-klibc.patch
+++ b/packages/kexec/files/kexec-klibc.patch
@@ -1,7 +1,7 @@
Index: kexec-tools-1.101/kexec/arch/arm/kexec-elf-rel-arm.c
===================================================================
---- kexec-tools-1.101.orig/kexec/arch/arm/kexec-elf-rel-arm.c 2008-02-22 20:45:15.907610333 +0100
-+++ kexec-tools-1.101/kexec/arch/arm/kexec-elf-rel-arm.c 2008-02-22 20:45:27.508612989 +0100
+--- kexec-tools-1.101.orig/kexec/arch/arm/kexec-elf-rel-arm.c 2008-02-24 14:15:46.934825202 +0100
++++ kexec-tools-1.101/kexec/arch/arm/kexec-elf-rel-arm.c 2008-02-24 14:15:47.014827381 +0100
@@ -1,5 +1,5 @@
#include <stdio.h>
-#include <elf.h>
@@ -11,9 +11,20 @@ Index: kexec-tools-1.101/kexec/arch/arm/kexec-elf-rel-arm.c
Index: kexec-tools-1.101/kexec/arch/arm/kexec-zImage-arm.c
===================================================================
---- kexec-tools-1.101.orig/kexec/arch/arm/kexec-zImage-arm.c 2008-02-22 20:45:15.959611260 +0100
-+++ kexec-tools-1.101/kexec/arch/arm/kexec-zImage-arm.c 2008-02-22 20:45:27.508612989 +0100
-@@ -110,13 +110,13 @@
+--- kexec-tools-1.101.orig/kexec/arch/arm/kexec-zImage-arm.c 2008-02-24 14:15:46.982825391 +0100
++++ kexec-tools-1.101/kexec/arch/arm/kexec-zImage-arm.c 2008-07-26 01:58:20.838624318 +0200
+@@ -2,6 +2,10 @@
+ * - 08/21/2007 ATAG support added by Uli Luckas <u.luckas@road.de>
+ *
+ */
++
++/* work around for linux header files */
++#define __deprecated
++
+ #define _GNU_SOURCE
+ #include <stdio.h>
+ #include <string.h>
+@@ -110,13 +114,13 @@
}
fread(buf, sizeof(buf[1]), BOOT_PARAMS_SIZE, fp);
@@ -31,8 +42,8 @@ Index: kexec-tools-1.101/kexec/arch/arm/kexec-zImage-arm.c
}
Index: kexec-tools-1.101/kexec/ifdown.c
===================================================================
---- kexec-tools-1.101.orig/kexec/ifdown.c 2004-06-09 20:55:31.000000000 +0200
-+++ kexec-tools-1.101/kexec/ifdown.c 2008-02-22 20:45:27.508612989 +0100
+--- kexec-tools-1.101.orig/kexec/ifdown.c 2008-02-24 14:15:34.025828340 +0100
++++ kexec-tools-1.101/kexec/ifdown.c 2008-02-24 14:15:47.014827381 +0100
@@ -14,7 +14,7 @@
#include <sys/ioctl.h>
#include <sys/socket.h>
@@ -44,8 +55,8 @@ Index: kexec-tools-1.101/kexec/ifdown.c
#include <netinet/in.h>
Index: kexec-tools-1.101/purgatory/Makefile
===================================================================
---- kexec-tools-1.101.orig/purgatory/Makefile 2005-01-08 23:36:32.000000000 +0100
-+++ kexec-tools-1.101/purgatory/Makefile 2008-02-22 20:45:27.516611391 +0100
+--- kexec-tools-1.101.orig/purgatory/Makefile 2008-02-24 14:15:34.037827479 +0100
++++ kexec-tools-1.101/purgatory/Makefile 2008-02-24 14:15:47.022825503 +0100
@@ -13,7 +13,7 @@
PCFLAGS += $(call cc-option, -ffreestanding)
@@ -57,8 +68,8 @@ Index: kexec-tools-1.101/purgatory/Makefile
PURGATORY_C_SRCS:=
Index: kexec-tools-1.101/kexec/kexec-elf-rel.c
===================================================================
---- kexec-tools-1.101.orig/kexec/kexec-elf-rel.c 2005-01-13 14:04:21.000000000 +0100
-+++ kexec-tools-1.101/kexec/kexec-elf-rel.c 2008-02-22 20:45:27.524612027 +0100
+--- kexec-tools-1.101.orig/kexec/kexec-elf-rel.c 2008-02-24 14:15:34.025828340 +0100
++++ kexec-tools-1.101/kexec/kexec-elf-rel.c 2008-02-24 14:15:47.030825302 +0100
@@ -4,7 +4,7 @@
#include <stdio.h>
#include <errno.h>
@@ -70,8 +81,8 @@ Index: kexec-tools-1.101/kexec/kexec-elf-rel.c
#include "kexec-elf.h"
Index: kexec-tools-1.101/kexec/kexec-syscall.h
===================================================================
---- kexec-tools-1.101.orig/kexec/kexec-syscall.h 2008-02-22 20:45:15.923611048 +0100
-+++ kexec-tools-1.101/kexec/kexec-syscall.h 2008-02-22 20:45:27.524612027 +0100
+--- kexec-tools-1.101.orig/kexec/kexec-syscall.h 2008-02-24 14:15:46.950825917 +0100
++++ kexec-tools-1.101/kexec/kexec-syscall.h 2008-02-24 14:15:47.030825302 +0100
@@ -2,7 +2,7 @@
#define KEXEC_SYSCALL_H
@@ -116,8 +127,8 @@ Index: kexec-tools-1.101/kexec/kexec-syscall.h
Index: kexec-tools-1.101/kexec/kexec.c
===================================================================
---- kexec-tools-1.101.orig/kexec/kexec.c 2008-02-22 20:45:15.923611048 +0100
-+++ kexec-tools-1.101/kexec/kexec.c 2008-02-22 20:45:38.847612035 +0100
+--- kexec-tools-1.101.orig/kexec/kexec.c 2008-02-24 14:15:46.950825917 +0100
++++ kexec-tools-1.101/kexec/kexec.c 2008-07-26 01:58:53.545624148 +0200
@@ -29,9 +29,7 @@
#include <unistd.h>
#include <fcntl.h>
@@ -134,7 +145,7 @@ Index: kexec-tools-1.101/kexec/kexec.c
}
-#if HAVE_ZLIB_H
-+#if 1
++#if 1
char *slurp_decompress_file(const char *filename, off_t *r_size)
{
gzFile fp;
diff --git a/packages/kexec/kexec-tools-static_1.101.bb b/packages/kexec/kexec-tools-static_1.101.bb
index 5fa51b2e70..670f055506 100644
--- a/packages/kexec/kexec-tools-static_1.101.bb
+++ b/packages/kexec/kexec-tools-static_1.101.bb
@@ -1,7 +1,7 @@
# the binaries are statical linked against klibc
require kexec-tools.inc
-PR = "r3"
+PR = "r4"
DEPENDS = "klibc"
SRC_URI += "file://kexec-klibc.patch;patch=1"
diff --git a/packages/lcdproc/lcdproc5.inc b/packages/lcdproc/lcdproc5.inc
new file mode 100644
index 0000000000..de704bcad0
--- /dev/null
+++ b/packages/lcdproc/lcdproc5.inc
@@ -0,0 +1,115 @@
+DESCRIPTION = "LCDproc is a client/Server suite to drive all kinds of LCD (-like) devices. The client \
+shipped with this package can be used to acquire various kinds of system stats."
+HOMEPAGE = "http://lcdproc.org"
+SECTION = "utils"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "libusb ncurses"
+RRECOMMENDS_lcdproc = "lcdd"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lcdproc/${P}.tar.gz"
+
+inherit autotools update-rc.d
+
+PACKAGES =+ "lcdd lcdd-driver-cfontz lcdd-driver-bayrad lcdd-driver-hd44780nousb \
+ lcdd-driver-hd44780 lcdd-driver-mtxorb lcdd-driver-serialvfd \
+ lcdd-driver-curses lcdd-driver-text \
+ lcdd-driver-sed lcdd-driver-cwlnx lcdd-driver-glk lcdd-driver-icp-a106 \
+ lcdd-driver-imon lcdd-driver-joy lcdd-driver-lb216 lcdd-driver-lcdm001 \
+ lcdd-driver-lcterm lcdd-driver-ms6931 lcdd-driver-mtc-s16209x \
+ lcdd-driver-noritakevfd lcdd-driver-pyramid lcdd-driver-sli \
+ lcdd-driver-stv5730 lcdd-driver-t6963 lcdd-driver-tyan"
+
+CONFFILES_lcdd = "${sysconfdir}/LCDd.conf"
+CONFFILES_lcdproc = "${sysconfdir}/lcdproc.conf"
+
+FILES_lcdd = "${CONFFILES_lcdd} \
+ ${sbindir}/LCDd \
+ ${sysconfdir}/init.d/lcdd"
+
+FILES_lcdproc = "${CONFFILES_lcdproc} \
+ ${bindir}/lcdproc \
+ ${sysconfdir}/init.d/lcdproc"
+
+# Driver packages
+
+FILES_lcdd-driver-cfontz = "${libdir}/lcdproc/CFontz*.so"
+FILES_lcdd-driver-bayrad = "${libdir}/lcdproc/bayrad.so"
+FILES_lcdd-driver-hd44780nousb = "${libdir}/lcdproc/hd44780nousb.so"
+FILES_lcdd-driver-hd44780 = "${libdir}/lcdproc/hd44780.so"
+FILES_lcdd-driver-mtxorb = "${libdir}/lcdproc/MtxOrb.so"
+FILES_lcdd-driver-serialvfd = "${libdir}/lcdproc/serialVFD.so"
+FILES_lcdd-driver-curses = "${libdir}/lcdproc/curses.so"
+FILES_lcdd-driver-text = "${libdir}/lcdproc/text.so"
+FILES_lcdd-driver-sed = "${libdir}/lcdproc/sed*.so"
+FILES_lcdd-driver-cwlnx = "${libdir}/lcdproc/CwLnx.so"
+FILES_lcdd-driver-glk = "${libdir}/lcdproc/glk.so"
+FILES_lcdd-driver-icp-a106 = "${libdir}/lcdproc/icp_a106.so"
+FILES_lcdd-driver-imon = "${libdir}/lcdproc/imon.so"
+FILES_lcdd-driver-joy = "${libdir}/lcdproc/joy.so"
+FILES_lcdd-driver-lb216 = "${libdir}/lcdproc/lb216.so"
+FILES_lcdd-driver-lcdm001 = "${libdir}/lcdproc/lcdm001.so"
+FILES_lcdd-driver-lcterm = "${libdir}/lcdproc/lcterm.so"
+FILES_lcdd-driver-ms6931 = "${libdir}/lcdproc/ms6931.so"
+FILES_lcdd-driver-mtc-s16209x = "${libdir}/lcdproc/mtc_s16209x.so"
+FILES_lcdd-driver-noritakevfd = "${libdir}/lcdproc/NoritakeVFD.so"
+FILES_lcdd-driver-pyramid = "${libdir}/lcdproc/pyramid.so"
+FILES_lcdd-driver-sli = "${libdir}/lcdproc/sli.so"
+FILES_lcdd-driver-stv5730 = "${libdir}/lcdproc/stv5730.so"
+FILES_lcdd-driver-t6963 = "${libdir}/lcdproc/t6963.so"
+FILES_lcdd-driver-tyan = "${libdir}/lcdproc/tyan.so"
+
+
+# Install-all-drivers-hack:
+
+DEPENDS_lcdd-driver-all = "lcdd-driver-cfontz lcdd-driver-bayrad lcdd-driver-hd44780nousb \
+ lcdd-driver-hd44780 lcdd-driver-mtxorb lcdd-driver-serialvfd \
+ lcdd-driver-curses lcdd-driver-text \
+ lcdd-driver-sed lcdd-driver-cwlnx lcdd-driver-glk lcdd-driver-icp-a106 \
+ lcdd-driver-imon lcdd-driver-joy lcdd-driver-lb216 lcdd-driver-lcdm001 \
+ lcdd-driver-lcterm lcdd-driver-ms6931 lcdd-driver-mtc-s16209x \
+ lcdd-driver-noritakevfd lcdd-driver-pyramid lcdd-driver-sli \
+ lcdd-driver-stv5730 lcdd-driver-t6963 lcdd-driver-tyan"
+
+# USB / no USB trickery
+
+CONFLICTS_lcdd-driver-hd47780nousb = "lcdd-driver-hd44780"
+CONFLICTS_lcdd-driver-hd47780 = "lcdd-driver-hd44780nousb"
+
+INITSCRIPT_PACKAGES = "lcdd lcdproc"
+INITSCRIPT_NAME_lcdd = "lcdd"
+INITSCRIPT_NAME_lcdproc = "lcdproc"
+INITSCRIPT_PARAMS_lcdd = "defaults 70 21"
+INITSCRIPT_PARAMS_lcdproc = "defaults 71 20"
+
+EXTRA_OECONF = "--enable-drivers=all --enable-libusb"
+
+do_install () {
+ # binaries
+ install -D -m 0755 server/LCDd ${D}${sbindir}/LCDd
+ install -D -m 0755 clients/lcdproc/lcdproc ${D}${bindir}/lcdproc
+
+ # init scripts
+ install -d ${D}${sysconfdir}/init.d
+ # so far, not fixed :-( and now even uglier :-((
+ cat scripts/init-LCDd.debian | sed -e s'/--oknodo//' -e 's/ -s -f / -s 1 -f 1 /' -e 's/force-reload/force-restart/' -e 's/sleep 1/sleep 4/' > ${D}${sysconfdir}/init.d/lcdd
+ chmod 0755 ${D}${sysconfdir}/init.d/lcdd
+ # prevent lcdproc from starting if no SCREENS are set.
+ # will be fixed in next upstream release
+ cat scripts/init-lcdproc.debian | sed -e 's/C X//' | sed -e 's/case/[ -n "$SCREENS" ] || exit 0\n\ncase/' | sed -e s'/--oknodo//' > ${D}${sysconfdir}/init.d/lcdproc
+ chmod 0755 ${D}${sysconfdir}/init.d/lcdproc
+
+ # configuration files
+ install -D -m 0644 LCDd.conf ${D}${sysconfdir}/LCDd.conf
+ # don't start lcdproc by default
+ # will be fixed in next upstream release
+ cat scripts/lcdproc.conf | sed -e 's/C X//' > ${D}${sysconfdir}/lcdproc.conf
+ chmod 0644 ${D}${sysconfdir}/lcdproc.conf
+
+ # driver library files
+ install -d ${D}${libdir}/lcdproc
+ for i in server/drivers/*.so; do
+ install -m 0644 $i ${D}${libdir}/lcdproc/
+ done
+}
+
diff --git a/packages/lcdproc/lcdproc_0.5.0.bb b/packages/lcdproc/lcdproc_0.5.0.bb
index 5f95c85bf8..0c6cf669c0 100644
--- a/packages/lcdproc/lcdproc_0.5.0.bb
+++ b/packages/lcdproc/lcdproc_0.5.0.bb
@@ -1,117 +1 @@
-DESCRIPTION = "LCDproc is a client/Server suite to drive all kinds of LCD (-like) devices. The client \
-shipped with this package can be used to acquire various kinds of system stats."
-HOMEPAGE = "http://lcdproc.org"
-LICENSE = "GPL"
-PRIORITY = "optional"
-SECTION = "utils"
-PR="r2"
-
-DEPENDS = "libusb ncurses"
-RRECOMMENDS_lcdproc = "lcdd"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/lcdproc/${P}.tar.gz"
-
-inherit autotools update-rc.d
-
-PACKAGES =+ "lcdd lcdd-driver-cfontz lcdd-driver-bayrad lcdd-driver-hd44780nousb \
- lcdd-driver-hd44780 lcdd-driver-mtxorb lcdd-driver-serialvfd \
- lcdd-driver-curses lcdd-driver-text \
- lcdd-driver-sed lcdd-driver-cwlnx lcdd-driver-glk lcdd-driver-icp-a106 \
- lcdd-driver-imon lcdd-driver-joy lcdd-driver-lb216 lcdd-driver-lcdm001 \
- lcdd-driver-lcterm lcdd-driver-ms6931 lcdd-driver-mtc-s16209x \
- lcdd-driver-noritakevfd lcdd-driver-pyramid lcdd-driver-sli \
- lcdd-driver-stv5730 lcdd-driver-t6963 lcdd-driver-tyan"
-
-CONFFILES_lcdd = "${sysconfdir}/LCDd.conf"
-CONFFILES_lcdproc = "${sysconfdir}/lcdproc.conf"
-
-FILES_lcdd = "${CONFFILES_lcdd} \
- ${sbindir}/LCDd \
- ${sysconfdir}/init.d/lcdd"
-
-FILES_lcdproc = "${CONFFILES_lcdproc} \
- ${bindir}/lcdproc \
- ${sysconfdir}/init.d/lcdproc"
-
-# Driver packages
-
-FILES_lcdd-driver-cfontz = "${libdir}/lcdproc/CFontz*.so"
-FILES_lcdd-driver-bayrad = "${libdir}/lcdproc/bayrad.so"
-FILES_lcdd-driver-hd44780nousb = "${libdir}/lcdproc/hd44780nousb.so"
-FILES_lcdd-driver-hd44780 = "${libdir}/lcdproc/hd44780.so"
-FILES_lcdd-driver-mtxorb = "${libdir}/lcdproc/MtxOrb.so"
-FILES_lcdd-driver-serialvfd = "${libdir}/lcdproc/serialVFD.so"
-FILES_lcdd-driver-curses = "${libdir}/lcdproc/curses.so"
-FILES_lcdd-driver-text = "${libdir}/lcdproc/text.so"
-FILES_lcdd-driver-sed = "${libdir}/lcdproc/sed*.so"
-FILES_lcdd-driver-cwlnx = "${libdir}/lcdproc/CwLnx.so"
-FILES_lcdd-driver-glk = "${libdir}/lcdproc/glk.so"
-FILES_lcdd-driver-icp-a106 = "${libdir}/lcdproc/icp_a106.so"
-FILES_lcdd-driver-imon = "${libdir}/lcdproc/imon.so"
-FILES_lcdd-driver-joy = "${libdir}/lcdproc/joy.so"
-FILES_lcdd-driver-lb216 = "${libdir}/lcdproc/lb216.so"
-FILES_lcdd-driver-lcdm001 = "${libdir}/lcdproc/lcdm001.so"
-FILES_lcdd-driver-lcterm = "${libdir}/lcdproc/lcterm.so"
-FILES_lcdd-driver-ms6931 = "${libdir}/lcdproc/ms6931.so"
-FILES_lcdd-driver-mtc-s16209x = "${libdir}/lcdproc/mtc_s16209x.so"
-FILES_lcdd-driver-noritakevfd = "${libdir}/lcdproc/NoritakeVFD.so"
-FILES_lcdd-driver-pyramid = "${libdir}/lcdproc/pyramid.so"
-FILES_lcdd-driver-sli = "${libdir}/lcdproc/sli.so"
-FILES_lcdd-driver-stv5730 = "${libdir}/lcdproc/stv5730.so"
-FILES_lcdd-driver-t6963 = "${libdir}/lcdproc/t6963.so"
-FILES_lcdd-driver-tyan = "${libdir}/lcdproc/tyan.so"
-
-
-# Install-all-drivers-hack:
-
-DEPENDS_lcdd-driver-all = "lcdd-driver-cfontz lcdd-driver-bayrad lcdd-driver-hd44780nousb \
- lcdd-driver-hd44780 lcdd-driver-mtxorb lcdd-driver-serialvfd \
- lcdd-driver-curses lcdd-driver-text \
- lcdd-driver-sed lcdd-driver-cwlnx lcdd-driver-glk lcdd-driver-icp-a106 \
- lcdd-driver-imon lcdd-driver-joy lcdd-driver-lb216 lcdd-driver-lcdm001 \
- lcdd-driver-lcterm lcdd-driver-ms6931 lcdd-driver-mtc-s16209x \
- lcdd-driver-noritakevfd lcdd-driver-pyramid lcdd-driver-sli \
- lcdd-driver-stv5730 lcdd-driver-t6963 lcdd-driver-tyan"
-
-# USB / no USB trickery
-
-CONFLICTS_lcdd-driver-hd47780nousb = "lcdd-driver-hd44780"
-CONFLICTS_lcdd-driver-hd47780 = "lcdd-driver-hd44780nousb"
-
-INITSCRIPT_PACKAGES = "lcdd lcdproc"
-INITSCRIPT_NAME_lcdd = "lcdd"
-INITSCRIPT_NAME_lcdproc = "lcdproc"
-INITSCRIPT_PARAMS_lcdd = "defaults 70 21"
-INITSCRIPT_PARAMS_lcdproc = "defaults 71 20"
-
-EXTRA_OECONF = "--enable-drivers=all --enable-libusb"
-
-do_install () {
- # binaries
- install -D -m 0755 server/LCDd ${D}${sbindir}/LCDd
- install -D -m 0755 clients/lcdproc/lcdproc ${D}${bindir}/lcdproc
-
- # init scripts
- install -d ${D}${sysconfdir}/init.d
- # so far, not fixed :-( and now even uglier :-((
- cat scripts/init-LCDd.debian | sed -e s'/--oknodo//' -e 's/ -s -f / -s 1 -f 1 /' -e 's/force-reload/force-restart/' -e 's/sleep 1/sleep 4/' > ${D}${sysconfdir}/init.d/lcdd
- chmod 0755 ${D}${sysconfdir}/init.d/lcdd
- # prevent lcdproc from starting if no SCREENS are set.
- # will be fixed in next upstream release
- cat scripts/init-lcdproc.debian | sed -e 's/C X//' | sed -e 's/case/[ -n "$SCREENS" ] || exit 0\n\ncase/' | sed -e s'/--oknodo//' > ${D}${sysconfdir}/init.d/lcdproc
- chmod 0755 ${D}${sysconfdir}/init.d/lcdproc
-
- # configuration files
- install -D -m 0644 LCDd.conf ${D}${sysconfdir}/LCDd.conf
- # don't start lcdproc by default
- # will be fixed in next upstream release
- cat scripts/lcdproc.conf | sed -e 's/C X//' > ${D}${sysconfdir}/lcdproc.conf
- chmod 0644 ${D}${sysconfdir}/lcdproc.conf
-
- # driver library files
- install -d ${D}${libdir}/lcdproc
- for i in server/drivers/*.so; do
- install -m 0644 $i ${D}${libdir}/lcdproc/
- done
-}
-
+require lcdproc5.inc \ No newline at end of file
diff --git a/packages/lcdproc/lcdproc_0.5.1.bb b/packages/lcdproc/lcdproc_0.5.1.bb
index aa1b26e544..dafcbba170 100644
--- a/packages/lcdproc/lcdproc_0.5.1.bb
+++ b/packages/lcdproc/lcdproc_0.5.1.bb
@@ -1,124 +1,19 @@
-DESCRIPTION = "LCDproc is a client/Server suite to drive all kinds of LCD (-like) devices. The client \
-shipped with this package can be used to acquire various kinds of system stats."
-HOMEPAGE = "http://lcdproc.org"
-LICENSE = "GPL"
-PRIORITY = "optional"
-SECTION = "utils"
-PR="r2"
+require lcdproc5.inc
-DEPENDS = "libusb ncurses libg15 g15daemon libg15render"
-RRECOMMENDS_lcdproc = "lcdd"
+DEPENDS += "libg15 g15daemon libg15render"
+DEPENDS_lcdd-driver-all += "lcdd-driver-g15"
-SRC_URI = "${SOURCEFORGE_MIRROR}/lcdproc/${P}.tar.gz"
+PR = "r3"
-inherit autotools update-rc.d
-
-PACKAGES =+ "lcdd lcdvc lcdd-driver-cfontz lcdd-driver-bayrad lcdd-driver-hd44780nousb \
- lcdd-driver-hd44780 lcdd-driver-mtxorb lcdd-driver-serialvfd \
- lcdd-driver-curses lcdd-driver-text \
- lcdd-driver-sed lcdd-driver-cwlnx lcdd-driver-glk lcdd-driver-icp-a106 \
- lcdd-driver-imon lcdd-driver-joy lcdd-driver-lb216 lcdd-driver-lcdm001 \
- lcdd-driver-lcterm lcdd-driver-ms6931 lcdd-driver-mtc-s16209x \
- lcdd-driver-noritakevfd lcdd-driver-pyramid lcdd-driver-sli \
- lcdd-driver-stv5730 lcdd-driver-t6963 lcdd-driver-tyan lcdd-driver-g15"
-
-CONFFILES_lcdd = "${sysconfdir}/LCDd.conf"
-CONFFILES_lcdproc = "${sysconfdir}/lcdproc.conf"
-CONFFILES_lcdvc = "${sysconfdir}/lcdvc.conf"
-
-FILES_lcdd = "${CONFFILES_lcdd} \
- ${sbindir}/LCDd \
- ${sysconfdir}/init.d/lcdd"
-
-FILES_lcdproc = "${CONFFILES_lcdproc} \
- ${bindir}/lcdproc \
- ${sysconfdir}/init.d/lcdproc"
-
-FILES_lcdvc = "${CONFFILES_lcdvc} \
- ${sbindir}/lcdvc"
-
-# Driver packages
-
-FILES_lcdd-driver-cfontz = "${libdir}/lcdproc/CFontz*.so"
-FILES_lcdd-driver-bayrad = "${libdir}/lcdproc/bayrad.so"
-FILES_lcdd-driver-hd44780nousb = "${libdir}/lcdproc/hd44780nousb.so"
-FILES_lcdd-driver-hd44780 = "${libdir}/lcdproc/hd44780.so"
-FILES_lcdd-driver-mtxorb = "${libdir}/lcdproc/MtxOrb.so"
-FILES_lcdd-driver-serialvfd = "${libdir}/lcdproc/serialVFD.so"
-FILES_lcdd-driver-curses = "${libdir}/lcdproc/curses.so"
-FILES_lcdd-driver-text = "${libdir}/lcdproc/text.so"
-FILES_lcdd-driver-sed = "${libdir}/lcdproc/sed*.so"
-FILES_lcdd-driver-cwlnx = "${libdir}/lcdproc/CwLnx.so"
-FILES_lcdd-driver-glk = "${libdir}/lcdproc/glk.so"
-FILES_lcdd-driver-icp-a106 = "${libdir}/lcdproc/icp_a106.so"
-FILES_lcdd-driver-imon = "${libdir}/lcdproc/imon.so"
-FILES_lcdd-driver-joy = "${libdir}/lcdproc/joy.so"
-FILES_lcdd-driver-lb216 = "${libdir}/lcdproc/lb216.so"
-FILES_lcdd-driver-lcdm001 = "${libdir}/lcdproc/lcdm001.so"
-FILES_lcdd-driver-lcterm = "${libdir}/lcdproc/lcterm.so"
-FILES_lcdd-driver-ms6931 = "${libdir}/lcdproc/ms6931.so"
-FILES_lcdd-driver-mtc-s16209x = "${libdir}/lcdproc/mtc_s16209x.so"
-FILES_lcdd-driver-noritakevfd = "${libdir}/lcdproc/NoritakeVFD.so"
-FILES_lcdd-driver-pyramid = "${libdir}/lcdproc/pyramid.so"
-FILES_lcdd-driver-sli = "${libdir}/lcdproc/sli.so"
-FILES_lcdd-driver-stv5730 = "${libdir}/lcdproc/stv5730.so"
-FILES_lcdd-driver-t6963 = "${libdir}/lcdproc/t6963.so"
-FILES_lcdd-driver-tyan = "${libdir}/lcdproc/tyan.so"
-FILES_lcdd-driver-g15 = "${libdir}/lcdproc/g15.so"
-
-
-# Install-all-drivers-hack:
-
-DEPENDS_lcdd-driver-all = "lcdd-driver-cfontz lcdd-driver-bayrad lcdd-driver-hd44780nousb \
- lcdd-driver-hd44780 lcdd-driver-mtxorb lcdd-driver-serialvfd \
- lcdd-driver-curses lcdd-driver-text \
- lcdd-driver-sed lcdd-driver-cwlnx lcdd-driver-glk lcdd-driver-icp-a106 \
- lcdd-driver-imon lcdd-driver-joy lcdd-driver-lb216 lcdd-driver-lcdm001 \
- lcdd-driver-lcterm lcdd-driver-ms6931 lcdd-driver-mtc-s16209x \
- lcdd-driver-noritakevfd lcdd-driver-pyramid lcdd-driver-sli \
- lcdd-driver-stv5730 lcdd-driver-t6963 lcdd-driver-tyan lcdd-driver-g15"
-
-# USB / no USB trickery
-
-CONFLICTS_lcdd-driver-hd47780nousb = "lcdd-driver-hd44780"
-CONFLICTS_lcdd-driver-hd47780 = "lcdd-driver-hd44780nousb"
-
-INITSCRIPT_PACKAGES = "lcdd lcdproc"
-INITSCRIPT_NAME_lcdd = "lcdd"
-INITSCRIPT_NAME_lcdproc = "lcdproc"
-INITSCRIPT_PARAMS_lcdd = "defaults 70 21"
-INITSCRIPT_PARAMS_lcdproc = "defaults 71 20"
-
-EXTRA_OECONF = "--enable-drivers=all --enable-libusb"
-
-do_install () {
+do_install_append () {
# binaries
- install -D -m 0755 server/LCDd ${D}${sbindir}/LCDd
- install -D -m 0755 clients/lcdproc/lcdproc ${D}${bindir}/lcdproc
install -D -m 0755 clients/lcdvc/lcdvc ${D}${sbindir}/lcdvc
- # init scripts
- install -d ${D}${sysconfdir}/init.d
- # so far, not fixed :-( and now even uglier :-((
- cat scripts/init-LCDd.debian | sed -e s'/--oknodo//' -e 's/ -s -f / -s 1 -f 1 /' -e 's/force-reload/force-restart/' -e 's/sleep 1/sleep 4/' > ${D}${sysconfdir}/init.d/lcdd
- chmod 0755 ${D}${sysconfdir}/init.d/lcdd
- # prevent lcdproc from starting if no SCREENS are set.
- # will be fixed in next upstream release
- cat scripts/init-lcdproc.debian | sed -e 's/C X//' | sed -e 's/case/[ -n "$SCREENS" ] || exit 0\n\ncase/' | sed -e s'/--oknodo//' > ${D}${sysconfdir}/init.d/lcdproc
- chmod 0755 ${D}${sysconfdir}/init.d/lcdproc
-
# configuration files
- install -D -m 0644 LCDd.conf ${D}${sysconfdir}/LCDd.conf
install -D -m 0644 clients/lcdvc/lcdvc.conf ${D}${sysconfdir}/lcdvc.conf
- # don't start lcdproc by default
- # will be fixed in next upstream release
- cat scripts/lcdproc.conf | sed -e 's/C X//' > ${D}${sysconfdir}/lcdproc.conf
- chmod 0644 ${D}${sysconfdir}/lcdproc.conf
-
- # driver library files
- install -d ${D}${libdir}/lcdproc
- for i in server/drivers/*.so; do
- install -m 0644 $i ${D}${libdir}/lcdproc/
- done
}
+PACKAGES =+ "lcdvc lcdd-driver-g15"
+CONFFILES_lcdvc = "${sysconfdir}/lcdvc.conf"
+FILES_lcdvc = "${CONFFILES_lcdvc} ${sbindir}/lcdvc"
+FILES_lcdd-driver-g15 = "${libdir}/lcdproc/g15.so"
diff --git a/packages/libgpewidget/libgpewidget-hildon_0.102.bb b/packages/libgpewidget/libgpewidget-hildon_0.102.bb
index 854d0ea6da..a7d663985e 100644
--- a/packages/libgpewidget/libgpewidget-hildon_0.102.bb
+++ b/packages/libgpewidget/libgpewidget-hildon_0.102.bb
@@ -4,17 +4,14 @@ DESCRIPTION = "libgpewidget contains a collection of widgets and other common co
SECTION = "gpe/libs"
PRIORITY = "optional"
DEPENDS = "gtk+ libxrender gtk-doc intltool-native sdk-default-icons"
-RDEPENDS = "sdk-default-icons"
PROVIDES = "libgpewidget"
-RPROVIDES = "libgpewidget"
-
-SRC_URI = "${GPE_MIRROR}/libgpewidget-${PV}.tar.bz2"
-
-S = "${WORKDIR}/libgpewidget-${PV}"
DEFAULT_PREFERENCE = "-1"
-inherit pkgconfig autotools
+inherit autotools pkgconfig
+
+SRC_URI = "${GPE_MIRROR}/libgpewidget-${PV}.tar.bz2"
+S = "${WORKDIR}/libgpewidget-${PV}"
EXTRA_OECONF = "--enable-hildon"
@@ -23,3 +20,5 @@ do_stage () {
autotools_stage_includes
}
+RDEPENDS = "sdk-default-icons"
+RPROVIDES = "libgpewidget"
diff --git a/packages/libgpewidget/libgpewidget_0.114.bb b/packages/libgpewidget/libgpewidget_0.114.bb
index d79beeb417..39a85c52e6 100644
--- a/packages/libgpewidget/libgpewidget_0.114.bb
+++ b/packages/libgpewidget/libgpewidget_0.114.bb
@@ -1,18 +1,16 @@
-LICENSE = "LGPL"
DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications."
SECTION = "gpe/libs"
-PRIORITY = "optional"
-DEPENDS = "gtk+ cairo libxrender gtk-doc"
-PR = "r1"
+LICENSE = "LGPL"
+PRIORITY = "optional"
+DEPENDS = "gtk+ cairo libxrender gtk-doc"
+PR = "r2"
GPE_TARBALL_SUFFIX = "bz2"
+
inherit gpe pkgconfig autotools
SRC_URI += "file://pkgconfig.patch;patch=1;pnum=0"
-PACKAGES =+ "libgpewidget-bin"
-FILES_libgpewidget-bin = "${bindir}/*"
-
EXTRA_OECONF = "--enable-cairo"
LDFLAGS += " -L${STAGING_LIBDIR}"
@@ -20,3 +18,7 @@ LDFLAGS += " -L${STAGING_LIBDIR}"
do_stage () {
autotools_stage_all
}
+
+PACKAGES =+ "libgpewidget-bin"
+FILES_libgpewidget-bin = "${bindir}/*"
+RRECOMMENDS_${PN} = "gpe-icons"
diff --git a/packages/libgpewidget/libgpewidget_0.115.bb b/packages/libgpewidget/libgpewidget_0.115.bb
index 9ea3009404..2aa529f723 100644
--- a/packages/libgpewidget/libgpewidget_0.115.bb
+++ b/packages/libgpewidget/libgpewidget_0.115.bb
@@ -1,18 +1,15 @@
-LICENSE = "LGPL"
DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications."
+LICENSE = "LGPL"
SECTION = "gpe/libs"
-PRIORITY = "optional"
-DEPENDS = "gtk+ cairo libxinerama libxrender gtk-doc"
-PR = "r1"
+DEPENDS = "gtk+ cairo libxinerama libxrender gtk-doc"
+PR = "r2"
GPE_TARBALL_SUFFIX = "bz2"
+
inherit gpe pkgconfig autotools
SRC_URI += "file://pkgconfig.patch;patch=1;pnum=0"
-PACKAGES =+ "libgpewidget-bin"
-FILES_libgpewidget-bin = "${bindir}/*"
-
EXTRA_OECONF = "--enable-cairo"
LDFLAGS += " -L${STAGING_LIBDIR}"
@@ -20,3 +17,7 @@ LDFLAGS += " -L${STAGING_LIBDIR}"
do_stage () {
autotools_stage_all
}
+
+PACKAGES =+ "libgpewidget-bin"
+FILES_libgpewidget-bin = "${bindir}/*"
+RRECOMMENDS = "gpe-icons"
diff --git a/packages/libgpewidget/libgpewidget_0.117.bb b/packages/libgpewidget/libgpewidget_0.117.bb
new file mode 100644
index 0000000000..f679296c71
--- /dev/null
+++ b/packages/libgpewidget/libgpewidget_0.117.bb
@@ -0,0 +1,22 @@
+LICENSE = "LGPL"
+DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications."
+SECTION = "gpe/libs"
+PRIORITY = "optional"
+DEPENDS = "gtk+ cairo libxrender gtk-doc"
+PR = "r0"
+
+GPE_TARBALL_SUFFIX = "bz2"
+inherit gpe pkgconfig autotools
+
+SRC_URI += "file://pkgconfig.patch;patch=1;pnum=0"
+
+PACKAGES =+ "libgpewidget-bin"
+FILES_libgpewidget-bin = "${bindir}/*"
+
+EXTRA_OECONF = "--enable-cairo"
+
+LDFLAGS += " -L${STAGING_LIBDIR}"
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/packages/libgpewidget/libgpewidget_svn.bb b/packages/libgpewidget/libgpewidget_svn.bb
index 8b6d0ea584..324173752d 100644
--- a/packages/libgpewidget/libgpewidget_svn.bb
+++ b/packages/libgpewidget/libgpewidget_svn.bb
@@ -3,18 +3,20 @@ SECTION = "gpe/libs"
LICENSE = "LGPL"
PRIORITY = "optional"
DEPENDS = "gtk+ cairo libxrender gtk-doc"
+PV = "0.114+svn${SRCDATE}"
+PR = "r1"
DEFAULT_PREFERENCE = "-1"
-S = "${WORKDIR}/${PN}"
-PV = "0.114+svn${SRCDATE}"
-
inherit gpe autotools pkgconfig
SRC_URI = "${GPE_SVN}"
+S = "${WORKDIR}/${PN}"
EXTRA_OECONF = "--enable-cairo"
do_stage () {
autotools_stage_all
}
+
+RRECOMMENDS_${PN} = "gpe-icons"
diff --git a/packages/libsdl/libsdl-image-1.2.3/.mtn2git_empty b/packages/libsdl/libsdl-image-1.2.3/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libsdl/libsdl-image-1.2.3/.mtn2git_empty
diff --git a/packages/libsdl/libsdl-image-1.2.3/autotools.patch b/packages/libsdl/libsdl-image-1.2.3/autotools.patch
new file mode 100644
index 0000000000..c93a1dd9c3
--- /dev/null
+++ b/packages/libsdl/libsdl-image-1.2.3/autotools.patch
@@ -0,0 +1,805 @@
+Index: SDL_image-1.2.3/acinclude.m4
+===================================================================
+--- SDL_image-1.2.3.orig/acinclude.m4 2001-11-02 21:39:10.000000000 +0100
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,608 +0,0 @@
+-# Configure paths for SDL
+-# Sam Lantinga 9/21/99
+-# stolen from Manish Singh
+-# stolen back from Frank Belew
+-# stolen from Manish Singh
+-# Shamelessly stolen from Owen Taylor
+-
+-dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+-dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
+-dnl
+-AC_DEFUN(AM_PATH_SDL,
+-[dnl
+-dnl Get the cflags and libraries from the sdl-config script
+-dnl
+-AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
+- sdl_prefix="$withval", sdl_prefix="")
+-AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
+- sdl_exec_prefix="$withval", sdl_exec_prefix="")
+-AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
+- , enable_sdltest=yes)
+-
+- if test x$sdl_exec_prefix != x ; then
+- sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
+- if test x${SDL_CONFIG+set} != xset ; then
+- SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
+- fi
+- fi
+- if test x$sdl_prefix != x ; then
+- sdl_args="$sdl_args --prefix=$sdl_prefix"
+- if test x${SDL_CONFIG+set} != xset ; then
+- SDL_CONFIG=$sdl_prefix/bin/sdl-config
+- fi
+- fi
+-
+- AC_REQUIRE([AC_CANONICAL_TARGET])
+- AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
+- min_sdl_version=ifelse([$1], ,0.11.0,$1)
+- AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
+- no_sdl=""
+- if test "$SDL_CONFIG" = "no" ; then
+- no_sdl=yes
+- else
+- SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
+- SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
+-
+- sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
+- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+- sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
+- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+- sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
+- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+- if test "x$enable_sdltest" = "xyes" ; then
+- ac_save_CFLAGS="$CFLAGS"
+- ac_save_LIBS="$LIBS"
+- CFLAGS="$CFLAGS $SDL_CFLAGS"
+- LIBS="$LIBS $SDL_LIBS"
+-dnl
+-dnl Now check if the installed SDL is sufficiently new. (Also sanity
+-dnl checks the results of sdl-config to some extent
+-dnl
+- rm -f conf.sdltest
+- AC_TRY_RUN([
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include "SDL.h"
+-
+-char*
+-my_strdup (char *str)
+-{
+- char *new_str;
+-
+- if (str)
+- {
+- new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
+- strcpy (new_str, str);
+- }
+- else
+- new_str = NULL;
+-
+- return new_str;
+-}
+-
+-int main (int argc, char *argv[])
+-{
+- int major, minor, micro;
+- char *tmp_version;
+-
+- /* This hangs on some systems (?)
+- system ("touch conf.sdltest");
+- */
+- { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
+-
+- /* HP/UX 9 (%@#!) writes to sscanf strings */
+- tmp_version = my_strdup("$min_sdl_version");
+- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+- printf("%s, bad version string\n", "$min_sdl_version");
+- exit(1);
+- }
+-
+- if (($sdl_major_version > major) ||
+- (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
+- (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
+- {
+- return 0;
+- }
+- else
+- {
+- printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
+- printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
+- printf("*** best to upgrade to the required version.\n");
+- printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
+- printf("*** to point to the correct copy of sdl-config, and remove the file\n");
+- printf("*** config.cache before re-running configure\n");
+- return 1;
+- }
+-}
+-
+-],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+- CFLAGS="$ac_save_CFLAGS"
+- LIBS="$ac_save_LIBS"
+- fi
+- fi
+- if test "x$no_sdl" = x ; then
+- AC_MSG_RESULT(yes)
+- ifelse([$2], , :, [$2])
+- else
+- AC_MSG_RESULT(no)
+- if test "$SDL_CONFIG" = "no" ; then
+- echo "*** The sdl-config script installed by SDL could not be found"
+- echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
+- echo "*** your path, or set the SDL_CONFIG environment variable to the"
+- echo "*** full path to sdl-config."
+- else
+- if test -f conf.sdltest ; then
+- :
+- else
+- echo "*** Could not run SDL test program, checking why..."
+- CFLAGS="$CFLAGS $SDL_CFLAGS"
+- LIBS="$LIBS $SDL_LIBS"
+- AC_TRY_LINK([
+-#include <stdio.h>
+-#include "SDL.h"
+-
+-int main(int argc, char *argv[])
+-{ return 0; }
+-#undef main
+-#define main K_and_R_C_main
+-], [ return 0; ],
+- [ echo "*** The test program compiled, but did not run. This usually means"
+- echo "*** that the run-time linker is not finding SDL or finding the wrong"
+- echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
+- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+- echo "*** to the installed location Also, make sure you have run ldconfig if that"
+- echo "*** is required on your system"
+- echo "***"
+- echo "*** If you have an old version installed, it is best to remove it, although"
+- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+- [ echo "*** The test program failed to compile or link. See the file config.log for the"
+- echo "*** exact error that occured. This usually means SDL was incorrectly installed"
+- echo "*** or that you have moved SDL since it was installed. In the latter case, you"
+- echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
+- CFLAGS="$ac_save_CFLAGS"
+- LIBS="$ac_save_LIBS"
+- fi
+- fi
+- SDL_CFLAGS=""
+- SDL_LIBS=""
+- ifelse([$3], , :, [$3])
+- fi
+- AC_SUBST(SDL_CFLAGS)
+- AC_SUBST(SDL_LIBS)
+- rm -f conf.sdltest
+-])
+-## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
+-## Copyright (C) 1996-1999, 2000 Free Software Foundation, Inc.
+-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+-##
+-## 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.
+-##
+-## As a special exception to the GNU General Public License, if you
+-## distribute this file as part of a program that contains a
+-## configuration script generated by Autoconf, you may include it under
+-## the same distribution terms that you use for the rest of that program.
+-
+-# serial 40 AC_PROG_LIBTOOL
+-AC_DEFUN(AC_PROG_LIBTOOL,
+-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+-
+-# Save cache, so that ltconfig can load it
+-AC_CACHE_SAVE
+-
+-# Actually configure libtool. ac_aux_dir is where install-sh is found.
+-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
+-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
+-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
+-|| AC_MSG_ERROR([libtool configure failed])
+-
+-# Reload cache, that may have been modified by ltconfig
+-AC_CACHE_LOAD
+-
+-# This can be used to rebuild libtool when needed
+-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
+-
+-# Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+-AC_SUBST(LIBTOOL)dnl
+-
+-# Redirect the config.log output again, so that the ltconfig log is not
+-# clobbered by the next message.
+-exec 5>>./config.log
+-])
+-
+-AC_DEFUN(AC_LIBTOOL_SETUP,
+-[AC_PREREQ(2.13)dnl
+-AC_REQUIRE([AC_ENABLE_SHARED])dnl
+-AC_REQUIRE([AC_ENABLE_STATIC])dnl
+-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-AC_REQUIRE([AC_PROG_RANLIB])dnl
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([AC_PROG_LD])dnl
+-AC_REQUIRE([AC_PROG_NM])dnl
+-AC_REQUIRE([AC_PROG_LN_S])dnl
+-dnl
+-
+-case "$target" in
+-NONE) lt_target="$host" ;;
+-*) lt_target="$target" ;;
+-esac
+-
+-# Check for any special flags to pass to ltconfig.
+-libtool_flags="--cache-file=$cache_file"
+-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
+-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
+-test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
+-test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
+-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
+-[libtool_flags="$libtool_flags --enable-dlopen"])
+-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+-[libtool_flags="$libtool_flags --enable-win32-dll"])
+-AC_ARG_ENABLE(libtool-lock,
+- [ --disable-libtool-lock avoid locking (might break parallel builds)])
+-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
+-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
+-
+-# Some flags need to be propagated to the compiler or linker for good
+-# libtool support.
+-case "$lt_target" in
+-*-*-irix6*)
+- # Find out which ABI we are using.
+- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+- if AC_TRY_EVAL(ac_compile); then
+- case "`/usr/bin/file conftest.o`" in
+- *32-bit*)
+- LD="${LD-ld} -32"
+- ;;
+- *N32*)
+- LD="${LD-ld} -n32"
+- ;;
+- *64-bit*)
+- LD="${LD-ld} -64"
+- ;;
+- esac
+- fi
+- rm -rf conftest*
+- ;;
+-
+-*-*-sco3.2v5*)
+- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+- SAVE_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -belf"
+- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+- [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+- CFLAGS="$SAVE_CFLAGS"
+- fi
+- ;;
+-
+-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+-[*-*-cygwin* | *-*-mingw*)
+- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+- AC_CHECK_TOOL(AS, as, false)
+- AC_CHECK_TOOL(OBJDUMP, objdump, false)
+- ;;
+-])
+-esac
+-])
+-
+-# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+-AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+-
+-# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+-AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+-
+-# AC_ENABLE_SHARED - implement the --enable-shared flag
+-# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+-# `yes'.
+-AC_DEFUN(AC_ENABLE_SHARED, [dnl
+-define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE(shared,
+-changequote(<<, >>)dnl
+-<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+-changequote([, ])dnl
+-[p=${PACKAGE-default}
+-case "$enableval" in
+-yes) enable_shared=yes ;;
+-no) enable_shared=no ;;
+-*)
+- enable_shared=no
+- # Look at the argument we got. We use all the common list separators.
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+- for pkg in $enableval; do
+- if test "X$pkg" = "X$p"; then
+- enable_shared=yes
+- fi
+- done
+- IFS="$ac_save_ifs"
+- ;;
+-esac],
+-enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+-])
+-
+-# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+-AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_SHARED(no)])
+-
+-# AC_ENABLE_STATIC - implement the --enable-static flag
+-# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+-# `yes'.
+-AC_DEFUN(AC_ENABLE_STATIC, [dnl
+-define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE(static,
+-changequote(<<, >>)dnl
+-<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+-changequote([, ])dnl
+-[p=${PACKAGE-default}
+-case "$enableval" in
+-yes) enable_static=yes ;;
+-no) enable_static=no ;;
+-*)
+- enable_static=no
+- # Look at the argument we got. We use all the common list separators.
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+- for pkg in $enableval; do
+- if test "X$pkg" = "X$p"; then
+- enable_static=yes
+- fi
+- done
+- IFS="$ac_save_ifs"
+- ;;
+-esac],
+-enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+-])
+-
+-# AC_DISABLE_STATIC - set the default static flag to --disable-static
+-AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_STATIC(no)])
+-
+-
+-# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+-# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+-# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+-# `yes'.
+-AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
+-define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+-AC_ARG_ENABLE(fast-install,
+-changequote(<<, >>)dnl
+-<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+-changequote([, ])dnl
+-[p=${PACKAGE-default}
+-case "$enableval" in
+-yes) enable_fast_install=yes ;;
+-no) enable_fast_install=no ;;
+-*)
+- enable_fast_install=no
+- # Look at the argument we got. We use all the common list separators.
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+- for pkg in $enableval; do
+- if test "X$pkg" = "X$p"; then
+- enable_fast_install=yes
+- fi
+- done
+- IFS="$ac_save_ifs"
+- ;;
+-esac],
+-enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+-])
+-
+-# AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
+-AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+-AC_ENABLE_FAST_INSTALL(no)])
+-
+-# AC_PROG_LD - find the path to the GNU or non-GNU linker
+-AC_DEFUN(AC_PROG_LD,
+-[AC_ARG_WITH(gnu-ld,
+-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+-AC_REQUIRE([AC_PROG_CC])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+-ac_prog=ld
+-if test "$ac_cv_prog_gcc" = yes; then
+- # Check if gcc -print-prog-name=ld gives a path.
+- AC_MSG_CHECKING([for ld used by GCC])
+- ac_prog=`($CC -print-prog-name=ld) 2>&5`
+- case "$ac_prog" in
+- # Accept absolute paths.
+-changequote(,)dnl
+- [\\/]* | [A-Za-z]:[\\/]*)
+- re_direlt='/[^/][^/]*/\.\./'
+-changequote([,])dnl
+- # Canonicalize the path of ld
+- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+- done
+- test -z "$LD" && LD="$ac_prog"
+- ;;
+- "")
+- # If it fails, then pretend we aren't using GCC.
+- ac_prog=ld
+- ;;
+- *)
+- # If it is relative, then search for the first ld in PATH.
+- with_gnu_ld=unknown
+- ;;
+- esac
+-elif test "$with_gnu_ld" = yes; then
+- AC_MSG_CHECKING([for GNU ld])
+-else
+- AC_MSG_CHECKING([for non-GNU ld])
+-fi
+-AC_CACHE_VAL(ac_cv_path_LD,
+-[if test -z "$LD"; then
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+- for ac_dir in $PATH; do
+- test -z "$ac_dir" && ac_dir=.
+- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+- ac_cv_path_LD="$ac_dir/$ac_prog"
+- # Check to see if the program is GNU ld. I'd rather use --version,
+- # but apparently some GNU ld's only accept -v.
+- # Break only if it was the GNU/non-GNU ld that we prefer.
+- if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+- test "$with_gnu_ld" != no && break
+- else
+- test "$with_gnu_ld" != yes && break
+- fi
+- fi
+- done
+- IFS="$ac_save_ifs"
+-else
+- ac_cv_path_LD="$LD" # Let the user override the test with a path.
+-fi])
+-LD="$ac_cv_path_LD"
+-if test -n "$LD"; then
+- AC_MSG_RESULT($LD)
+-else
+- AC_MSG_RESULT(no)
+-fi
+-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+-AC_PROG_LD_GNU
+-])
+-
+-AC_DEFUN(AC_PROG_LD_GNU,
+-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
+-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+- ac_cv_prog_gnu_ld=yes
+-else
+- ac_cv_prog_gnu_ld=no
+-fi])
+-])
+-
+-# AC_PROG_NM - find the path to a BSD-compatible name lister
+-AC_DEFUN(AC_PROG_NM,
+-[AC_MSG_CHECKING([for BSD-compatible nm])
+-AC_CACHE_VAL(ac_cv_path_NM,
+-[if test -n "$NM"; then
+- # Let the user override the test.
+- ac_cv_path_NM="$NM"
+-else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+- test -z "$ac_dir" && ac_dir=.
+- if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
+- # Check to see if the nm accepts a BSD-compat flag.
+- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+- # nm: unknown option "B" ignored
+- if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+- ac_cv_path_NM="$ac_dir/nm -B"
+- break
+- elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+- ac_cv_path_NM="$ac_dir/nm -p"
+- break
+- else
+- ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
+- continue # so that we can try to find one that supports BSD flags
+- fi
+- fi
+- done
+- IFS="$ac_save_ifs"
+- test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
+-fi])
+-NM="$ac_cv_path_NM"
+-AC_MSG_RESULT([$NM])
+-])
+-
+-# AC_CHECK_LIBM - check for math library
+-AC_DEFUN(AC_CHECK_LIBM,
+-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+-LIBM=
+-case "$lt_target" in
+-*-*-beos* | *-*-cygwin*)
+- # These system don't have libm
+- ;;
+-*-ncr-sysv4.3*)
+- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+- AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+- ;;
+-*)
+- AC_CHECK_LIB(m, main, LIBM="-lm")
+- ;;
+-esac
+-])
+-
+-# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+-# the libltdl convenience library and INCLTDL to the include flags for
+-# the libltdl header and adds --enable-ltdl-convenience to the
+-# configure arguments. Note that LIBLTDL and INCLTDL are not
+-# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
+-# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
+-# with '${top_builddir}/' and INCLTDL will be prefixed with
+-# '${top_srcdir}/' (note the single quotes!). If your package is not
+-# flat and you're not using automake, define top_builddir and
+-# top_srcdir appropriately in the Makefiles.
+-AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+- case "$enable_ltdl_convenience" in
+- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+- "") enable_ltdl_convenience=yes
+- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+- esac
+- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+-])
+-
+-# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+-# the libltdl installable library and INCLTDL to the include flags for
+-# the libltdl header and adds --enable-ltdl-install to the configure
+-# arguments. Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
+-# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
+-# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
+-# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
+-# with '${top_srcdir}/' (note the single quotes!). If your package is
+-# not flat and you're not using automake, define top_builddir and
+-# top_srcdir appropriately in the Makefiles.
+-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+-AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+- AC_CHECK_LIB(ltdl, main,
+- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+- [if test x"$enable_ltdl_install" = xno; then
+- AC_MSG_WARN([libltdl not installed, but installation disabled])
+- else
+- enable_ltdl_install=yes
+- fi
+- ])
+- if test x"$enable_ltdl_install" = x"yes"; then
+- ac_configure_args="$ac_configure_args --enable-ltdl-install"
+- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+- INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+- else
+- ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+- LIBLTDL="-lltdl"
+- INCLTDL=
+- fi
+-])
+-
+-dnl old names
+-AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
+-AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
+-AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
+-AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
+-AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
+-AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
+-AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
+-
+-dnl This is just to silence aclocal about the macro not being used
+-ifelse([AC_DISABLE_FAST_INSTALL])dnl
+Index: SDL_image-1.2.3/m4/sdl.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ SDL_image-1.2.3/m4/sdl.m4 2008-07-24 01:32:20.220875043 +0200
+@@ -0,0 +1,174 @@
++# Configure paths for SDL
++# Sam Lantinga 9/21/99
++# stolen from Manish Singh
++# stolen back from Frank Belew
++# stolen from Manish Singh
++# Shamelessly stolen from Owen Taylor
++
++dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
++dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
++dnl
++AC_DEFUN(AM_PATH_SDL,
++[dnl
++dnl Get the cflags and libraries from the sdl-config script
++dnl
++AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
++ sdl_prefix="$withval", sdl_prefix="")
++AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
++ sdl_exec_prefix="$withval", sdl_exec_prefix="")
++AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
++ , enable_sdltest=yes)
++
++ if test x$sdl_exec_prefix != x ; then
++ sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
++ if test x${SDL_CONFIG+set} != xset ; then
++ SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
++ fi
++ fi
++ if test x$sdl_prefix != x ; then
++ sdl_args="$sdl_args --prefix=$sdl_prefix"
++ if test x${SDL_CONFIG+set} != xset ; then
++ SDL_CONFIG=$sdl_prefix/bin/sdl-config
++ fi
++ fi
++
++ AC_REQUIRE([AC_CANONICAL_TARGET])
++ AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
++ min_sdl_version=ifelse([$1], ,0.11.0,$1)
++ AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
++ no_sdl=""
++ if test "$SDL_CONFIG" = "no" ; then
++ no_sdl=yes
++ else
++ SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
++ SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
++
++ sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
++ sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
++ sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
++ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
++ if test "x$enable_sdltest" = "xyes" ; then
++ ac_save_CFLAGS="$CFLAGS"
++ ac_save_LIBS="$LIBS"
++ CFLAGS="$CFLAGS $SDL_CFLAGS"
++ LIBS="$LIBS $SDL_LIBS"
++dnl
++dnl Now check if the installed SDL is sufficiently new. (Also sanity
++dnl checks the results of sdl-config to some extent
++dnl
++ rm -f conf.sdltest
++ AC_TRY_RUN([
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include "SDL.h"
++
++char*
++my_strdup (char *str)
++{
++ char *new_str;
++
++ if (str)
++ {
++ new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
++ strcpy (new_str, str);
++ }
++ else
++ new_str = NULL;
++
++ return new_str;
++}
++
++int main (int argc, char *argv[])
++{
++ int major, minor, micro;
++ char *tmp_version;
++
++ /* This hangs on some systems (?)
++ system ("touch conf.sdltest");
++ */
++ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
++
++ /* HP/UX 9 (%@#!) writes to sscanf strings */
++ tmp_version = my_strdup("$min_sdl_version");
++ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
++ printf("%s, bad version string\n", "$min_sdl_version");
++ exit(1);
++ }
++
++ if (($sdl_major_version > major) ||
++ (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
++ (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
++ {
++ return 0;
++ }
++ else
++ {
++ printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
++ printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
++ printf("*** best to upgrade to the required version.\n");
++ printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
++ printf("*** to point to the correct copy of sdl-config, and remove the file\n");
++ printf("*** config.cache before re-running configure\n");
++ return 1;
++ }
++}
++
++],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ if test "x$no_sdl" = x ; then
++ AC_MSG_RESULT(yes)
++ ifelse([$2], , :, [$2])
++ else
++ AC_MSG_RESULT(no)
++ if test "$SDL_CONFIG" = "no" ; then
++ echo "*** The sdl-config script installed by SDL could not be found"
++ echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
++ echo "*** your path, or set the SDL_CONFIG environment variable to the"
++ echo "*** full path to sdl-config."
++ else
++ if test -f conf.sdltest ; then
++ :
++ else
++ echo "*** Could not run SDL test program, checking why..."
++ CFLAGS="$CFLAGS $SDL_CFLAGS"
++ LIBS="$LIBS $SDL_LIBS"
++ AC_TRY_LINK([
++#include <stdio.h>
++#include "SDL.h"
++
++int main(int argc, char *argv[])
++{ return 0; }
++#undef main
++#define main K_and_R_C_main
++], [ return 0; ],
++ [ echo "*** The test program compiled, but did not run. This usually means"
++ echo "*** that the run-time linker is not finding SDL or finding the wrong"
++ echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
++ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
++ echo "*** to the installed location Also, make sure you have run ldconfig if that"
++ echo "*** is required on your system"
++ echo "***"
++ echo "*** If you have an old version installed, it is best to remove it, although"
++ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
++ [ echo "*** The test program failed to compile or link. See the file config.log for the"
++ echo "*** exact error that occured. This usually means SDL was incorrectly installed"
++ echo "*** or that you have moved SDL since it was installed. In the latter case, you"
++ echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
++ CFLAGS="$ac_save_CFLAGS"
++ LIBS="$ac_save_LIBS"
++ fi
++ fi
++ SDL_CFLAGS=""
++ SDL_LIBS=""
++ ifelse([$3], , :, [$3])
++ fi
++ AC_SUBST(SDL_CFLAGS)
++ AC_SUBST(SDL_LIBS)
++ rm -f conf.sdltest
++])
+Index: SDL_image-1.2.3/configure.in
+===================================================================
+--- SDL_image-1.2.3.orig/configure.in 2008-07-24 01:34:07.807534207 +0200
++++ SDL_image-1.2.3/configure.in 2008-07-24 01:34:16.960864590 +0200
+@@ -44,6 +44,8 @@
+ AM_INIT_AUTOMAKE(SDL_image, $VERSION)
+ AM_MAINTAINER_MODE
+
++AC_CONFIG_MACRO_DIR([m4])
++
+ dnl Check for tools
+
+ AC_LIBTOOL_WIN32_DLL
diff --git a/packages/libsdl/libsdl-image_1.2.3.bb b/packages/libsdl/libsdl-image_1.2.3.bb
index b35aa3bf1e..1a911f9f62 100644
--- a/packages/libsdl/libsdl-image_1.2.3.bb
+++ b/packages/libsdl/libsdl-image_1.2.3.bb
@@ -3,15 +3,19 @@ SECTION = "libs"
PRIORITY = "optional"
DEPENDS = "zlib libpng jpeg virtual/libsdl"
LICENSE = "LGPL"
+PR = "r1"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL_image-${PV}.tar.gz \
+ file://autotools.patch;patch=1 \
+ "
-SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL_image-${PV}.tar.gz"
S = "${WORKDIR}/SDL_image-${PV}"
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
inherit autotools
do_stage() {
- oe_libinstall -so libSDL_image ${STAGING_LIBDIR}
- ln -sf libSDL_image.so ${STAGING_LIBDIR}/libSDL_image-1.2.so
- install -m 0644 SDL_image.h ${STAGING_INCDIR}/SDL/SDL_image.h
+ autotools_stage_all
}
diff --git a/packages/libsdl/libsdl-net-1.2.7/.mtn2git_empty b/packages/libsdl/libsdl-net-1.2.7/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/libsdl/libsdl-net-1.2.7/.mtn2git_empty
diff --git a/packages/libsdl/libsdl-net-1.2.7/libtool2.patch b/packages/libsdl/libsdl-net-1.2.7/libtool2.patch
new file mode 100644
index 0000000000..ea6daf7d48
--- /dev/null
+++ b/packages/libsdl/libsdl-net-1.2.7/libtool2.patch
@@ -0,0 +1,13 @@
+Index: SDL_net-1.2.7/configure.in
+===================================================================
+--- SDL_net-1.2.7.orig/configure.in 2007-07-20 14:40:02.000000000 +0200
++++ SDL_net-1.2.7/configure.in 2008-07-24 00:41:04.282718579 +0200
+@@ -42,6 +42,8 @@
+ dnl Setup for automake
+ AM_INIT_AUTOMAKE(SDL_net, $VERSION)
+
++dnl got macros
++AC_CONFIG_MACRO_DIR([acinclude])
+ dnl Check for tools
+
+ AC_LIBTOOL_WIN32_DLL
diff --git a/packages/libsdl/libsdl-net_1.2.7.bb b/packages/libsdl/libsdl-net_1.2.7.bb
index 8149cce379..8cbea5bd01 100644
--- a/packages/libsdl/libsdl-net_1.2.7.bb
+++ b/packages/libsdl/libsdl-net_1.2.7.bb
@@ -3,16 +3,19 @@ SECTION = "libs/network"
PRIORITY = "optional"
DEPENDS = "virtual/libsdl"
LICENSE = "LGPL"
+PR = "r1"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_net/release/SDL_net-${PV}.tar.gz \
+ file://libtool2.patch;patch=1 \
+ "
-SRC_URI = "http://www.libsdl.org/projects/SDL_net/release/SDL_net-${PV}.tar.gz"
S = "${WORKDIR}/SDL_net-${PV}"
inherit autotools
+
EXTRA_OECONF += "SDL_CONFIG=${STAGING_BINDIR_CROSS}/sdl-config"
do_stage() {
- oe_libinstall -so libSDL_net ${STAGING_LIBDIR}
- ln -sf libSDL_net.so ${STAGING_LIBDIR}/libSDL_net-1.2.so
- install -m 0644 SDL_net.h ${STAGING_INCDIR}/SDL/SDL_net.h
+ autotools_stage_all
}
diff --git a/packages/libsdl/libsdl-ttf_2.0.3.bb b/packages/libsdl/libsdl-ttf_2.0.3.bb
index 59e9174fac..250fb698ce 100644
--- a/packages/libsdl/libsdl-ttf_2.0.3.bb
+++ b/packages/libsdl/libsdl-ttf_2.0.3.bb
@@ -3,6 +3,7 @@ SECTION = "libs"
PRIORITY = "optional"
DEPENDS = "virtual/libsdl freetype"
LICENSE = "LGPL"
+PR = "r1"
SRC_URI = "http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${PV}.tar.gz \
file://new-freetype-includes.patch;patch=1"
@@ -11,7 +12,5 @@ S = "${WORKDIR}/SDL_ttf-${PV}"
inherit autotools
do_stage() {
- oe_libinstall -so libSDL_ttf ${STAGING_LIBDIR}
- ln -sf libSDL_ttf.so ${STAGING_LIBDIR}/libSDL_ttf-2.0.so
- install -m 0644 SDL_ttf.h ${STAGING_INCDIR}/SDL/SDL_ttf.h
+ autotools_stage_all
}
diff --git a/packages/linux/linux-2.6.23/netvista/defconfig b/packages/linux/linux-2.6.23/netvista/defconfig
index cb069c7887..1d98edf875 100644
--- a/packages/linux/linux-2.6.23/netvista/defconfig
+++ b/packages/linux/linux-2.6.23/netvista/defconfig
@@ -780,10 +780,10 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600
# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_TSDEV=m
+CONFIG_INPUT_TSDEV=y
CONFIG_INPUT_TSDEV_SCREEN_X=800
CONFIG_INPUT_TSDEV_SCREEN_Y=600
-CONFIG_INPUT_EVDEV=m
+CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
diff --git a/packages/linux/linux-neuros_git.bb b/packages/linux/linux-neuros_git.bb
index 2fe367cd49..345e3174ae 100644
--- a/packages/linux/linux-neuros_git.bb
+++ b/packages/linux/linux-neuros_git.bb
@@ -2,10 +2,10 @@ require linux.inc
DESCRIPTION = "Linux kernel for Neuros OSD devices"
-SRCREV = "e014243410af1c7c214e6974f5fc2f23c0a1c1ee"
+SRCREV = "7ee93e596406d465e5af2c119e13def9af323f6b"
PV = "2.6.23-${PR}+git${SRCREV}"
-PR = "r7"
+PR = "r8"
COMPATIBLE_MACHINE = "(neuros-osd|neuros-osd2)"
diff --git a/packages/linux/linux-omap2-git/beagleboard/400khz-i2c.diff b/packages/linux/linux-omap2-git/beagleboard/400khz-i2c.diff
new file mode 100644
index 0000000000..f749dbcf5b
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/400khz-i2c.diff
@@ -0,0 +1,22 @@
+From: Steve Sakoman <steve@sakoman.com>
+Date: Wed, 16 Jul 2008 19:38:43 +0000 (-0700)
+Subject: omap3beagle: set data rate on i2c-1 to 400, since 2600 seems to be
+X-Git-Url: http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff_plain;h=12d6504334a830774ff1d42cee4b7296ac9fb7d2
+
+omap3beagle: set data rate on i2c-1 to 400, since 2600 seems to be
+flakey
+---
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index fdce787..938ad73 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -39,7 +39,7 @@ static struct omap_uart_config omap3_beagle_uart_config __initdata = {
+
+ static int __init omap3_beagle_i2c_init(void)
+ {
+- omap_register_i2c_bus(1, 2600, NULL, 0);
++ omap_register_i2c_bus(1, 400, NULL, 0);
+ omap_register_i2c_bus(2, 400, NULL, 0);
+ omap_register_i2c_bus(3, 400, NULL, 0);
+ return 0;
diff --git a/packages/linux/linux-omap2-git/beagleboard/4bitmmc.diff b/packages/linux/linux-omap2-git/beagleboard/4bitmmc.diff
new file mode 100644
index 0000000000..5cd120c544
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/4bitmmc.diff
@@ -0,0 +1,38 @@
+From: Purushotam Kumar <purushotam@ti.com>
+Date: Fri, 18 Jul 2008 23:28:57 +0000 (-0700)
+Subject: OMAP3:devices.c:Enabling 4-bit for SD card
+X-Git-Url: http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff_plain;h=6c4d34031c80ca4b50ffe73a4ef7fe197a760a60
+
+OMAP3:devices.c:Enabling 4-bit for SD card
+
+SD card was working in 1-bit mode.This patch will configure SD card in
+4-bit mode and hence performance will increase.
+
+Signed-off-by: Purushotam Kumar <purushotam@ti.com>
+Acked-by: Madhusudhan Chikkature Rajashekar <madhu.cr@ti.com>
+---
+
+diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
+index b83f9a6..d0cfceb 100644
+--- a/arch/arm/plat-omap/devices.c
++++ b/arch/arm/plat-omap/devices.c
+@@ -296,13 +296,17 @@ static void __init omap_init_mmc(void)
+ mmc = &mmc_conf->mmc[0];
+
+ if (cpu_is_omap2430() || cpu_is_omap34xx()) {
+- if (mmc->enabled)
++ if (mmc->enabled) {
++ mmc1_data.conf = *mmc;
+ (void) platform_device_register(&mmc_omap_device1);
++ }
+
+ #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX)
+ mmc = &mmc_conf->mmc[1];
+- if (mmc->enabled)
++ if (mmc->enabled) {
++ mmc2_data.conf = *mmc;
+ (void) platform_device_register(&mmc_omap_device2);
++ }
+ #endif
+
+ return;
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch
index b6142ea1f5..c361c33d61 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch
@@ -1,42 +1,6 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on shovel.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME
- autolearn=ham version=3.2.1
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 26975 invoked by uid 1003); 18 Jul 2008 01:35:27 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:27 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1756265AbYGRBf0 (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:26 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751582AbYGRBfZ
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:25 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49361 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1752321AbYGRBfX (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:23 -0400
-Received: (qmail 13868 invoked by uid 526); 18 Jul 2008 01:35:22 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:49 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 1/9] TWL4030: remove superfluous PWR interrupt status clear
- before masking
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:49 -0600
-Message-ID: <20080718013448.18943.6984.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: remove superfluous PWR interrupt status clear before masking
+
+From: Paul Walmsley <paul@pwsan.com>
twl_irq_init() clears PWR interrupt status bits, then masks the interrupts
off, then clears the PWR interrupt status bits again. The first clear
@@ -77,10 +41,3 @@ index adc45d4..ff662bc 100644
/* PWR_IMR1 */
res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x1);
if (res < 0) {
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch
index 18b2f589c1..48a59b945b 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch
@@ -1,42 +1,6 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
- morningsun.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
- DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 17413 invoked by uid 1003); 18 Jul 2008 01:35:27 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:27 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1757296AbYGRBf1 (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:27 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751582AbYGRBf0
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:26 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49362 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1754168AbYGRBfY (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:24 -0400
-Received: (qmail 13872 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:50 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 2/9] TWL4030: clear TWL GPIO interrupt status registers
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:50 -0600
-Message-ID: <20080718013449.18943.78895.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: clear TWL GPIO interrupt status registers
+
+From: Paul Walmsley <paul@pwsan.com>
twl_init_irq() does not clear the TWL GPIO ISR registers, but the PIH
ISR thinks that it has. This causes any previously-latched GPIO interrupts
@@ -105,10 +69,3 @@ index ff662bc..dfc3805 100644
/* install an irq handler for each of the PIH modules */
for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
set_irq_chip(i, &twl4030_irq_chip);
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch
index 062d99fe5a..fe1bea5398 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch
@@ -1,43 +1,6 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
- morningsun.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
- DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 14206 invoked by uid 1003); 18 Jul 2008 01:35:28 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:28 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1751582AbYGRBf1 (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:27 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754168AbYGRBf1
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:27 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49363 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1754586AbYGRBfY (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:24 -0400
-Received: (qmail 13876 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:50 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 3/9] TWL4030: use correct register addresses for BCI IMR
- registers
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:50 -0600
-Message-ID: <20080718013450.18943.33123.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: use correct register addresses for BCI IMR registers
+
+From: Paul Walmsley <paul@pwsan.com>
The existing code to mask and clear BCI interrupts in twl_init_irq() is
wrong. It uses the wrong register offsets, it does not mask all of the
@@ -117,10 +80,3 @@ index dfc3805..bb0732c 100644
if (res < 0) {
pr_err("%s[%d][%d]\n", msg, res, __LINE__);
return;
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch
index 12d76bfb23..fb65ac98bb 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch
@@ -1,42 +1,6 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
- morningsun.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
- DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 21713 invoked by uid 1003); 18 Jul 2008 01:35:29 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:29 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1754758AbYGRBf2 (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:28 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757008AbYGRBf1
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:27 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49364 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1754758AbYGRBfY (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:24 -0400
-Received: (qmail 13880 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:51 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 4/9] TWL4030: clear MADC interrupt status registers upon init
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:51 -0600
-Message-ID: <20080718013450.18943.33397.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: clear MADC interrupt status registers upon init
+
+From: Paul Walmsley <paul@pwsan.com>
twl_init_irq() does not clear MADC interrupt status registers upon init -
fix.
@@ -72,10 +36,3 @@ index bb0732c..9d93524 100644
/* key Pad */
/* KEYPAD - IMR1 */
res = twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xFF, (0x12));
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch
index b41c836711..02a72ed9df 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch
@@ -1,68 +1,54 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
- morningsun.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
- DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 11680 invoked by uid 1003); 18 Jul 2008 01:35:29 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:29 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1755063AbYGRBf2 (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:28 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754168AbYGRBf2
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:28 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49365 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1755063AbYGRBfZ (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
-Received: (qmail 13884 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:52 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 5/9] TWL4030: read and write module ISRs to clear them at init
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:52 -0600
-Message-ID: <20080718013451.18943.18579.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: use *_SIH_CTRL.COR bit to determine whether to read or write ISR to clear
+
+From: Paul Walmsley <paul@pwsan.com>
TWL4030 interrupt status register bits can be cleared in one of two ways:
either by reading from the register, or by writing a 1 to the
appropriate bit(s) in the register. This behavior can be altered at any
time by the <twlmodule>_SIH_CTRL.COR register bit ("clear-on-read").
-twl4030-core.c does not touch these *_SIH_CTRL registers during boot,
-and the TWL4030 TRM is deeply confused as to whether COR=1 means that
-the registers are cleared on reads, or cleared on writes.
+The TWL4030 TRM is deeply confused as to whether COR=1 means that the
+registers are cleared on reads, or cleared on writes. Peter De
+Schrijver <peter.de-schrijver> confirms that COR=1 means that the registers
+are cleared on read.
+
+So, for each TWL4030 SIH, check the value of the *_SIH_CTRL.COR bit, and if
+it is 1, use reads to clear the ISRs; if it is 0, use writes.
+
+Also, use WARN_ON() to warn if the read/write failed, and don't skip
+the rest of the initialization on failure either.
+
+Thanks to Peter for his help with this patch.
-So, take the cautious way out and both read from and write to the TWL4030
-module ISRs to clear them at startup. Also, use WARN_ON() to warn if the
-read/write failed, and don't skip the rest of the initialization on failure
-either.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
- drivers/i2c/chips/twl4030-core.c | 128 +++++++++++++++-----------------------
- 1 files changed, 51 insertions(+), 77 deletions(-)
+ drivers/i2c/chips/twl4030-core.c | 183 ++++++++++++++++++++++----------------
+ 1 files changed, 106 insertions(+), 77 deletions(-)
diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
-index 9d93524..615fb84 100644
+index 9d93524..eae0634 100644
--- a/drivers/i2c/chips/twl4030-core.c
+++ b/drivers/i2c/chips/twl4030-core.c
-@@ -712,6 +712,28 @@ static int power_companion_init(void)
+@@ -133,6 +133,16 @@
+ /* on I2C-1 for 2430SDP */
+ #define CONFIG_I2C_TWL4030_ID 1
+
++/* SIH_CTRL registers */
++#define TWL4030_INT_PWR_SIH_CTRL 0x07
++#define TWL4030_INTERRUPTS_BCISIHCTRL 0x0d
++#define TWL4030_MADC_MADC_SIH_CTRL 0x67
++#define TWL4030_KEYPAD_KEYP_SIH_CTRL 0x17
++#define TWL4030_GPIO_GPIO_SIH_CTRL 0x2d
++
++#define TWL4030_SIH_CTRL_COR_MASK (1 << 2)
++
++
+ /* Helper functions */
+ static int
+ twl4030_detect_client(struct i2c_adapter *adapter, unsigned char sid);
+@@ -712,13 +722,61 @@ static int power_companion_init(void)
return e;
}
@@ -70,28 +56,46 @@ index 9d93524..615fb84 100644
+ * twl4030_i2c_clear_isr - clear TWL4030 SIH ISR regs via read + write
+ * @mod_no: TWL4030 module number
+ * @reg: register index to clear
++ * @cor: value of the <module>_SIH_CTRL.COR bit (1 or 0)
+ *
-+ * Reads, then writes 0xff to a TWL4030 interrupt status register to ensure
-+ * that interrupts are cleared. The read + write is necessary since we
-+ * don't know whether the COR bit is set in <module>_SIH_CTRL. Returns
-+ * the status from the I2C read operation.
++ * Either reads (cor == 1) or writes (cor == 0) to a TWL4030 interrupt
++ * status register to ensure that any prior interrupts are cleared.
++ * Returns the status from the I2C read operation.
+ */
-+static int twl4030_i2c_clear_isr(u8 mod_no, u8 reg)
++static int twl4030_i2c_clear_isr(u8 mod_no, u8 reg, u8 cor)
+{
-+ int res;
+ u8 tmp;
+
-+ res = twl4030_i2c_read_u8(mod_no, &tmp, reg);
-+ if (res < 0)
-+ return res;
++ return (cor) ? twl4030_i2c_read_u8(mod_no, &tmp, reg) :
++ twl4030_i2c_write_u8(mod_no, 0xff, reg);
++}
++
++/**
++ * twl4030_read_cor_bit - are TWL module ISRs cleared by reads or writes?
++ * @mod_no: TWL4030 module number
++ * @reg: register index to clear
++ *
++ * Returns 1 if the TWL4030 SIH interrupt status registers (ISRs) for
++ * the specified TWL module are cleared by reads, or 0 if cleared by
++ * writes.
++ */
++static int twl4030_read_cor_bit(u8 mod_no, u8 reg)
++{
++ u8 tmp = 0;
++
++ WARN_ON(twl4030_i2c_read_u8(mod_no, &tmp, reg) < 0);
++
++ tmp &= TWL4030_SIH_CTRL_COR_MASK;
++ tmp >>= __ffs(TWL4030_SIH_CTRL_COR_MASK);
+
-+ return twl4030_i2c_write_u8(mod_no, 0xff, reg);
++ return tmp;
+}
+
static void twl_init_irq(void)
{
int i = 0;
-@@ -719,6 +741,13 @@ static void twl_init_irq(void)
+ int res = 0;
++ int cor;
char *msg = "Unable to register interrupt subsystem";
unsigned int irq_num;
@@ -102,19 +106,27 @@ index 9d93524..615fb84 100644
+ * handlers present.
+ */
+
++
/* PWR_IMR1 */
res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x1);
if (res < 0) {
-@@ -735,19 +764,11 @@ static void twl_init_irq(void)
+@@ -734,20 +792,18 @@ static void twl_init_irq(void)
+ }
/* Clear off any other pending interrupts on power */
++
++ /* Are PWR interrupt status bits cleared by reads or writes? */
++ cor = twl4030_read_cor_bit(TWL4030_MODULE_INT,
++ TWL4030_INT_PWR_SIH_CTRL);
++ WARN_ON(cor < 0);
++
/* PWR_ISR1 */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x00);
- if (res < 0) {
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x00) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x00, cor) < 0);
/* PWR_ISR2 */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x02);
@@ -123,21 +135,27 @@ index 9d93524..615fb84 100644
- return;
- }
- /* POWER HACK (END) */
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x02) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x02, cor) < 0);
+
/* Slave address 0x4A */
/* BCIIMR1A */
-@@ -779,32 +800,16 @@ static void twl_init_irq(void)
+@@ -778,33 +834,22 @@ static void twl_init_irq(void)
+ return;
}
++ /* Are BCI interrupt status bits cleared by reads or writes? */
++ cor = twl4030_read_cor_bit(TWL4030_MODULE_INTERRUPTS,
++ TWL4030_INTERRUPTS_BCISIHCTRL);
++ WARN_ON(cor < 0);
++
/* BCIISR1A */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x0);
- if (res < 0) {
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0, cor) < 0);
/* BCIISR2A */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x1);
@@ -145,7 +163,7 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x1) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x1, cor) < 0);
/* BCIISR1B */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x4);
@@ -153,7 +171,7 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x4) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x4, cor) < 0);
/* BCIISR2B */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x5);
@@ -161,20 +179,26 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x5) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x5, cor) < 0);
/* MAD C */
/* MADC_IMR1 */
-@@ -822,18 +827,10 @@ static void twl_init_irq(void)
+@@ -821,19 +866,16 @@ static void twl_init_irq(void)
+ return;
}
++ /* Are MADC interrupt status bits cleared by reads or writes? */
++ cor = twl4030_read_cor_bit(TWL4030_MODULE_MADC,
++ TWL4030_MADC_MADC_SIH_CTRL);
++ WARN_ON(cor < 0);
++
/* MADC_ISR1 */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x61);
- if (res < 0) {
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61, cor) < 0);
/* MADC_ISR2 */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x63);
@@ -182,11 +206,11 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x63) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x63, cor) < 0);
/* key Pad */
/* KEYPAD - IMR1 */
-@@ -842,12 +839,10 @@ static void twl_init_irq(void)
+@@ -842,12 +884,15 @@ static void twl_init_irq(void)
pr_err("%s[%d][%d]\n", msg, res, __LINE__);
return;
}
@@ -197,32 +221,43 @@ index 9d93524..615fb84 100644
- twl4030_i2c_read_u8(TWL4030_MODULE_KEYPAD, &clear, 0x11);
- }
+
++ /* Are keypad interrupt status bits cleared by reads or writes? */
++ cor = twl4030_read_cor_bit(TWL4030_MODULE_KEYPAD,
++ TWL4030_KEYPAD_KEYP_SIH_CTRL);
++ WARN_ON(cor < 0);
++
+ /* KEYPAD - ISR1 */
+ /* XXX does this still need to be done twice for some reason? */
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11, cor) < 0);
/* KEYPAD - IMR2 */
res = twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xFF, (0x14));
-@@ -856,6 +851,9 @@ static void twl_init_irq(void)
+@@ -856,6 +901,9 @@ static void twl_init_irq(void)
return;
}
+ /* KEYPAD - ISR2 */
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13, cor) < 0);
+
/* Slave address 0x49 */
/* GPIO_IMR1A */
res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x1C));
-@@ -900,46 +898,22 @@ static void twl_init_irq(void)
+@@ -899,47 +947,28 @@ static void twl_init_irq(void)
+ return;
}
++ /* Are GPIO interrupt status bits cleared by reads or writes? */
++ cor = twl4030_read_cor_bit(TWL4030_MODULE_GPIO,
++ TWL4030_GPIO_GPIO_SIH_CTRL);
++ WARN_ON(cor < 0);
++
/* GPIO_ISR1A */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x19);
- if (res < 0) {
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19, cor) < 0);
/* GPIO_ISR2A */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1a);
@@ -230,7 +265,7 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1a) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1a, cor) < 0);
/* GPIO_ISR3A */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1b);
@@ -238,7 +273,7 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1b) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1b, cor) < 0);
/* GPIO_ISR1B */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1f);
@@ -246,7 +281,7 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1f) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1f, cor) < 0);
/* GPIO_ISR2B */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x20);
@@ -254,7 +289,7 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x20) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x20, cor) < 0);
/* GPIO_ISR3B */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x21);
@@ -262,14 +297,7 @@ index 9d93524..615fb84 100644
- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
- return;
- }
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x21) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x21, cor) < 0);
/* install an irq handler for each of the PIH modules */
for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch
index 501437a365..67b837c454 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch
@@ -1,41 +1,6 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on shovel.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-1.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME
- autolearn=ham version=3.2.1
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 19695 invoked by uid 1003); 18 Jul 2008 01:35:30 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:30 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1756218AbYGRBf3 (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:29 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754168AbYGRBf3
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:29 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49366 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1756218AbYGRBfZ (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
-Received: (qmail 13888 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:53 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 6/9] TWL4030: change init-time IMR mask code to WARN if error
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:53 -0600
-Message-ID: <20080718013452.18943.96350.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: change init-time IMR mask code to WARN if error
+
+From: Paul Walmsley <paul@pwsan.com>
twl_init_irq() prints error messages and returns if any interrupt mask
register writes fail. Change this to generate a warning traceback and
@@ -50,11 +15,11 @@ Signed-off-by: Paul Walmsley <paul@pwsan.com>
1 files changed, 18 insertions(+), 82 deletions(-)
diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
-index 615fb84..1906635 100644
+index eae0634..99cc143 100644
--- a/drivers/i2c/chips/twl4030-core.c
+++ b/drivers/i2c/chips/twl4030-core.c
-@@ -749,18 +749,10 @@ static void twl_init_irq(void)
- */
+@@ -778,18 +778,10 @@ static void twl_init_irq(void)
+
/* PWR_IMR1 */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x1);
@@ -73,8 +38,8 @@ index 615fb84..1906635 100644
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff, 0x3) < 0);
/* Clear off any other pending interrupts on power */
- /* PWR_ISR1 */
-@@ -772,32 +764,16 @@ static void twl_init_irq(void)
+
+@@ -807,32 +799,16 @@ static void twl_init_irq(void)
/* Slave address 0x4A */
/* BCIIMR1A */
@@ -111,9 +76,9 @@ index 615fb84..1906635 100644
- }
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x7) < 0);
- /* BCIISR1A */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0) < 0);
-@@ -813,18 +789,10 @@ static void twl_init_irq(void)
+ /* Are BCI interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_INTERRUPTS,
+@@ -853,18 +829,10 @@ static void twl_init_irq(void)
/* MAD C */
/* MADC_IMR1 */
@@ -132,9 +97,9 @@ index 615fb84..1906635 100644
- }
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff, 0x64) < 0);
- /* MADC_ISR1 */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61) < 0);
-@@ -834,68 +802,36 @@ static void twl_init_irq(void)
+ /* Are MADC interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_MADC,
+@@ -879,11 +847,7 @@ static void twl_init_irq(void)
/* key Pad */
/* KEYPAD - IMR1 */
@@ -145,9 +110,10 @@ index 615fb84..1906635 100644
- }
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x12) < 0);
- /* KEYPAD - ISR1 */
- /* XXX does this still need to be done twice for some reason? */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11) < 0);
+ /* Are keypad interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_KEYPAD,
+@@ -895,57 +859,29 @@ static void twl_init_irq(void)
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11, cor) < 0);
/* KEYPAD - IMR2 */
- res = twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xFF, (0x14));
@@ -158,7 +124,7 @@ index 615fb84..1906635 100644
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x14) < 0);
/* KEYPAD - ISR2 */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13, cor) < 0);
/* Slave address 0x49 */
/* GPIO_IMR1A */
@@ -209,12 +175,5 @@ index 615fb84..1906635 100644
- }
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x24) < 0);
- /* GPIO_ISR1A */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19) < 0);
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
+ /* Are GPIO interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_GPIO,
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
index 2847e84f62..8e4c4d6be4 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
@@ -1,50 +1,13 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
- morningsun.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
- DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 26193 invoked by uid 1003); 18 Jul 2008 01:35:31 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:31 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1752321AbYGRBfb (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:31 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756854AbYGRBfb
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:31 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49367 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1756351AbYGRBfZ (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
-Received: (qmail 13892 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:54 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 7/9] TWL4030: move TWL module register defs into separate
- include files
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:54 -0600
-Message-ID: <20080718013453.18943.69329.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: move TWL module register defs into separate include files
-twl_init_irq() accesses TWL module IMR and ISR registers. Currently, it
-uses "magic numbers" for these register indices, but symbolic constants
-are definitely preferred. Rather than duplicating already existing
-symbolic constants in twl4030-gpio.c and twl4030-pwrirq.c, move the
-existing constants out into include files. This patch should not change
-kernel behavior.
+From: Paul Walmsley <paul@pwsan.com>
+
+twl_init_irq() uses "magic numbers" to access TWL module IMR and ISR
+registers. Symbolic constants are definitely preferred.
+
+Rather than duplicating already existing symbolic constants in
+twl4030-gpio.c and twl4030-pwrirq.c, move the existing constants out
+into include files. This patch should not change kernel behavior.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
@@ -309,10 +272,3 @@ index 0000000..7a13368
+#define TWL4030_INT_PWR_SIH_CTRL 0x7
+
+#endif /* End of __TWL4030_PWRIRQ_H */
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch
index 713eebffd6..9af25a762d 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch
@@ -1,43 +1,6 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
- morningsun.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
- DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 12254 invoked by uid 1003); 18 Jul 2008 01:35:31 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:31 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1756410AbYGRBfa (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:30 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757008AbYGRBfa
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:30 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49368 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1756410AbYGRBfZ (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
-Received: (qmail 13896 invoked by uid 526); 18 Jul 2008 01:35:24 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:55 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 8/9] TWL4030: use symbolic ISR/IMR register names during
- twl_init_irq()
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:55 -0600
-Message-ID: <20080718013454.18943.7428.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: use symbolic ISR/IMR register names during twl_init_irq()
+
+From: Paul Walmsley <paul@pwsan.com>
twl_init_irq() uses a bunch of magic numbers as register indices; this
has already led to several errors, fixed earlier in this patch series.
@@ -47,11 +10,11 @@ not change kernel behavior.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
- drivers/i2c/chips/twl4030-core.c | 181 +++++++++++++++++++-------------------
- 1 files changed, 89 insertions(+), 92 deletions(-)
+ drivers/i2c/chips/twl4030-core.c | 188 +++++++++++++++++++-------------------
+ 1 files changed, 96 insertions(+), 92 deletions(-)
diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
-index 1906635..5855f5f 100644
+index 99cc143..38c227a 100644
--- a/drivers/i2c/chips/twl4030-core.c
+++ b/drivers/i2c/chips/twl4030-core.c
@@ -40,6 +40,9 @@
@@ -88,10 +51,25 @@ index 1906635..5855f5f 100644
/* Triton Core internal information (END) */
/* Few power values */
-@@ -748,108 +768,85 @@ static void twl_init_irq(void)
+@@ -133,12 +153,10 @@
+ /* on I2C-1 for 2430SDP */
+ #define CONFIG_I2C_TWL4030_ID 1
+
+-/* SIH_CTRL registers */
+-#define TWL4030_INT_PWR_SIH_CTRL 0x07
++/* SIH_CTRL registers that aren't defined elsewhere */
+ #define TWL4030_INTERRUPTS_BCISIHCTRL 0x0d
+ #define TWL4030_MADC_MADC_SIH_CTRL 0x67
+ #define TWL4030_KEYPAD_KEYP_SIH_CTRL 0x17
+-#define TWL4030_GPIO_GPIO_SIH_CTRL 0x2d
+
+ #define TWL4030_SIH_CTRL_COR_MASK (1 << 2)
+
+@@ -776,135 +794,121 @@ static void twl_init_irq(void)
* handlers present.
*/
+-
- /* PWR_IMR1 */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff, 0x1) < 0);
-
@@ -99,21 +77,27 @@ index 1906635..5855f5f 100644
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff, 0x3) < 0);
-
- /* Clear off any other pending interrupts on power */
-- /* PWR_ISR1 */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x00) < 0);
--
-- /* PWR_ISR2 */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x02) < 0);
+ /* Mask INT (PWR) interrupts at TWL4030 */
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff,
+ TWL4030_INT_PWR_IMR1) < 0);
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff,
+ TWL4030_INT_PWR_IMR2) < 0);
+
+ /* Are PWR interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_INT,
+ TWL4030_INT_PWR_SIH_CTRL);
+ WARN_ON(cor < 0);
+
+- /* PWR_ISR1 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x00, cor) < 0);
+-
+- /* PWR_ISR2 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x02, cor) < 0);
+ /* Clear TWL4030 INT (PWR) ISRs */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
-+ TWL4030_INT_PWR_ISR1) < 0);
++ TWL4030_INT_PWR_ISR1, cor) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
-+ TWL4030_INT_PWR_ISR2) < 0);
++ TWL4030_INT_PWR_ISR2, cor) < 0);
/* Slave address 0x4A */
@@ -128,18 +112,6 @@ index 1906635..5855f5f 100644
-
- /* BCIIMR2B */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x7) < 0);
--
-- /* BCIISR1A */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0) < 0);
--
-- /* BCIISR2A */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x1) < 0);
--
-- /* BCIISR1B */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x4) < 0);
--
-- /* BCIISR2B */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x5) < 0);
+ /* Mask BCI interrupts at TWL4030 */
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
+ TWL4030_INTERRUPTS_BCIIMR1A) < 0);
@@ -149,15 +121,32 @@ index 1906635..5855f5f 100644
+ TWL4030_INTERRUPTS_BCIIMR1B) < 0);
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
+ TWL4030_INTERRUPTS_BCIIMR2B) < 0);
+
+ /* Are BCI interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_INTERRUPTS,
+ TWL4030_INTERRUPTS_BCISIHCTRL);
+ WARN_ON(cor < 0);
+
+- /* BCIISR1A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0, cor) < 0);
+-
+- /* BCIISR2A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x1, cor) < 0);
+-
+- /* BCIISR1B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x4, cor) < 0);
+-
+- /* BCIISR2B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x5, cor) < 0);
+ /* Clear TWL4030 BCI ISRs */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-+ TWL4030_INTERRUPTS_BCIISR1A) < 0);
++ TWL4030_INTERRUPTS_BCIISR1A, cor) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-+ TWL4030_INTERRUPTS_BCIISR2A) < 0);
++ TWL4030_INTERRUPTS_BCIISR2A, cor) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-+ TWL4030_INTERRUPTS_BCIISR1B) < 0);
++ TWL4030_INTERRUPTS_BCIISR1B, cor) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-+ TWL4030_INTERRUPTS_BCIISR2B) < 0);
++ TWL4030_INTERRUPTS_BCIISR2B, cor) < 0);
/* MAD C */
- /* MADC_IMR1 */
@@ -165,46 +154,56 @@ index 1906635..5855f5f 100644
-
- /* MADC_IMR2 */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff, 0x64) < 0);
--
-- /* MADC_ISR1 */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61) < 0);
--
-- /* MADC_ISR2 */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x63) < 0);
+ /* Mask MADC interrupts at TWL4030 */
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff,
+ TWL4030_MADC_IMR1) < 0);
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff,
+ TWL4030_MADC_IMR2) < 0);
+
+ /* Are MADC interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_MADC,
+ TWL4030_MADC_MADC_SIH_CTRL);
+ WARN_ON(cor < 0);
+
+- /* MADC_ISR1 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61, cor) < 0);
+-
+- /* MADC_ISR2 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x63, cor) < 0);
+ /* Clear TWL4030 MADC ISRs */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
-+ TWL4030_MADC_ISR1) < 0);
++ TWL4030_MADC_ISR1, cor) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
-+ TWL4030_MADC_ISR2) < 0);
++ TWL4030_MADC_ISR2, cor) < 0);
/* key Pad */
- /* KEYPAD - IMR1 */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x12) < 0);
--
-- /* KEYPAD - ISR1 */
+ /* Mask keypad interrupts at TWL4030 */
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff,
+ TWL4030_KEYPAD_KEYP_IMR1) < 0);
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff,
+ TWL4030_KEYPAD_KEYP_IMR2) < 0);
+
+ /* Are keypad interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_KEYPAD,
+ TWL4030_KEYPAD_KEYP_SIH_CTRL);
+ WARN_ON(cor < 0);
+
+- /* KEYPAD - ISR1 */
+ /* Clear TWL4030 keypad ISRs */
/* XXX does this still need to be done twice for some reason? */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11, cor) < 0);
-
- /* KEYPAD - IMR2 */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x14) < 0);
-
- /* KEYPAD - ISR2 */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13, cor) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
-+ TWL4030_KEYPAD_KEYP_ISR1) < 0);
++ TWL4030_KEYPAD_KEYP_ISR1, cor) < 0);
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
-+ TWL4030_KEYPAD_KEYP_ISR2) < 0);
++ TWL4030_KEYPAD_KEYP_ISR2, cor) < 0);
/* Slave address 0x49 */
- /* GPIO_IMR1A */
@@ -218,30 +217,12 @@ index 1906635..5855f5f 100644
-
- /* GPIO_IMR1B */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x22) < 0);
--
+
- /* GPIO_IMR2B */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x23) < 0);
-
- /* GPIO_IMR3B */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x24) < 0);
--
-- /* GPIO_ISR1A */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19) < 0);
--
-- /* GPIO_ISR2A */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1a) < 0);
--
-- /* GPIO_ISR3A */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1b) < 0);
--
-- /* GPIO_ISR1B */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1f) < 0);
--
-- /* GPIO_ISR2B */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x20) < 0);
--
-- /* GPIO_ISR3B */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x21) < 0);
+ /* Mask GPIO interrupts at TWL4030 */
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+ REG_GPIO_IMR1A) < 0);
@@ -255,21 +236,43 @@ index 1906635..5855f5f 100644
+ REG_GPIO_IMR2B) < 0);
+ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+ REG_GPIO_IMR3B) < 0);
-+
+
+ /* Are GPIO interrupt status bits cleared by reads or writes? */
+ cor = twl4030_read_cor_bit(TWL4030_MODULE_GPIO,
+- TWL4030_GPIO_GPIO_SIH_CTRL);
++ REG_GPIO_SIH_CTRL);
+ WARN_ON(cor < 0);
+
+- /* GPIO_ISR1A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19, cor) < 0);
+-
+- /* GPIO_ISR2A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1a, cor) < 0);
+-
+- /* GPIO_ISR3A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1b, cor) < 0);
+-
+- /* GPIO_ISR1B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1f, cor) < 0);
+-
+- /* GPIO_ISR2B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x20, cor) < 0);
+-
+- /* GPIO_ISR3B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x21, cor) < 0);
+ /* Clear TWL4030 GPIO ISRs */
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1A) < 0);
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2A) < 0);
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3A) < 0);
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1B) < 0);
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2B) < 0);
-+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3B) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1A,
++ cor) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2A,
++ cor) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3A,
++ cor) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1B,
++ cor) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2B,
++ cor) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3B,
++ cor) < 0);
/* install an irq handler for each of the PIH modules */
for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch
index 3a2eb05fd8..ab6cc6d87b 100644
--- a/packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch
@@ -1,63 +1,28 @@
-X-Mozilla-Status: 0001
-X-Mozilla-Status2: 00000000
-Return-Path: <linux-omap-owner@vger.kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on shovel.geekisp.com
-X-Spam-Level:
-X-Spam-Status: No, score=-1.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME
- autolearn=ham version=3.2.1
-Delivered-To: balister.org-philip@balister.org
-Received: (qmail 21557 invoked by uid 1003); 18 Jul 2008 01:35:32 -0000
-Received: from vger.kernel.org (209.132.176.167)
- by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:32 -0000
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1757008AbYGRBfb (ORCPT <rfc822;philip@balister.org>);
- Thu, 17 Jul 2008 21:35:31 -0400
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756351AbYGRBfb
- (ORCPT <rfc822;linux-omap-outgoing>);
- Thu, 17 Jul 2008 21:35:31 -0400
-Received: from utopia.booyaka.com ([72.9.107.138]:49369 "EHLO
- utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1756783AbYGRBfZ (ORCPT
- <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
-Received: (qmail 13900 invoked by uid 526); 18 Jul 2008 01:35:24 -0000
-MBOX-Line: From nobody Thu Jul 17 19:34:56 2008
-From: Paul Walmsley <paul@pwsan.com>
-Subject: [PATCH 9/9] TWL4030: convert early interrupt mask/clear funcs to use
- array
-To: linux-omap@vger.kernel.org
-Date: Thu, 17 Jul 2008 19:34:56 -0600
-Message-ID: <20080718013455.18943.62389.stgit@localhost.localdomain>
-In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
-References: <20080718013205.18943.34047.stgit@localhost.localdomain>
-User-Agent: StGIT/0.14.3.163.g06f9
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List: linux-omap@vger.kernel.org
+TWL4030: convert early interrupt mask/clear funcs to use array
+
+From: Paul Walmsley <paul@pwsan.com>
Mask/clear TWL module IMRs/ISRs by iterating through arrays rather than
-using a block of cut-and-pasted commands. Removes 632 bytes of bloat.
+using a block of cut-and-pasted commands. Removes 1056 bytes of bloat.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
- drivers/i2c/chips/twl4030-core.c | 218 ++++++++++++++++++++++++--------------
- 1 files changed, 137 insertions(+), 81 deletions(-)
+ drivers/i2c/chips/twl4030-core.c | 302 +++++++++++++++++++++++---------------
+ 1 files changed, 180 insertions(+), 122 deletions(-)
diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
-index 5855f5f..47d547d 100644
+index 38c227a..776b1dd 100644
--- a/drivers/i2c/chips/twl4030-core.c
+++ b/drivers/i2c/chips/twl4030-core.c
-@@ -153,6 +153,130 @@
- /* on I2C-1 for 2430SDP */
- #define CONFIG_I2C_TWL4030_ID 1
+@@ -160,6 +160,136 @@
+
+ #define TWL4030_SIH_CTRL_COR_MASK (1 << 2)
+/**
+ * struct twl4030_mod_iregs - TWL module IMR/ISR regs to mask/clear at init
+ * @mod_no: TWL4030 module number (e.g., TWL4030_MODULE_GPIO)
++ * @sih_ctrl: address of module SIH_CTRL register
+ * @reg_cnt: number of IMR/ISR regs
+ * @imrs: pointer to array of TWL module interrupt mask register indices
+ * @isrs: pointer to array of TWL module interrupt status register indices
@@ -67,6 +32,7 @@ index 5855f5f..47d547d 100644
+ */
+struct twl4030_mod_iregs {
+ const u8 mod_no;
++ const u8 sih_ctrl;
+ const u8 reg_cnt;
+ const u8 *imrs;
+ const u8 *isrs;
@@ -147,53 +113,110 @@ index 5855f5f..47d547d 100644
+/* TWL4030 modules that have IMR/ISR registers that must be masked/cleared */
+static const struct twl4030_mod_iregs __initconst twl4030_mod_regs[] = {
+ {
-+ .mod_no = TWL4030_MODULE_INT,
-+ .reg_cnt = ARRAY_SIZE(twl4030_int_imr_regs),
-+ .imrs = twl4030_int_imr_regs,
-+ .isrs = twl4030_int_isr_regs,
++ .mod_no = TWL4030_MODULE_INT,
++ .sih_ctrl = TWL4030_INT_PWR_SIH_CTRL,
++ .reg_cnt = ARRAY_SIZE(twl4030_int_imr_regs),
++ .imrs = twl4030_int_imr_regs,
++ .isrs = twl4030_int_isr_regs,
+ },
+ {
-+ .mod_no = TWL4030_MODULE_INTERRUPTS,
-+ .reg_cnt = ARRAY_SIZE(twl4030_interrupts_imr_regs),
-+ .imrs = twl4030_interrupts_imr_regs,
-+ .isrs = twl4030_interrupts_isr_regs,
++ .mod_no = TWL4030_MODULE_INTERRUPTS,
++ .sih_ctrl = TWL4030_INTERRUPTS_BCISIHCTRL,
++ .reg_cnt = ARRAY_SIZE(twl4030_interrupts_imr_regs),
++ .imrs = twl4030_interrupts_imr_regs,
++ .isrs = twl4030_interrupts_isr_regs,
+ },
+ {
-+ .mod_no = TWL4030_MODULE_MADC,
-+ .reg_cnt = ARRAY_SIZE(twl4030_madc_imr_regs),
-+ .imrs = twl4030_madc_imr_regs,
-+ .isrs = twl4030_madc_isr_regs,
++ .mod_no = TWL4030_MODULE_MADC,
++ .sih_ctrl = TWL4030_MADC_MADC_SIH_CTRL,
++ .reg_cnt = ARRAY_SIZE(twl4030_madc_imr_regs),
++ .imrs = twl4030_madc_imr_regs,
++ .isrs = twl4030_madc_isr_regs,
+ },
+ {
-+ .mod_no = TWL4030_MODULE_KEYPAD,
-+ .reg_cnt = ARRAY_SIZE(twl4030_keypad_imr_regs),
-+ .imrs = twl4030_keypad_imr_regs,
-+ .isrs = twl4030_keypad_isr_regs,
++ .mod_no = TWL4030_MODULE_KEYPAD,
++ .sih_ctrl = TWL4030_KEYPAD_KEYP_SIH_CTRL,
++ .reg_cnt = ARRAY_SIZE(twl4030_keypad_imr_regs),
++ .imrs = twl4030_keypad_imr_regs,
++ .isrs = twl4030_keypad_isr_regs,
+ },
+ {
-+ .mod_no = TWL4030_MODULE_GPIO,
-+ .reg_cnt = ARRAY_SIZE(twl4030_gpio_imr_regs),
-+ .imrs = twl4030_gpio_imr_regs,
-+ .isrs = twl4030_gpio_isr_regs,
++ .mod_no = TWL4030_MODULE_GPIO,
++ .sih_ctrl = REG_GPIO_SIH_CTRL,
++ .reg_cnt = ARRAY_SIZE(twl4030_gpio_imr_regs),
++ .imrs = twl4030_gpio_imr_regs,
++ .isrs = twl4030_gpio_isr_regs,
+ },
+};
+
-+
+
/* Helper functions */
static int
- twl4030_detect_client(struct i2c_adapter *adapter, unsigned char sid);
-@@ -756,7 +880,7 @@ static int twl4030_i2c_clear_isr(u8 mod_no, u8 reg)
+@@ -779,136 +909,64 @@ static int twl4030_read_cor_bit(u8 mod_no, u8 reg)
+ return tmp;
+ }
++/**
++ * twl4030_mask_clear_intrs - mask and clear all TWL4030 interrupts
++ * @t: pointer to twl4030_mod_iregs array
++ * @t_sz: ARRAY_SIZE(t) (starting at 1)
++ *
++ * Mask all TWL4030 interrupt mask registers (IMRs) and clear all
++ * interrupt status registers (ISRs). No return value, but will WARN if
++ * any I2C operations fail.
++ */
++static void __init twl4030_mask_clear_intrs(const struct twl4030_mod_iregs *t,
++ const u8 t_sz)
++{
++ int i, j;
++
++ /*
++ * N.B. - further efficiency is possible here. Eight I2C
++ * operations on BCI and GPIO modules are avoidable if I2C
++ * burst read/write transactions were implemented. Would
++ * probably save about 1ms of boot time and a small amount of
++ * power.
++ */
++ for (i = 0; i < t_sz; i++) {
++ const struct twl4030_mod_iregs tmr = t[i];
++
++ for (j = 0; j < tmr.reg_cnt; j++) {
++ int cor;
++
++ /* Mask interrupts at the TWL4030 */
++ WARN_ON(twl4030_i2c_write_u8(tmr.mod_no, 0xff,
++ tmr.imrs[j]) < 0);
++
++ /* Are ISRs cleared by reads or writes? */
++ cor = twl4030_read_cor_bit(tmr.mod_no, tmr.sih_ctrl);
++ WARN_ON(cor < 0);
++
++ /* Clear TWL4030 ISRs */
++ WARN_ON(twl4030_i2c_clear_isr(tmr.mod_no,
++ tmr.isrs[j], cor) < 0);
++ }
++ }
++
++ return;
++}
++
++
static void twl_init_irq(void)
{
- int i = 0;
-+ int i, j;
++ int i;
int res = 0;
+- int cor;
char *msg = "Unable to register interrupt subsystem";
unsigned int irq_num;
-@@ -767,86 +891,18 @@ static void twl_init_irq(void)
- * since we initially do not have any TWL4030 module interrupt
- * handlers present.
+
+ /*
+- * For each TWL4030 module with ISR/IMR registers, mask all
+- * interrupts and then clear any existing interrupt status bits,
+- * since we initially do not have any TWL4030 module interrupt
+- * handlers present.
++ * Mask and clear all TWL4030 interrupts since initially we do
++ * not have any TWL4030 module interrupt handlers present
*/
-
- /* Mask INT (PWR) interrupts at TWL4030 */
@@ -201,11 +224,17 @@ index 5855f5f..47d547d 100644
- TWL4030_INT_PWR_IMR1) < 0);
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff,
- TWL4030_INT_PWR_IMR2) < 0);
+-
+- /* Are PWR interrupt status bits cleared by reads or writes? */
+- cor = twl4030_read_cor_bit(TWL4030_MODULE_INT,
+- TWL4030_INT_PWR_SIH_CTRL);
+- WARN_ON(cor < 0);
+-
- /* Clear TWL4030 INT (PWR) ISRs */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
-- TWL4030_INT_PWR_ISR1) < 0);
+- TWL4030_INT_PWR_ISR1, cor) < 0);
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
-- TWL4030_INT_PWR_ISR2) < 0);
+- TWL4030_INT_PWR_ISR2, cor) < 0);
-
- /* Slave address 0x4A */
-
@@ -218,15 +247,21 @@ index 5855f5f..47d547d 100644
- TWL4030_INTERRUPTS_BCIIMR1B) < 0);
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
- TWL4030_INTERRUPTS_BCIIMR2B) < 0);
+-
+- /* Are BCI interrupt status bits cleared by reads or writes? */
+- cor = twl4030_read_cor_bit(TWL4030_MODULE_INTERRUPTS,
+- TWL4030_INTERRUPTS_BCISIHCTRL);
+- WARN_ON(cor < 0);
+-
- /* Clear TWL4030 BCI ISRs */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-- TWL4030_INTERRUPTS_BCIISR1A) < 0);
+- TWL4030_INTERRUPTS_BCIISR1A, cor) < 0);
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-- TWL4030_INTERRUPTS_BCIISR2A) < 0);
+- TWL4030_INTERRUPTS_BCIISR2A, cor) < 0);
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-- TWL4030_INTERRUPTS_BCIISR1B) < 0);
+- TWL4030_INTERRUPTS_BCIISR1B, cor) < 0);
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
-- TWL4030_INTERRUPTS_BCIISR2B) < 0);
+- TWL4030_INTERRUPTS_BCIISR2B, cor) < 0);
-
- /* MAD C */
- /* Mask MADC interrupts at TWL4030 */
@@ -234,11 +269,17 @@ index 5855f5f..47d547d 100644
- TWL4030_MADC_IMR1) < 0);
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff,
- TWL4030_MADC_IMR2) < 0);
+-
+- /* Are MADC interrupt status bits cleared by reads or writes? */
+- cor = twl4030_read_cor_bit(TWL4030_MODULE_MADC,
+- TWL4030_MADC_MADC_SIH_CTRL);
+- WARN_ON(cor < 0);
+-
- /* Clear TWL4030 MADC ISRs */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
-- TWL4030_MADC_ISR1) < 0);
+- TWL4030_MADC_ISR1, cor) < 0);
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
-- TWL4030_MADC_ISR2) < 0);
+- TWL4030_MADC_ISR2, cor) < 0);
-
- /* key Pad */
- /* Mask keypad interrupts at TWL4030 */
@@ -246,14 +287,21 @@ index 5855f5f..47d547d 100644
- TWL4030_KEYPAD_KEYP_IMR1) < 0);
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff,
- TWL4030_KEYPAD_KEYP_IMR2) < 0);
+-
+- /* Are keypad interrupt status bits cleared by reads or writes? */
+- cor = twl4030_read_cor_bit(TWL4030_MODULE_KEYPAD,
+- TWL4030_KEYPAD_KEYP_SIH_CTRL);
+- WARN_ON(cor < 0);
+-
- /* Clear TWL4030 keypad ISRs */
- /* XXX does this still need to be done twice for some reason? */
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
-- TWL4030_KEYPAD_KEYP_ISR1) < 0);
+- TWL4030_KEYPAD_KEYP_ISR1, cor) < 0);
- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
-- TWL4030_KEYPAD_KEYP_ISR2) < 0);
+- TWL4030_KEYPAD_KEYP_ISR2, cor) < 0);
-
- /* Slave address 0x49 */
+-
- /* Mask GPIO interrupts at TWL4030 */
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
- REG_GPIO_IMR1A) < 0);
@@ -268,32 +316,26 @@ index 5855f5f..47d547d 100644
- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
- REG_GPIO_IMR3B) < 0);
-
+- /* Are GPIO interrupt status bits cleared by reads or writes? */
+- cor = twl4030_read_cor_bit(TWL4030_MODULE_GPIO,
+- REG_GPIO_SIH_CTRL);
+- WARN_ON(cor < 0);
+-
- /* Clear TWL4030 GPIO ISRs */
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1A) < 0);
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2A) < 0);
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3A) < 0);
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1B) < 0);
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2B) < 0);
-- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3B) < 0);
-+ for (i = 0; i < ARRAY_SIZE(twl4030_mod_regs); i++) {
-+ const struct twl4030_mod_iregs tmr = twl4030_mod_regs[i];
-+
-+ for (j = 0; j < tmr.reg_cnt; j++) {
-+ /* Mask interrupts at the TWL4030 */
-+ WARN_ON(twl4030_i2c_write_u8(tmr.mod_no, 0xff,
-+ tmr.imrs[j]) < 0);
-+ /* Clear TWL4030 ISRs */
-+ WARN_ON(twl4030_i2c_clear_isr(tmr.mod_no,
-+ tmr.isrs[j]) < 0);
-+ }
-+ }
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1A,
+- cor) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2A,
+- cor) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3A,
+- cor) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1B,
+- cor) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2B,
+- cor) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3B,
+- cor) < 0);
++ twl4030_mask_clear_intrs(twl4030_mod_regs,
++ ARRAY_SIZE(twl4030_mod_regs));
/* install an irq handler for each of the PIH modules */
for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/mru-clocks1.diff b/packages/linux/linux-omap2-git/beagleboard/mru-clocks1.diff
new file mode 100644
index 0000000000..d7dadbc85e
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/mru-clocks1.diff
@@ -0,0 +1,25 @@
+From: Mans Rullgard <mans@mansr.com>
+Date: Tue, 22 Jul 2008 00:31:11 +0000 (+0100)
+Subject: ARM: OMAP: make dpll4_m4_ck programmable with clk_set_rate()
+X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=2b7b958dc79e51127d7a4ecf88ce12dbc6c31426
+
+ARM: OMAP: make dpll4_m4_ck programmable with clk_set_rate()
+
+Filling the set_rate and round_rate fields of dpll4_m4_ck makes
+this clock programmable through clk_set_rate(). This is needed
+to give omapfb control over the dss1_alwon_fck rate.
+---
+
+diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h
+index 161da12..876eb13 100644
+--- a/arch/arm/mach-omap2/clock34xx.h
++++ b/arch/arm/mach-omap2/clock34xx.h
+@@ -815,6 +815,8 @@ static struct clk dpll4_m4_ck = {
+ .flags = CLOCK_IN_OMAP343X | RATE_PROPAGATES |
+ PARENT_CONTROLS_CLOCK,
+ .recalc = &omap2_clksel_recalc,
++ .set_rate = &omap2_clksel_set_rate,
++ .round_rate = &omap2_clksel_round_rate,
+ };
+
+ /* The PWRDN bit is apparently only available on 3430ES2 and above */
diff --git a/packages/linux/linux-omap2-git/beagleboard/mru-clocks2.diff b/packages/linux/linux-omap2-git/beagleboard/mru-clocks2.diff
new file mode 100644
index 0000000000..c8b370da03
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/mru-clocks2.diff
@@ -0,0 +1,62 @@
+From: Mans Rullgard <mans@mansr.com>
+Date: Tue, 22 Jul 2008 00:58:18 +0000 (+0100)
+Subject: ARM: OMAP: add clk_get_parent() for OMAP2/3
+X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=e2de5e5578fbaa9b4b75074796da0608fc93e6ae
+
+ARM: OMAP: add clk_get_parent() for OMAP2/3
+
+Signed-off-by: Mans Rullgard <mans@mansr.com>
+---
+
+diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
+index 577be44..28aec36 100644
+--- a/arch/arm/mach-omap2/clock.c
++++ b/arch/arm/mach-omap2/clock.c
+@@ -824,6 +824,11 @@ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent)
+ return 0;
+ }
+
++struct clk *omap2_clk_get_parent(struct clk *clk)
++{
++ return clk->parent;
++}
++
+ /* DPLL rate rounding code */
+
+ /**
+diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
+index 49245f7..4aa69d5 100644
+--- a/arch/arm/mach-omap2/clock.h
++++ b/arch/arm/mach-omap2/clock.h
+@@ -29,6 +29,7 @@ int omap2_clk_set_rate(struct clk *clk, unsigned long rate);
+ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent);
+ int omap2_dpll_set_rate_tolerance(struct clk *clk, unsigned int tolerance);
+ long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate);
++struct clk *omap2_clk_get_parent(struct clk *clk);
+
+ #ifdef CONFIG_OMAP_RESET_CLOCKS
+ void omap2_clk_disable_unused(struct clk *clk);
+diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
+index 54cc6e1..ed7af21 100644
+--- a/arch/arm/mach-omap2/clock24xx.c
++++ b/arch/arm/mach-omap2/clock24xx.c
+@@ -422,6 +422,7 @@ static struct clk_functions omap2_clk_functions = {
+ .clk_round_rate = omap2_clk_round_rate,
+ .clk_set_rate = omap2_clk_set_rate,
+ .clk_set_parent = omap2_clk_set_parent,
++ .clk_get_parent = omap2_clk_get_parent,
+ .clk_disable_unused = omap2_clk_disable_unused,
+ #ifdef CONFIG_CPU_FREQ
+ .clk_init_cpufreq_table = omap2_clk_init_cpufreq_table,
+diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
+index 04dedec..08c8c46 100644
+--- a/arch/arm/mach-omap2/clock34xx.c
++++ b/arch/arm/mach-omap2/clock34xx.c
+@@ -541,6 +541,7 @@ static struct clk_functions omap2_clk_functions = {
+ .clk_round_rate = omap2_clk_round_rate,
+ .clk_set_rate = omap2_clk_set_rate,
+ .clk_set_parent = omap2_clk_set_parent,
++ .clk_get_parent = omap2_clk_get_parent,
+ .clk_disable_unused = omap2_clk_disable_unused,
+ };
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/mru-clocks3.diff b/packages/linux/linux-omap2-git/beagleboard/mru-clocks3.diff
new file mode 100644
index 0000000000..f8407fc2d5
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/mru-clocks3.diff
@@ -0,0 +1,94 @@
+From: Mans Rullgard <mans@mansr.com>
+Date: Wed, 23 Jul 2008 08:40:07 +0000 (+0100)
+Subject: ARM: OMAP: Set DSS1_ALWON_FCLK to a multiple of the pixel clock
+X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=01ee28c50701caa94739e764c3dae9298edd8216
+
+ARM: OMAP: Set DSS1_ALWON_FCLK to a multiple of the pixel clock
+
+This sets the DSS1_ALWON_FCLK clock as close as possible to a
+multiple of the requested pixel clock, while keeping it below
+the 173MHz limit.
+
+Due to of the structure of the clock tree, dss1_alwon_fck cannot
+be set directly, and we must use dpll4_m4_ck instead.
+
+Signed-off-by: Mans Rullgard <mans@mansr.com>
+---
+
+diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
+index fd06ca2..e0e8528 100644
+--- a/drivers/video/omap/dispc.c
++++ b/drivers/video/omap/dispc.c
+@@ -176,6 +176,7 @@ static struct {
+
+ struct clk *dss_ick, *dss1_fck;
+ struct clk *dss_54m_fck;
++ struct clk *dpll4_m4_ck;
+
+ enum omapfb_update_mode update_mode;
+ struct omapfb_device *fbdev;
+@@ -738,21 +739,34 @@ static void setup_color_conv_coef(void)
+ MOD_REG_FLD(at2_reg, (1 << 11), ct->full_range);
+ }
+
+-#define MAX_FCK_LCD 173000000
++#define MAX_FCK 173000000
+
+ static void calc_ck_div(int is_tft, int pck, int *lck_div, int *pck_div)
+ {
++ unsigned long prate = clk_get_rate(clk_get_parent(dispc.dpll4_m4_ck));
++ unsigned long pcd_min = is_tft? 2: 3;
++ unsigned long fck_div;
+ unsigned long fck, lck;
+
+ pck = max(1, pck);
++
++ if (pck * pcd_min > MAX_FCK) {
++ dev_warn(dispc.fbdev->dev, "pixclock %d kHz too high.\n",
++ pck / 1000);
++ pck = MAX_FCK / pcd_min;
++ }
++
++ fck = pck * 2;
++ fck_div = (prate + pck) / fck;
++ if (fck_div > 16)
++ fck_div /= (fck_div + 15) / 16;
++ if (fck_div < 1)
++ fck_div = 1;
++ clk_set_rate(dispc.dpll4_m4_ck, prate / fck_div);
+ fck = clk_get_rate(dispc.dss1_fck);
+- *lck_div = (fck + MAX_FCK_LCD - 1) / MAX_FCK_LCD;
+- lck = fck / *lck_div;
+- *pck_div = (lck + pck - 1) / pck;
+- if (is_tft)
+- *pck_div = max(2, *pck_div);
+- else
+- *pck_div = max(3, *pck_div);
++
++ *lck_div = 1;
++ *pck_div = (fck + pck - 1) / pck;
+ if (*pck_div > 255) {
+ *pck_div = 255;
+ lck = pck * *pck_div;
+@@ -914,11 +928,21 @@ static int get_dss_clocks(void)
+ return PTR_ERR(dispc.dss_54m_fck);
+ }
+
++ if (IS_ERR((dispc.dpll4_m4_ck =
++ clk_get(dispc.fbdev->dev, "dpll4_m4_ck")))) {
++ dev_err(dispc.fbdev->dev, "can't get dpll4_m4_ck");
++ clk_put(dispc.dss_ick);
++ clk_put(dispc.dss1_fck);
++ clk_put(dispc.dss_54m_fck);
++ return PTR_ERR(dispc.dss_54m_fck);
++ }
++
+ return 0;
+ }
+
+ static void put_dss_clocks(void)
+ {
++ clk_put(dispc.dpll4_m4_ck);
+ clk_put(dispc.dss_54m_fck);
+ clk_put(dispc.dss1_fck);
+ clk_put(dispc.dss_ick);
diff --git a/packages/linux/linux-omap2_git.bb b/packages/linux/linux-omap2_git.bb
index 88cd433166..2cba2fe537 100644
--- a/packages/linux/linux-omap2_git.bb
+++ b/packages/linux/linux-omap2_git.bb
@@ -6,7 +6,7 @@ SRCREV = "d3b3ae0fe6c71641da19c8de466ec366d39847e3"
PV = "2.6.26"
#PV = "2.6.25+2.6.26-rc9+${PR}+git${SRCREV}"
-PR = "r45"
+PR = "r48"
SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \
file://defconfig"
@@ -23,7 +23,6 @@ SRC_URI_append_beagleboard = " file://no-harry-potter.diff;patch=1 \
file://logo_linux_clut224.ppm \
file://oprofile-0.9.3.armv7.diff;patch=1 \
file://01-fix-timing-print.diff;patch=1 \
- file://02-set-clkseld11.diff;patch=1 \
file://03-enable-overlay-opt.diff;patch=1 \
file://04-use-pcd.diff;patch=1 \
file://05-fix-display-panning.diff;patch=1 \
@@ -41,6 +40,11 @@ SRC_URI_append_beagleboard = " file://no-harry-potter.diff;patch=1 \
file://TWL4030-07.patch;patch=1 \
file://TWL4030-08.patch;patch=1 \
file://TWL4030-09.patch;patch=1 \
+ file://mru-clocks1.diff;patch=1 \
+ file://mru-clocks2.diff;patch=1 \
+ file://mru-clocks3.diff;patch=1 \
+ file://4bitmmc.diff;patch=1 \
+ file://400khz-i2c.diff;patch=1 \
"
SRC_URI_append_omap3evm = " file://no-harry-potter.diff;patch=1 \
diff --git a/packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch b/packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch
new file mode 100644
index 0000000000..04d47fe16f
--- /dev/null
+++ b/packages/linux/linux-openmoko-devel/0001-squashfs-with-lzma.patch
@@ -0,0 +1,5342 @@
+
+diff -urN linux-2.6.23/fs/squashfs/LzmaDecode.c linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.c
+--- linux-2.6.23/fs/squashfs/LzmaDecode.c 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.c 2007-11-13 19:45:12.000000000 -0500
+@@ -0,0 +1,584 @@
++/*
++ LzmaDecode.c
++ LZMA Decoder (optimized for Speed version)
++
++ LZMA SDK 4.40 Copyright (c) 1999-2006 Igor Pavlov (2006-05-01)
++ http://www.7-zip.org/
++
++ LZMA SDK is licensed under two licenses:
++ 1) GNU Lesser General Public License (GNU LGPL)
++ 2) Common Public License (CPL)
++ It means that you can select one of these two licenses and
++ follow rules of that license.
++
++ SPECIAL EXCEPTION:
++ Igor Pavlov, as the author of this Code, expressly permits you to
++ statically or dynamically link your Code (or bind by name) to the
++ interfaces of this file without subjecting your linked Code to the
++ terms of the CPL or GNU LGPL. Any modifications or additions
++ to this file, however, are subject to the LGPL or CPL terms.
++*/
++
++#include "LzmaDecode.h"
++
++#define kNumTopBits 24
++#define kTopValue ((UInt32)1 << kNumTopBits)
++
++#define kNumBitModelTotalBits 11
++#define kBitModelTotal (1 << kNumBitModelTotalBits)
++#define kNumMoveBits 5
++
++#define RC_READ_BYTE (*Buffer++)
++
++#define RC_INIT2 Code = 0; Range = 0xFFFFFFFF; \
++ { int i; for(i = 0; i < 5; i++) { RC_TEST; Code = (Code << 8) | RC_READ_BYTE; }}
++
++#ifdef _LZMA_IN_CB
++
++#define RC_TEST { if (Buffer == BufferLim) \
++ { SizeT size; int result = InCallback->Read(InCallback, &Buffer, &size); if (result != LZMA_RESULT_OK) return result; \
++ BufferLim = Buffer + size; if (size == 0) return LZMA_RESULT_DATA_ERROR; }}
++
++#define RC_INIT Buffer = BufferLim = 0; RC_INIT2
++
++#else
++
++#define RC_TEST { if (Buffer == BufferLim) return LZMA_RESULT_DATA_ERROR; }
++
++#define RC_INIT(buffer, bufferSize) Buffer = buffer; BufferLim = buffer + bufferSize; RC_INIT2
++
++#endif
++
++#define RC_NORMALIZE if (Range < kTopValue) { RC_TEST; Range <<= 8; Code = (Code << 8) | RC_READ_BYTE; }
++
++#define IfBit0(p) RC_NORMALIZE; bound = (Range >> kNumBitModelTotalBits) * *(p); if (Code < bound)
++#define UpdateBit0(p) Range = bound; *(p) += (kBitModelTotal - *(p)) >> kNumMoveBits;
++#define UpdateBit1(p) Range -= bound; Code -= bound; *(p) -= (*(p)) >> kNumMoveBits;
++
++#define RC_GET_BIT2(p, mi, A0, A1) IfBit0(p) \
++ { UpdateBit0(p); mi <<= 1; A0; } else \
++ { UpdateBit1(p); mi = (mi + mi) + 1; A1; }
++
++#define RC_GET_BIT(p, mi) RC_GET_BIT2(p, mi, ; , ;)
++
++#define RangeDecoderBitTreeDecode(probs, numLevels, res) \
++ { int i = numLevels; res = 1; \
++ do { CProb *p = probs + res; RC_GET_BIT(p, res) } while(--i != 0); \
++ res -= (1 << numLevels); }
++
++
++#define kNumPosBitsMax 4
++#define kNumPosStatesMax (1 << kNumPosBitsMax)
++
++#define kLenNumLowBits 3
++#define kLenNumLowSymbols (1 << kLenNumLowBits)
++#define kLenNumMidBits 3
++#define kLenNumMidSymbols (1 << kLenNumMidBits)
++#define kLenNumHighBits 8
++#define kLenNumHighSymbols (1 << kLenNumHighBits)
++
++#define LenChoice 0
++#define LenChoice2 (LenChoice + 1)
++#define LenLow (LenChoice2 + 1)
++#define LenMid (LenLow + (kNumPosStatesMax << kLenNumLowBits))
++#define LenHigh (LenMid + (kNumPosStatesMax << kLenNumMidBits))
++#define kNumLenProbs (LenHigh + kLenNumHighSymbols)
++
++
++#define kNumStates 12
++#define kNumLitStates 7
++
++#define kStartPosModelIndex 4
++#define kEndPosModelIndex 14
++#define kNumFullDistances (1 << (kEndPosModelIndex >> 1))
++
++#define kNumPosSlotBits 6
++#define kNumLenToPosStates 4
++
++#define kNumAlignBits 4
++#define kAlignTableSize (1 << kNumAlignBits)
++
++#define kMatchMinLen 2
++
++#define IsMatch 0
++#define IsRep (IsMatch + (kNumStates << kNumPosBitsMax))
++#define IsRepG0 (IsRep + kNumStates)
++#define IsRepG1 (IsRepG0 + kNumStates)
++#define IsRepG2 (IsRepG1 + kNumStates)
++#define IsRep0Long (IsRepG2 + kNumStates)
++#define PosSlot (IsRep0Long + (kNumStates << kNumPosBitsMax))
++#define SpecPos (PosSlot + (kNumLenToPosStates << kNumPosSlotBits))
++#define Align (SpecPos + kNumFullDistances - kEndPosModelIndex)
++#define LenCoder (Align + kAlignTableSize)
++#define RepLenCoder (LenCoder + kNumLenProbs)
++#define Literal (RepLenCoder + kNumLenProbs)
++
++#if Literal != LZMA_BASE_SIZE
++StopCompilingDueBUG
++#endif
++
++int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size)
++{
++ unsigned char prop0;
++ if (size < LZMA_PROPERTIES_SIZE)
++ return LZMA_RESULT_DATA_ERROR;
++ prop0 = propsData[0];
++ if (prop0 >= (9 * 5 * 5))
++ return LZMA_RESULT_DATA_ERROR;
++ {
++ for (propsRes->pb = 0; prop0 >= (9 * 5); propsRes->pb++, prop0 -= (9 * 5));
++ for (propsRes->lp = 0; prop0 >= 9; propsRes->lp++, prop0 -= 9);
++ propsRes->lc = prop0;
++ /*
++ unsigned char remainder = (unsigned char)(prop0 / 9);
++ propsRes->lc = prop0 % 9;
++ propsRes->pb = remainder / 5;
++ propsRes->lp = remainder % 5;
++ */
++ }
++
++ #ifdef _LZMA_OUT_READ
++ {
++ int i;
++ propsRes->DictionarySize = 0;
++ for (i = 0; i < 4; i++)
++ propsRes->DictionarySize += (UInt32)(propsData[1 + i]) << (i * 8);
++ if (propsRes->DictionarySize == 0)
++ propsRes->DictionarySize = 1;
++ }
++ #endif
++ return LZMA_RESULT_OK;
++}
++
++#define kLzmaStreamWasFinishedId (-1)
++
++int LzmaDecode(CLzmaDecoderState *vs,
++ #ifdef _LZMA_IN_CB
++ ILzmaInCallback *InCallback,
++ #else
++ const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed,
++ #endif
++ unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed)
++{
++ CProb *p = vs->Probs;
++ SizeT nowPos = 0;
++ Byte previousByte = 0;
++ UInt32 posStateMask = (1 << (vs->Properties.pb)) - 1;
++ UInt32 literalPosMask = (1 << (vs->Properties.lp)) - 1;
++ int lc = vs->Properties.lc;
++
++ #ifdef _LZMA_OUT_READ
++
++ UInt32 Range = vs->Range;
++ UInt32 Code = vs->Code;
++ #ifdef _LZMA_IN_CB
++ const Byte *Buffer = vs->Buffer;
++ const Byte *BufferLim = vs->BufferLim;
++ #else
++ const Byte *Buffer = inStream;
++ const Byte *BufferLim = inStream + inSize;
++ #endif
++ int state = vs->State;
++ UInt32 rep0 = vs->Reps[0], rep1 = vs->Reps[1], rep2 = vs->Reps[2], rep3 = vs->Reps[3];
++ int len = vs->RemainLen;
++ UInt32 globalPos = vs->GlobalPos;
++ UInt32 distanceLimit = vs->DistanceLimit;
++
++ Byte *dictionary = vs->Dictionary;
++ UInt32 dictionarySize = vs->Properties.DictionarySize;
++ UInt32 dictionaryPos = vs->DictionaryPos;
++
++ Byte tempDictionary[4];
++
++ #ifndef _LZMA_IN_CB
++ *inSizeProcessed = 0;
++ #endif
++ *outSizeProcessed = 0;
++ if (len == kLzmaStreamWasFinishedId)
++ return LZMA_RESULT_OK;
++
++ if (dictionarySize == 0)
++ {
++ dictionary = tempDictionary;
++ dictionarySize = 1;
++ tempDictionary[0] = vs->TempDictionary[0];
++ }
++
++ if (len == kLzmaNeedInitId)
++ {
++ {
++ UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp));
++ UInt32 i;
++ for (i = 0; i < numProbs; i++)
++ p[i] = kBitModelTotal >> 1;
++ rep0 = rep1 = rep2 = rep3 = 1;
++ state = 0;
++ globalPos = 0;
++ distanceLimit = 0;
++ dictionaryPos = 0;
++ dictionary[dictionarySize - 1] = 0;
++ #ifdef _LZMA_IN_CB
++ RC_INIT;
++ #else
++ RC_INIT(inStream, inSize);
++ #endif
++ }
++ len = 0;
++ }
++ while(len != 0 && nowPos < outSize)
++ {
++ UInt32 pos = dictionaryPos - rep0;
++ if (pos >= dictionarySize)
++ pos += dictionarySize;
++ outStream[nowPos++] = dictionary[dictionaryPos] = dictionary[pos];
++ if (++dictionaryPos == dictionarySize)
++ dictionaryPos = 0;
++ len--;
++ }
++ if (dictionaryPos == 0)
++ previousByte = dictionary[dictionarySize - 1];
++ else
++ previousByte = dictionary[dictionaryPos - 1];
++
++ #else /* if !_LZMA_OUT_READ */
++
++ int state = 0;
++ UInt32 rep0 = 1, rep1 = 1, rep2 = 1, rep3 = 1;
++ int len = 0;
++ const Byte *Buffer;
++ const Byte *BufferLim;
++ UInt32 Range;
++ UInt32 Code;
++
++ #ifndef _LZMA_IN_CB
++ *inSizeProcessed = 0;
++ #endif
++ *outSizeProcessed = 0;
++
++ {
++ UInt32 i;
++ UInt32 numProbs = Literal + ((UInt32)LZMA_LIT_SIZE << (lc + vs->Properties.lp));
++ for (i = 0; i < numProbs; i++)
++ p[i] = kBitModelTotal >> 1;
++ }
++
++ #ifdef _LZMA_IN_CB
++ RC_INIT;
++ #else
++ RC_INIT(inStream, inSize);
++ #endif
++
++ #endif /* _LZMA_OUT_READ */
++
++ while(nowPos < outSize)
++ {
++ CProb *prob;
++ UInt32 bound;
++ int posState = (int)(
++ (nowPos
++ #ifdef _LZMA_OUT_READ
++ + globalPos
++ #endif
++ )
++ & posStateMask);
++
++ prob = p + IsMatch + (state << kNumPosBitsMax) + posState;
++ IfBit0(prob)
++ {
++ int symbol = 1;
++ UpdateBit0(prob)
++ prob = p + Literal + (LZMA_LIT_SIZE *
++ (((
++ (nowPos
++ #ifdef _LZMA_OUT_READ
++ + globalPos
++ #endif
++ )
++ & literalPosMask) << lc) + (previousByte >> (8 - lc))));
++
++ if (state >= kNumLitStates)
++ {
++ int matchByte;
++ #ifdef _LZMA_OUT_READ
++ UInt32 pos = dictionaryPos - rep0;
++ if (pos >= dictionarySize)
++ pos += dictionarySize;
++ matchByte = dictionary[pos];
++ #else
++ matchByte = outStream[nowPos - rep0];
++ #endif
++ do
++ {
++ int bit;
++ CProb *probLit;
++ matchByte <<= 1;
++ bit = (matchByte & 0x100);
++ probLit = prob + 0x100 + bit + symbol;
++ RC_GET_BIT2(probLit, symbol, if (bit != 0) break, if (bit == 0) break)
++ }
++ while (symbol < 0x100);
++ }
++ while (symbol < 0x100)
++ {
++ CProb *probLit = prob + symbol;
++ RC_GET_BIT(probLit, symbol)
++ }
++ previousByte = (Byte)symbol;
++
++ outStream[nowPos++] = previousByte;
++ #ifdef _LZMA_OUT_READ
++ if (distanceLimit < dictionarySize)
++ distanceLimit++;
++
++ dictionary[dictionaryPos] = previousByte;
++ if (++dictionaryPos == dictionarySize)
++ dictionaryPos = 0;
++ #endif
++ if (state < 4) state = 0;
++ else if (state < 10) state -= 3;
++ else state -= 6;
++ }
++ else
++ {
++ UpdateBit1(prob);
++ prob = p + IsRep + state;
++ IfBit0(prob)
++ {
++ UpdateBit0(prob);
++ rep3 = rep2;
++ rep2 = rep1;
++ rep1 = rep0;
++ state = state < kNumLitStates ? 0 : 3;
++ prob = p + LenCoder;
++ }
++ else
++ {
++ UpdateBit1(prob);
++ prob = p + IsRepG0 + state;
++ IfBit0(prob)
++ {
++ UpdateBit0(prob);
++ prob = p + IsRep0Long + (state << kNumPosBitsMax) + posState;
++ IfBit0(prob)
++ {
++ #ifdef _LZMA_OUT_READ
++ UInt32 pos;
++ #endif
++ UpdateBit0(prob);
++
++ #ifdef _LZMA_OUT_READ
++ if (distanceLimit == 0)
++ #else
++ if (nowPos == 0)
++ #endif
++ return LZMA_RESULT_DATA_ERROR;
++
++ state = state < kNumLitStates ? 9 : 11;
++ #ifdef _LZMA_OUT_READ
++ pos = dictionaryPos - rep0;
++ if (pos >= dictionarySize)
++ pos += dictionarySize;
++ previousByte = dictionary[pos];
++ dictionary[dictionaryPos] = previousByte;
++ if (++dictionaryPos == dictionarySize)
++ dictionaryPos = 0;
++ #else
++ previousByte = outStream[nowPos - rep0];
++ #endif
++ outStream[nowPos++] = previousByte;
++ #ifdef _LZMA_OUT_READ
++ if (distanceLimit < dictionarySize)
++ distanceLimit++;
++ #endif
++
++ continue;
++ }
++ else
++ {
++ UpdateBit1(prob);
++ }
++ }
++ else
++ {
++ UInt32 distance;
++ UpdateBit1(prob);
++ prob = p + IsRepG1 + state;
++ IfBit0(prob)
++ {
++ UpdateBit0(prob);
++ distance = rep1;
++ }
++ else
++ {
++ UpdateBit1(prob);
++ prob = p + IsRepG2 + state;
++ IfBit0(prob)
++ {
++ UpdateBit0(prob);
++ distance = rep2;
++ }
++ else
++ {
++ UpdateBit1(prob);
++ distance = rep3;
++ rep3 = rep2;
++ }
++ rep2 = rep1;
++ }
++ rep1 = rep0;
++ rep0 = distance;
++ }
++ state = state < kNumLitStates ? 8 : 11;
++ prob = p + RepLenCoder;
++ }
++ {
++ int numBits, offset;
++ CProb *probLen = prob + LenChoice;
++ IfBit0(probLen)
++ {
++ UpdateBit0(probLen);
++ probLen = prob + LenLow + (posState << kLenNumLowBits);
++ offset = 0;
++ numBits = kLenNumLowBits;
++ }
++ else
++ {
++ UpdateBit1(probLen);
++ probLen = prob + LenChoice2;
++ IfBit0(probLen)
++ {
++ UpdateBit0(probLen);
++ probLen = prob + LenMid + (posState << kLenNumMidBits);
++ offset = kLenNumLowSymbols;
++ numBits = kLenNumMidBits;
++ }
++ else
++ {
++ UpdateBit1(probLen);
++ probLen = prob + LenHigh;
++ offset = kLenNumLowSymbols + kLenNumMidSymbols;
++ numBits = kLenNumHighBits;
++ }
++ }
++ RangeDecoderBitTreeDecode(probLen, numBits, len);
++ len += offset;
++ }
++
++ if (state < 4)
++ {
++ int posSlot;
++ state += kNumLitStates;
++ prob = p + PosSlot +
++ ((len < kNumLenToPosStates ? len : kNumLenToPosStates - 1) <<
++ kNumPosSlotBits);
++ RangeDecoderBitTreeDecode(prob, kNumPosSlotBits, posSlot);
++ if (posSlot >= kStartPosModelIndex)
++ {
++ int numDirectBits = ((posSlot >> 1) - 1);
++ rep0 = (2 | ((UInt32)posSlot & 1));
++ if (posSlot < kEndPosModelIndex)
++ {
++ rep0 <<= numDirectBits;
++ prob = p + SpecPos + rep0 - posSlot - 1;
++ }
++ else
++ {
++ numDirectBits -= kNumAlignBits;
++ do
++ {
++ RC_NORMALIZE
++ Range >>= 1;
++ rep0 <<= 1;
++ if (Code >= Range)
++ {
++ Code -= Range;
++ rep0 |= 1;
++ }
++ }
++ while (--numDirectBits != 0);
++ prob = p + Align;
++ rep0 <<= kNumAlignBits;
++ numDirectBits = kNumAlignBits;
++ }
++ {
++ int i = 1;
++ int mi = 1;
++ do
++ {
++ CProb *prob3 = prob + mi;
++ RC_GET_BIT2(prob3, mi, ; , rep0 |= i);
++ i <<= 1;
++ }
++ while(--numDirectBits != 0);
++ }
++ }
++ else
++ rep0 = posSlot;
++ if (++rep0 == (UInt32)(0))
++ {
++ /* it's for stream version */
++ len = kLzmaStreamWasFinishedId;
++ break;
++ }
++ }
++
++ len += kMatchMinLen;
++ #ifdef _LZMA_OUT_READ
++ if (rep0 > distanceLimit)
++ #else
++ if (rep0 > nowPos)
++ #endif
++ return LZMA_RESULT_DATA_ERROR;
++
++ #ifdef _LZMA_OUT_READ
++ if (dictionarySize - distanceLimit > (UInt32)len)
++ distanceLimit += len;
++ else
++ distanceLimit = dictionarySize;
++ #endif
++
++ do
++ {
++ #ifdef _LZMA_OUT_READ
++ UInt32 pos = dictionaryPos - rep0;
++ if (pos >= dictionarySize)
++ pos += dictionarySize;
++ previousByte = dictionary[pos];
++ dictionary[dictionaryPos] = previousByte;
++ if (++dictionaryPos == dictionarySize)
++ dictionaryPos = 0;
++ #else
++ previousByte = outStream[nowPos - rep0];
++ #endif
++ len--;
++ outStream[nowPos++] = previousByte;
++ }
++ while(len != 0 && nowPos < outSize);
++ }
++ }
++ RC_NORMALIZE;
++
++ #ifdef _LZMA_OUT_READ
++ vs->Range = Range;
++ vs->Code = Code;
++ vs->DictionaryPos = dictionaryPos;
++ vs->GlobalPos = globalPos + (UInt32)nowPos;
++ vs->DistanceLimit = distanceLimit;
++ vs->Reps[0] = rep0;
++ vs->Reps[1] = rep1;
++ vs->Reps[2] = rep2;
++ vs->Reps[3] = rep3;
++ vs->State = state;
++ vs->RemainLen = len;
++ vs->TempDictionary[0] = tempDictionary[0];
++ #endif
++
++ #ifdef _LZMA_IN_CB
++ vs->Buffer = Buffer;
++ vs->BufferLim = BufferLim;
++ #else
++ *inSizeProcessed = (SizeT)(Buffer - inStream);
++ #endif
++ *outSizeProcessed = nowPos;
++ return LZMA_RESULT_OK;
++}
+diff -urN linux-2.6.23/fs/squashfs/LzmaDecode.h linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.h
+--- linux-2.6.23/fs/squashfs/LzmaDecode.h 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaDecode.h 2007-11-13 19:45:12.000000000 -0500
+@@ -0,0 +1,113 @@
++/*
++ LzmaDecode.h
++ LZMA Decoder interface
++
++ LZMA SDK 4.40 Copyright (c) 1999-2006 Igor Pavlov (2006-05-01)
++ http://www.7-zip.org/
++
++ LZMA SDK is licensed under two licenses:
++ 1) GNU Lesser General Public License (GNU LGPL)
++ 2) Common Public License (CPL)
++ It means that you can select one of these two licenses and
++ follow rules of that license.
++
++ SPECIAL EXCEPTION:
++ Igor Pavlov, as the author of this code, expressly permits you to
++ statically or dynamically link your code (or bind by name) to the
++ interfaces of this file without subjecting your linked code to the
++ terms of the CPL or GNU LGPL. Any modifications or additions
++ to this file, however, are subject to the LGPL or CPL terms.
++*/
++
++#ifndef __LZMADECODE_H
++#define __LZMADECODE_H
++
++#include "LzmaTypes.h"
++
++/* #define _LZMA_IN_CB */
++/* Use callback for input data */
++
++/* #define _LZMA_OUT_READ */
++/* Use read function for output data */
++
++/* #define _LZMA_PROB32 */
++/* It can increase speed on some 32-bit CPUs,
++ but memory usage will be doubled in that case */
++
++/* #define _LZMA_LOC_OPT */
++/* Enable local speed optimizations inside code */
++
++#ifdef _LZMA_PROB32
++#define CProb UInt32
++#else
++#define CProb UInt16
++#endif
++
++#define LZMA_RESULT_OK 0
++#define LZMA_RESULT_DATA_ERROR 1
++
++#ifdef _LZMA_IN_CB
++typedef struct _ILzmaInCallback
++{
++ int (*Read)(void *object, const unsigned char **buffer, SizeT *bufferSize);
++} ILzmaInCallback;
++#endif
++
++#define LZMA_BASE_SIZE 1846
++#define LZMA_LIT_SIZE 768
++
++#define LZMA_PROPERTIES_SIZE 5
++
++typedef struct _CLzmaProperties
++{
++ int lc;
++ int lp;
++ int pb;
++ #ifdef _LZMA_OUT_READ
++ UInt32 DictionarySize;
++ #endif
++}CLzmaProperties;
++
++int LzmaDecodeProperties(CLzmaProperties *propsRes, const unsigned char *propsData, int size);
++
++#define LzmaGetNumProbs(Properties) (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << ((Properties)->lc + (Properties)->lp)))
++
++#define kLzmaNeedInitId (-2)
++
++typedef struct _CLzmaDecoderState
++{
++ CLzmaProperties Properties;
++ CProb *Probs;
++
++ #ifdef _LZMA_IN_CB
++ const unsigned char *Buffer;
++ const unsigned char *BufferLim;
++ #endif
++
++ #ifdef _LZMA_OUT_READ
++ unsigned char *Dictionary;
++ UInt32 Range;
++ UInt32 Code;
++ UInt32 DictionaryPos;
++ UInt32 GlobalPos;
++ UInt32 DistanceLimit;
++ UInt32 Reps[4];
++ int State;
++ int RemainLen;
++ unsigned char TempDictionary[4];
++ #endif
++} CLzmaDecoderState;
++
++#ifdef _LZMA_OUT_READ
++#define LzmaDecoderInit(vs) { (vs)->RemainLen = kLzmaNeedInitId; }
++#endif
++
++int LzmaDecode(CLzmaDecoderState *vs,
++ #ifdef _LZMA_IN_CB
++ ILzmaInCallback *inCallback,
++ #else
++ const unsigned char *inStream, SizeT inSize, SizeT *inSizeProcessed,
++ #endif
++ unsigned char *outStream, SizeT outSize, SizeT *outSizeProcessed);
++
++#endif
+diff -urN linux-2.6.23/fs/squashfs/LzmaTypes.h linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaTypes.h
+--- linux-2.6.23/fs/squashfs/LzmaTypes.h 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/LzmaTypes.h 2007-11-13 19:47:32.000000000 -0500
+@@ -0,0 +1,45 @@
++/*
++LzmaTypes.h
++
++Types for LZMA Decoder
++
++This file written and distributed to public domain by Igor Pavlov.
++This file is part of LZMA SDK 4.40 (2006-05-01)
++*/
++
++#ifndef __LZMATYPES_H
++#define __LZMATYPES_H
++
++#ifndef _7ZIP_BYTE_DEFINED
++#define _7ZIP_BYTE_DEFINED
++typedef unsigned char Byte;
++#endif
++
++#ifndef _7ZIP_UINT16_DEFINED
++#define _7ZIP_UINT16_DEFINED
++typedef unsigned short UInt16;
++#endif
++
++#ifndef _7ZIP_UINT32_DEFINED
++#define _7ZIP_UINT32_DEFINED
++#ifdef _LZMA_UINT32_IS_ULONG
++typedef unsigned long UInt32;
++#else
++typedef unsigned int UInt32;
++#endif
++#endif
++
++/* #define _LZMA_NO_SYSTEM_SIZE_T */
++/* You can use it, if you don't want <stddef.h> */
++
++#ifndef _7ZIP_SIZET_DEFINED
++#define _7ZIP_SIZET_DEFINED
++#ifdef _LZMA_NO_SYSTEM_SIZE_T
++typedef UInt32 SizeT;
++#else
++#include <stddef.h>
++typedef size_t SizeT;
++#endif
++#endif
++
++#endif
+diff -urN linux-2.6.23/fs/squashfs/Makefile linux-2.6.23.sqlzma-ng/fs/squashfs/Makefile
+--- linux-2.6.23/fs/squashfs/Makefile 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/Makefile 2007-11-13 19:52:56.000000000 -0500
+@@ -0,0 +1,10 @@
++#
++# Makefile for the linux squashfs routines.
++#
++
++
++obj-$(CONFIG_SQUASHFS) += unlzma.o sqlzma.o squashfs.o
++unlzma-y += module.o
++sqlzma-y += uncomp.o
++squashfs-y += inode.o
++squashfs-y += squashfs2_0.o
+diff -urN linux-2.6.23/fs/squashfs/inode.c linux-2.6.23.sqlzma-ng/fs/squashfs/inode.c
+--- linux-2.6.23/fs/squashfs/inode.c 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/inode.c 2007-11-13 19:14:24.000000000 -0500
+@@ -0,0 +1,2312 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * 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,
++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * inode.c
++ */
++
++#include <linux/squashfs_fs.h>
++#include <linux/module.h>
++#include <linux/zlib.h>
++#include <linux/fs.h>
++#include <linux/squashfs_fs_sb.h>
++#include <linux/squashfs_fs_i.h>
++#include <linux/buffer_head.h>
++#include <linux/vfs.h>
++#include <linux/vmalloc.h>
++#include <linux/smp_lock.h>
++#include <linux/sched.h>
++#include <linux/exportfs.h>
++
++#include "squashfs.h"
++#include "sqlzma.h"
++
++#undef KeepPreemptive
++#if defined(CONFIG_PREEMPT) && !defined(UnsquashNoPreempt)
++#define KeepPreemptive
++#endif
++
++struct sqlzma {
++#ifdef KeepPreemptive
++ struct mutex mtx;
++#endif
++ unsigned char read_data[SQUASHFS_FILE_MAX_SIZE];
++ struct sqlzma_un un;
++};
++static DEFINE_PER_CPU(struct sqlzma *, sqlzma);
++
++#define dpri(fmt, args...) /* printk("%s:%d: " fmt, __func__, __LINE__, ##args) */
++#define dpri_un(un) dpri("un{%d, {%d %p}, {%d %p}, {%d %p}}\n", \
++ (un)->un_lzma, (un)->un_a[0].sz, (un)->un_a[0].buf, \
++ (un)->un_a[1].sz, (un)->un_a[1].buf, \
++ (un)->un_a[2].sz, (un)->un_a[2].buf)
++
++static int squashfs_cached_blks;
++
++static void vfs_read_inode(struct inode *i);
++static struct dentry *squashfs_get_parent(struct dentry *child);
++static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode);
++static int squashfs_statfs(struct dentry *, struct kstatfs *);
++static int squashfs_symlink_readpage(struct file *file, struct page *page);
++static long long read_blocklist(struct inode *inode, int index,
++ int readahead_blks, char *block_list,
++ unsigned short **block_p, unsigned int *bsize);
++static int squashfs_readpage(struct file *file, struct page *page);
++static int squashfs_readdir(struct file *, void *, filldir_t);
++static struct dentry *squashfs_lookup(struct inode *, struct dentry *,
++ struct nameidata *);
++static int squashfs_remount(struct super_block *s, int *flags, char *data);
++static void squashfs_put_super(struct super_block *);
++static int squashfs_get_sb(struct file_system_type *,int, const char *, void *,
++ struct vfsmount *);
++static struct inode *squashfs_alloc_inode(struct super_block *sb);
++static void squashfs_destroy_inode(struct inode *inode);
++static int init_inodecache(void);
++static void destroy_inodecache(void);
++
++static struct file_system_type squashfs_fs_type = {
++ .owner = THIS_MODULE,
++ .name = "squashfs",
++ .get_sb = squashfs_get_sb,
++ .kill_sb = kill_block_super,
++ .fs_flags = FS_REQUIRES_DEV
++};
++
++static const unsigned char squashfs_filetype_table[] = {
++ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK
++};
++
++static struct super_operations squashfs_super_ops = {
++ .alloc_inode = squashfs_alloc_inode,
++ .destroy_inode = squashfs_destroy_inode,
++ .statfs = squashfs_statfs,
++ .put_super = squashfs_put_super,
++ .remount_fs = squashfs_remount
++};
++
++static struct super_operations squashfs_export_super_ops = {
++ .alloc_inode = squashfs_alloc_inode,
++ .destroy_inode = squashfs_destroy_inode,
++ .statfs = squashfs_statfs,
++ .put_super = squashfs_put_super,
++ .read_inode = vfs_read_inode
++};
++
++static struct export_operations squashfs_export_ops = {
++ .get_parent = squashfs_get_parent
++};
++
++SQSH_EXTERN const struct address_space_operations squashfs_symlink_aops = {
++ .readpage = squashfs_symlink_readpage
++};
++
++SQSH_EXTERN const struct address_space_operations squashfs_aops = {
++ .readpage = squashfs_readpage
++};
++
++static const struct file_operations squashfs_dir_ops = {
++ .read = generic_read_dir,
++ .readdir = squashfs_readdir
++};
++
++SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = {
++ .lookup = squashfs_lookup
++};
++
++
++static struct buffer_head *get_block_length(struct super_block *s,
++ int *cur_index, int *offset, int *c_byte)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ unsigned short temp;
++ struct buffer_head *bh;
++
++ if (!(bh = sb_bread(s, *cur_index)))
++ goto out;
++
++ if (msblk->devblksize - *offset == 1) {
++ if (msblk->swap)
++ ((unsigned char *) &temp)[1] = *((unsigned char *)
++ (bh->b_data + *offset));
++ else
++ ((unsigned char *) &temp)[0] = *((unsigned char *)
++ (bh->b_data + *offset));
++ brelse(bh);
++ if (!(bh = sb_bread(s, ++(*cur_index))))
++ goto out;
++ if (msblk->swap)
++ ((unsigned char *) &temp)[0] = *((unsigned char *)
++ bh->b_data);
++ else
++ ((unsigned char *) &temp)[1] = *((unsigned char *)
++ bh->b_data);
++ *c_byte = temp;
++ *offset = 1;
++ } else {
++ if (msblk->swap) {
++ ((unsigned char *) &temp)[1] = *((unsigned char *)
++ (bh->b_data + *offset));
++ ((unsigned char *) &temp)[0] = *((unsigned char *)
++ (bh->b_data + *offset + 1));
++ } else {
++ ((unsigned char *) &temp)[0] = *((unsigned char *)
++ (bh->b_data + *offset));
++ ((unsigned char *) &temp)[1] = *((unsigned char *)
++ (bh->b_data + *offset + 1));
++ }
++ *c_byte = temp;
++ *offset += 2;
++ }
++
++ if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) {
++ if (*offset == msblk->devblksize) {
++ brelse(bh);
++ if (!(bh = sb_bread(s, ++(*cur_index))))
++ goto out;
++ *offset = 0;
++ }
++ if (*((unsigned char *) (bh->b_data + *offset)) !=
++ SQUASHFS_MARKER_BYTE) {
++ ERROR("Metadata block marker corrupt @ %x\n",
++ *cur_index);
++ brelse(bh);
++ goto out;
++ }
++ (*offset)++;
++ }
++ return bh;
++
++out:
++ return NULL;
++}
++
++
++SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer,
++ long long index, unsigned int length,
++ long long *next_index, int srclength)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ struct buffer_head **bh;
++ unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1);
++ unsigned int cur_index = index >> msblk->devblksize_log2;
++ int bytes, avail_bytes, b = 0, k = 0;
++ unsigned int compressed;
++ unsigned int c_byte = length;
++
++ bh = kmalloc(((sblk->block_size >> msblk->devblksize_log2) + 1) *
++ sizeof(struct buffer_head *), GFP_KERNEL);
++ if (bh == NULL)
++ goto read_failure;
++
++ if (c_byte) {
++ bytes = msblk->devblksize - offset;
++ compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte);
++ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
++
++ TRACE("Block @ 0x%llx, %scompressed size %d, src size %d\n", index,
++ compressed ? "" : "un", (unsigned int) c_byte, srclength);
++
++ if (c_byte > srclength || index < 0 || (index + c_byte) > sblk->bytes_used)
++ goto read_failure;
++
++ bh[0] = sb_getblk(s, cur_index);
++ if (bh[0] == NULL)
++ goto block_release;
++
++ for (b = 1; bytes < c_byte; b++) {
++ bh[b] = sb_getblk(s, ++cur_index);
++ if (bh[b] == NULL)
++ goto block_release;
++ bytes += msblk->devblksize;
++ }
++ ll_rw_block(READ, b, bh);
++ } else {
++ if (index < 0 || (index + 2) > sblk->bytes_used)
++ goto read_failure;
++
++ bh[0] = get_block_length(s, (int *)&cur_index, (int *)&offset,
++ (int *)&c_byte);
++ if (bh[0] == NULL)
++ goto read_failure;
++
++ bytes = msblk->devblksize - offset;
++ compressed = SQUASHFS_COMPRESSED(c_byte);
++ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte);
++
++ TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed
++ ? "" : "un", (unsigned int) c_byte);
++
++ if (c_byte > srclength || (index + c_byte) > sblk->bytes_used)
++ goto read_failure;
++
++ for (b = 1; bytes < c_byte; b++) {
++ bh[b] = sb_getblk(s, ++cur_index);
++ if (bh[b] == NULL)
++ goto block_release;
++ bytes += msblk->devblksize;
++ }
++ ll_rw_block(READ, b - 1, bh + 1);
++ }
++
++ if (compressed) {
++ int zlib_err = Z_STREAM_END;
++ int rest, start;
++ enum {Src, Dst};
++ struct sized_buf sbuf[2];
++ struct sqlzma *percpu;
++
++ /*
++ * uncompress block
++ */
++
++ for (k = 0; k < b; k++) {
++ wait_on_buffer(bh[k]);
++ if (!buffer_uptodate(bh[k]))
++ goto block_release;
++ }
++
++ avail_bytes = 0;
++ for (k = 0; !avail_bytes && k < b; k++) {
++ avail_bytes = msblk->devblksize - offset;
++ if (c_byte < avail_bytes)
++ avail_bytes = c_byte;
++ if (avail_bytes)
++ break;
++ offset = 0;
++ brelse(bh[k]);
++ }
++ bytes = 0;
++ if (!avail_bytes)
++ goto block_release; // nothing to be process
++
++ start = k;
++ /* it disables preemption */
++ percpu = get_cpu_var(sqlzma);
++#ifdef KeepPreemptive
++ put_cpu_var(sqlzma);
++ mutex_lock(&percpu->mtx);
++#endif
++
++ for (; k < b; k++) {
++ memcpy(percpu->read_data + bytes, bh[k]->b_data + offset,
++ avail_bytes);
++ bytes += avail_bytes;
++ offset = 0;
++ brelse(bh[k]);
++ avail_bytes = msblk->devblksize - offset;
++ rest = c_byte - bytes;
++ if (rest < avail_bytes)
++ avail_bytes = rest;
++ }
++
++ sbuf[Src].buf = percpu->read_data;
++ sbuf[Src].sz = bytes;
++ sbuf[Dst].buf = buffer;
++ sbuf[Dst].sz = srclength;
++ dpri_un(&percpu->un);
++ dpri("src %d %p, dst %d %p\n", sbuf[Src].sz, sbuf[Src].buf,
++ sbuf[Dst].sz, sbuf[Dst].buf);
++ zlib_err = sqlzma_un(&percpu->un, sbuf + Src, sbuf + Dst);
++ bytes = percpu->un.un_reslen;
++
++#ifdef KeepPreemptive
++ mutex_unlock(&percpu->mtx);
++#else
++ put_cpu_var(sqlzma);
++#endif
++ if (unlikely(zlib_err)) {
++ dpri("zlib_err %d\n", zlib_err);
++ goto release_mutex;
++ }
++ } else {
++ int i;
++
++ for(i = 0; i < b; i++) {
++ wait_on_buffer(bh[i]);
++ if (!buffer_uptodate(bh[i]))
++ goto block_release;
++ }
++
++ for (bytes = 0; k < b; k++) {
++ avail_bytes = min(c_byte - bytes, msblk->devblksize - offset);
++
++ memcpy(buffer + bytes, bh[k]->b_data + offset, avail_bytes);
++ bytes += avail_bytes;
++ offset = 0;
++ brelse(bh[k]);
++ }
++ }
++
++ if (next_index)
++ *next_index = index + c_byte + (length ? 0 :
++ (SQUASHFS_CHECK_DATA(msblk->sblk.flags) ? 3 : 2));
++
++ kfree(bh);
++ return bytes;
++
++release_mutex:
++ //mutex_unlock(&msblk->read_data_mutex);
++
++block_release:
++ for (; k < b; k++)
++ brelse(bh[k]);
++
++read_failure:
++ ERROR("sb_bread failed reading block 0x%x\n", cur_index);
++ kfree(bh);
++ return 0;
++}
++
++
++SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, void *buffer,
++ long long block, unsigned int offset,
++ int length, long long *next_block,
++ unsigned int *next_offset)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ int n, i, bytes, return_length = length;
++ long long next_index;
++
++ TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset);
++
++ while (1) {
++ for (i = 0; i < squashfs_cached_blks; i++)
++ if (msblk->block_cache[i].block == block)
++ break;
++
++ mutex_lock(&msblk->block_cache_mutex);
++
++ if (i == squashfs_cached_blks) {
++ /* read inode header block */
++ if (msblk->unused_cache_blks == 0) {
++ mutex_unlock(&msblk->block_cache_mutex);
++ wait_event(msblk->waitq, msblk->unused_cache_blks);
++ continue;
++ }
++
++ i = msblk->next_cache;
++ for (n = 0; n < squashfs_cached_blks; n++) {
++ if (msblk->block_cache[i].block != SQUASHFS_USED_BLK)
++ break;
++ i = (i + 1) % squashfs_cached_blks;
++ }
++
++ msblk->next_cache = (i + 1) % squashfs_cached_blks;
++
++ if (msblk->block_cache[i].block == SQUASHFS_INVALID_BLK) {
++ msblk->block_cache[i].data = vmalloc(SQUASHFS_METADATA_SIZE);
++ if (msblk->block_cache[i].data == NULL) {
++ ERROR("Failed to allocate cache block\n");
++ mutex_unlock(&msblk->block_cache_mutex);
++ goto out;
++ }
++ }
++
++ msblk->block_cache[i].block = SQUASHFS_USED_BLK;
++ msblk->unused_cache_blks --;
++ mutex_unlock(&msblk->block_cache_mutex);
++
++ msblk->block_cache[i].length = squashfs_read_data(s,
++ msblk->block_cache[i].data, block, 0, &next_index,
++ SQUASHFS_METADATA_SIZE);
++
++ if (msblk->block_cache[i].length == 0) {
++ ERROR("Unable to read cache block [%llx:%x]\n", block, offset);
++ mutex_lock(&msblk->block_cache_mutex);
++ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK;
++ msblk->unused_cache_blks ++;
++ smp_mb();
++ vfree(msblk->block_cache[i].data);
++ wake_up(&msblk->waitq);
++ mutex_unlock(&msblk->block_cache_mutex);
++ goto out;
++ }
++
++ mutex_lock(&msblk->block_cache_mutex);
++ msblk->block_cache[i].block = block;
++ msblk->block_cache[i].next_index = next_index;
++ msblk->unused_cache_blks ++;
++ smp_mb();
++ wake_up(&msblk->waitq);
++ TRACE("Read cache block [%llx:%x]\n", block, offset);
++ }
++
++ if (msblk->block_cache[i].block != block) {
++ mutex_unlock(&msblk->block_cache_mutex);
++ continue;
++ }
++
++ bytes = msblk->block_cache[i].length - offset;
++
++ if (bytes < 1) {
++ mutex_unlock(&msblk->block_cache_mutex);
++ goto out;
++ } else if (bytes >= length) {
++ if (buffer)
++ memcpy(buffer, msblk->block_cache[i].data + offset, length);
++ if (msblk->block_cache[i].length - offset == length) {
++ *next_block = msblk->block_cache[i].next_index;
++ *next_offset = 0;
++ } else {
++ *next_block = block;
++ *next_offset = offset + length;
++ }
++ mutex_unlock(&msblk->block_cache_mutex);
++ goto finish;
++ } else {
++ if (buffer) {
++ memcpy(buffer, msblk->block_cache[i].data + offset, bytes);
++ buffer = (char *) buffer + bytes;
++ }
++ block = msblk->block_cache[i].next_index;
++ mutex_unlock(&msblk->block_cache_mutex);
++ length -= bytes;
++ offset = 0;
++ }
++ }
++
++finish:
++ return return_length;
++out:
++ return 0;
++}
++
++
++static int get_fragment_location(struct super_block *s, unsigned int fragment,
++ long long *fragment_start_block,
++ unsigned int *fragment_size)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ long long start_block =
++ msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)];
++ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment);
++ struct squashfs_fragment_entry fragment_entry;
++
++ if (msblk->swap) {
++ struct squashfs_fragment_entry sfragment_entry;
++
++ if (!squashfs_get_cached_block(s, &sfragment_entry, start_block, offset,
++ sizeof(sfragment_entry), &start_block,
++ (unsigned int *)&offset))
++ goto out;
++ SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry);
++ } else
++ if (!squashfs_get_cached_block(s, &fragment_entry, start_block, offset,
++ sizeof(fragment_entry), &start_block,
++ (unsigned int *)&offset))
++ goto out;
++
++ *fragment_start_block = fragment_entry.start_block;
++ *fragment_size = fragment_entry.size;
++
++ return 1;
++
++out:
++ return 0;
++}
++
++
++SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk,
++ struct squashfs_fragment_cache *fragment)
++{
++ mutex_lock(&msblk->fragment_mutex);
++ fragment->locked --;
++ if (fragment->locked == 0) {
++ msblk->unused_frag_blks ++;
++ smp_mb();
++ wake_up(&msblk->fragment_wait_queue);
++ }
++ mutex_unlock(&msblk->fragment_mutex);
++}
++
++
++SQSH_EXTERN
++struct squashfs_fragment_cache *get_cached_fragment(struct super_block *s,
++ long long start_block, int length)
++{
++ int i, n;
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++
++ while (1) {
++ mutex_lock(&msblk->fragment_mutex);
++
++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS &&
++ msblk->fragment[i].block != start_block; i++);
++
++ if (i == SQUASHFS_CACHED_FRAGMENTS) {
++ if (msblk->unused_frag_blks == 0) {
++ mutex_unlock(&msblk->fragment_mutex);
++ wait_event(msblk->fragment_wait_queue, msblk->unused_frag_blks);
++ continue;
++ }
++
++ i = msblk->next_fragment;
++ for (n = 0; n < SQUASHFS_CACHED_FRAGMENTS; n++) {
++ if (msblk->fragment[i].locked == 0)
++ break;
++ i = (i + 1) % SQUASHFS_CACHED_FRAGMENTS;
++ }
++
++ msblk->next_fragment = (msblk->next_fragment + 1) %
++ SQUASHFS_CACHED_FRAGMENTS;
++
++ if (msblk->fragment[i].data == NULL) {
++ msblk->fragment[i].data = vmalloc(sblk->block_size);
++ if (msblk->fragment[i].data == NULL) {
++ ERROR("Failed to allocate fragment cache block\n");
++ mutex_unlock(&msblk->fragment_mutex);
++ goto out;
++ }
++ }
++
++ msblk->unused_frag_blks --;
++ msblk->fragment[i].block = SQUASHFS_INVALID_BLK;
++ msblk->fragment[i].locked = 1;
++ mutex_unlock(&msblk->fragment_mutex);
++
++ msblk->fragment[i].length = squashfs_read_data(s,
++ msblk->fragment[i].data, start_block, length, NULL,
++ sblk->block_size);
++
++ if (msblk->fragment[i].length == 0) {
++ ERROR("Unable to read fragment cache block [%llx]\n", start_block);
++ msblk->fragment[i].locked = 0;
++ msblk->unused_frag_blks ++;
++ smp_mb();
++ wake_up(&msblk->fragment_wait_queue);
++ goto out;
++ }
++
++ mutex_lock(&msblk->fragment_mutex);
++ msblk->fragment[i].block = start_block;
++ TRACE("New fragment %d, start block %lld, locked %d\n",
++ i, msblk->fragment[i].block, msblk->fragment[i].locked);
++ mutex_unlock(&msblk->fragment_mutex);
++ break;
++ }
++
++ if (msblk->fragment[i].locked == 0)
++ msblk->unused_frag_blks --;
++ msblk->fragment[i].locked++;
++ mutex_unlock(&msblk->fragment_mutex);
++ TRACE("Got fragment %d, start block %lld, locked %d\n", i,
++ msblk->fragment[i].block, msblk->fragment[i].locked);
++ break;
++ }
++
++ return &msblk->fragment[i];
++
++out:
++ return NULL;
++}
++
++
++static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i,
++ struct squashfs_base_inode_header *inodeb)
++{
++ i->i_ino = inodeb->inode_number;
++ i->i_mtime.tv_sec = inodeb->mtime;
++ i->i_atime.tv_sec = inodeb->mtime;
++ i->i_ctime.tv_sec = inodeb->mtime;
++ i->i_uid = msblk->uid[inodeb->uid];
++ i->i_mode = inodeb->mode;
++ i->i_size = 0;
++
++ if (inodeb->guid == SQUASHFS_GUIDS)
++ i->i_gid = i->i_uid;
++ else
++ i->i_gid = msblk->guid[inodeb->guid];
++}
++
++
++static squashfs_inode_t squashfs_inode_lookup(struct super_block *s, int ino)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ long long start = msblk->inode_lookup_table[SQUASHFS_LOOKUP_BLOCK(ino - 1)];
++ int offset = SQUASHFS_LOOKUP_BLOCK_OFFSET(ino - 1);
++ squashfs_inode_t inode;
++
++ TRACE("Entered squashfs_inode_lookup, inode_number = %d\n", ino);
++
++ if (msblk->swap) {
++ squashfs_inode_t sinode;
++
++ if (!squashfs_get_cached_block(s, &sinode, start, offset,
++ sizeof(sinode), &start, (unsigned int *)&offset))
++ goto out;
++ SQUASHFS_SWAP_INODE_T((&inode), &sinode);
++ } else if (!squashfs_get_cached_block(s, &inode, start, offset,
++ sizeof(inode), &start, (unsigned int *)&offset))
++ goto out;
++
++ TRACE("squashfs_inode_lookup, inode = 0x%llx\n", inode);
++
++ return inode;
++
++out:
++ return SQUASHFS_INVALID_BLK;
++}
++
++
++static void vfs_read_inode(struct inode *i)
++{
++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
++ squashfs_inode_t inode = squashfs_inode_lookup(i->i_sb, i->i_ino);
++
++ TRACE("Entered vfs_read_inode\n");
++
++ if(inode != SQUASHFS_INVALID_BLK)
++ (msblk->read_inode)(i, inode);
++}
++
++
++static struct dentry *squashfs_get_parent(struct dentry *child)
++{
++ struct inode *i = child->d_inode;
++ struct inode *parent = iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode);
++ struct dentry *rv;
++
++ TRACE("Entered squashfs_get_parent\n");
++
++ if(parent == NULL) {
++ rv = ERR_PTR(-EACCES);
++ goto out;
++ }
++
++ rv = d_alloc_anon(parent);
++ if(rv == NULL)
++ rv = ERR_PTR(-ENOMEM);
++
++out:
++ return rv;
++}
++
++
++SQSH_EXTERN struct inode *squashfs_iget(struct super_block *s,
++ squashfs_inode_t inode, unsigned int inode_number)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct inode *i = iget_locked(s, inode_number);
++
++ TRACE("Entered squashfs_iget\n");
++
++ if(i && (i->i_state & I_NEW)) {
++ (msblk->read_inode)(i, inode);
++ unlock_new_inode(i);
++ }
++
++ return i;
++}
++
++
++static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode)
++{
++ struct super_block *s = i->i_sb;
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ long long block = SQUASHFS_INODE_BLK(inode) + sblk->inode_table_start;
++ unsigned int offset = SQUASHFS_INODE_OFFSET(inode);
++ long long next_block;
++ unsigned int next_offset;
++ union squashfs_inode_header id, sid;
++ struct squashfs_base_inode_header *inodeb = &id.base, *sinodeb = &sid.base;
++
++ TRACE("Entered squashfs_read_inode\n");
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodeb, block, offset,
++ sizeof(*sinodeb), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb, sizeof(*sinodeb));
++ } else
++ if (!squashfs_get_cached_block(s, inodeb, block, offset,
++ sizeof(*inodeb), &next_block, &next_offset))
++ goto failed_read;
++
++ squashfs_new_inode(msblk, i, inodeb);
++
++ switch(inodeb->inode_type) {
++ case SQUASHFS_FILE_TYPE: {
++ unsigned int frag_size;
++ long long frag_blk;
++ struct squashfs_reg_inode_header *inodep = &id.reg;
++ struct squashfs_reg_inode_header *sinodep = &sid.reg;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodep, block, offset,
++ sizeof(*sinodep), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, inodep, block, offset,
++ sizeof(*inodep), &next_block, &next_offset))
++ goto failed_read;
++
++ frag_blk = SQUASHFS_INVALID_BLK;
++
++ if (inodep->fragment != SQUASHFS_INVALID_FRAG)
++ if(!get_fragment_location(s, inodep->fragment, &frag_blk,
++ &frag_size))
++ goto failed_read;
++
++ i->i_nlink = 1;
++ i->i_size = inodep->file_size;
++ i->i_fop = &generic_ro_fops;
++ i->i_mode |= S_IFREG;
++ i->i_blocks = ((i->i_size - 1) >> 9) + 1;
++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
++ SQUASHFS_I(i)->start_block = inodep->start_block;
++ SQUASHFS_I(i)->u.s1.block_list_start = next_block;
++ SQUASHFS_I(i)->offset = next_offset;
++ i->i_data.a_ops = &squashfs_aops;
++
++ TRACE("File inode %x:%x, start_block %llx, "
++ "block_list_start %llx, offset %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ inodep->start_block, next_block,
++ next_offset);
++ break;
++ }
++ case SQUASHFS_LREG_TYPE: {
++ unsigned int frag_size;
++ long long frag_blk;
++ struct squashfs_lreg_inode_header *inodep = &id.lreg;
++ struct squashfs_lreg_inode_header *sinodep = &sid.lreg;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodep, block, offset,
++ sizeof(*sinodep), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, inodep, block, offset,
++ sizeof(*inodep), &next_block, &next_offset))
++ goto failed_read;
++
++ frag_blk = SQUASHFS_INVALID_BLK;
++
++ if (inodep->fragment != SQUASHFS_INVALID_FRAG)
++ if (!get_fragment_location(s, inodep->fragment, &frag_blk,
++ &frag_size))
++ goto failed_read;
++
++ i->i_nlink = inodep->nlink;
++ i->i_size = inodep->file_size;
++ i->i_fop = &generic_ro_fops;
++ i->i_mode |= S_IFREG;
++ i->i_blocks = ((i->i_size - 1) >> 9) + 1;
++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
++ SQUASHFS_I(i)->start_block = inodep->start_block;
++ SQUASHFS_I(i)->u.s1.block_list_start = next_block;
++ SQUASHFS_I(i)->offset = next_offset;
++ i->i_data.a_ops = &squashfs_aops;
++
++ TRACE("File inode %x:%x, start_block %llx, "
++ "block_list_start %llx, offset %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ inodep->start_block, next_block,
++ next_offset);
++ break;
++ }
++ case SQUASHFS_DIR_TYPE: {
++ struct squashfs_dir_inode_header *inodep = &id.dir;
++ struct squashfs_dir_inode_header *sinodep = &sid.dir;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodep, block, offset,
++ sizeof(*sinodep), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, inodep, block, offset,
++ sizeof(*inodep), &next_block, &next_offset))
++ goto failed_read;
++
++ i->i_nlink = inodep->nlink;
++ i->i_size = inodep->file_size;
++ i->i_op = &squashfs_dir_inode_ops;
++ i->i_fop = &squashfs_dir_ops;
++ i->i_mode |= S_IFDIR;
++ SQUASHFS_I(i)->start_block = inodep->start_block;
++ SQUASHFS_I(i)->offset = inodep->offset;
++ SQUASHFS_I(i)->u.s2.directory_index_count = 0;
++ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode;
++
++ TRACE("Directory inode %x:%x, start_block %x, offset "
++ "%x\n", SQUASHFS_INODE_BLK(inode),
++ offset, inodep->start_block,
++ inodep->offset);
++ break;
++ }
++ case SQUASHFS_LDIR_TYPE: {
++ struct squashfs_ldir_inode_header *inodep = &id.ldir;
++ struct squashfs_ldir_inode_header *sinodep = &sid.ldir;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodep, block, offset,
++ sizeof(*sinodep), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, inodep, block, offset,
++ sizeof(*inodep), &next_block, &next_offset))
++ goto failed_read;
++
++ i->i_nlink = inodep->nlink;
++ i->i_size = inodep->file_size;
++ i->i_op = &squashfs_dir_inode_ops;
++ i->i_fop = &squashfs_dir_ops;
++ i->i_mode |= S_IFDIR;
++ SQUASHFS_I(i)->start_block = inodep->start_block;
++ SQUASHFS_I(i)->offset = inodep->offset;
++ SQUASHFS_I(i)->u.s2.directory_index_start = next_block;
++ SQUASHFS_I(i)->u.s2.directory_index_offset = next_offset;
++ SQUASHFS_I(i)->u.s2.directory_index_count = inodep->i_count;
++ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode;
++
++ TRACE("Long directory inode %x:%x, start_block %x, offset %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ inodep->start_block, inodep->offset);
++ break;
++ }
++ case SQUASHFS_SYMLINK_TYPE: {
++ struct squashfs_symlink_inode_header *inodep = &id.symlink;
++ struct squashfs_symlink_inode_header *sinodep = &sid.symlink;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodep, block, offset,
++ sizeof(*sinodep), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, inodep, block, offset,
++ sizeof(*inodep), &next_block, &next_offset))
++ goto failed_read;
++
++ i->i_nlink = inodep->nlink;
++ i->i_size = inodep->symlink_size;
++ i->i_op = &page_symlink_inode_operations;
++ i->i_data.a_ops = &squashfs_symlink_aops;
++ i->i_mode |= S_IFLNK;
++ SQUASHFS_I(i)->start_block = next_block;
++ SQUASHFS_I(i)->offset = next_offset;
++
++ TRACE("Symbolic link inode %x:%x, start_block %llx, offset %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ next_block, next_offset);
++ break;
++ }
++ case SQUASHFS_BLKDEV_TYPE:
++ case SQUASHFS_CHRDEV_TYPE: {
++ struct squashfs_dev_inode_header *inodep = &id.dev;
++ struct squashfs_dev_inode_header *sinodep = &sid.dev;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodep, block, offset,
++ sizeof(*sinodep), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, inodep, block, offset,
++ sizeof(*inodep), &next_block, &next_offset))
++ goto failed_read;
++
++ i->i_nlink = inodep->nlink;
++ i->i_mode |= (inodeb->inode_type == SQUASHFS_CHRDEV_TYPE) ?
++ S_IFCHR : S_IFBLK;
++ init_special_inode(i, i->i_mode, old_decode_dev(inodep->rdev));
++
++ TRACE("Device inode %x:%x, rdev %x\n",
++ SQUASHFS_INODE_BLK(inode), offset, inodep->rdev);
++ break;
++ }
++ case SQUASHFS_FIFO_TYPE:
++ case SQUASHFS_SOCKET_TYPE: {
++ struct squashfs_ipc_inode_header *inodep = &id.ipc;
++ struct squashfs_ipc_inode_header *sinodep = &sid.ipc;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, sinodep, block, offset,
++ sizeof(*sinodep), &next_block, &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, inodep, block, offset,
++ sizeof(*inodep), &next_block, &next_offset))
++ goto failed_read;
++
++ i->i_nlink = inodep->nlink;
++ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE)
++ ? S_IFIFO : S_IFSOCK;
++ init_special_inode(i, i->i_mode, 0);
++ break;
++ }
++ default:
++ ERROR("Unknown inode type %d in squashfs_iget!\n",
++ inodeb->inode_type);
++ goto failed_read1;
++ }
++
++ return 1;
++
++failed_read:
++ ERROR("Unable to read inode [%llx:%x]\n", block, offset);
++
++failed_read1:
++ make_bad_inode(i);
++ return 0;
++}
++
++
++static int read_inode_lookup_table(struct super_block *s)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ unsigned int length = SQUASHFS_LOOKUP_BLOCK_BYTES(sblk->inodes);
++
++ TRACE("In read_inode_lookup_table, length %d\n", length);
++
++ /* Allocate inode lookup table */
++ msblk->inode_lookup_table = kmalloc(length, GFP_KERNEL);
++ if (msblk->inode_lookup_table == NULL) {
++ ERROR("Failed to allocate inode lookup table\n");
++ return 0;
++ }
++
++ if (!squashfs_read_data(s, (char *) msblk->inode_lookup_table,
++ sblk->lookup_table_start, length |
++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) {
++ ERROR("unable to read inode lookup table\n");
++ return 0;
++ }
++
++ if (msblk->swap) {
++ int i;
++ long long block;
++
++ for (i = 0; i < SQUASHFS_LOOKUP_BLOCKS(sblk->inodes); i++) {
++ /* XXX */
++ SQUASHFS_SWAP_LOOKUP_BLOCKS((&block),
++ &msblk->inode_lookup_table[i], 1);
++ msblk->inode_lookup_table[i] = block;
++ }
++ }
++
++ return 1;
++}
++
++
++static int read_fragment_index_table(struct super_block *s)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ unsigned int length = SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments);
++
++ if(length == 0)
++ return 1;
++
++ /* Allocate fragment index table */
++ msblk->fragment_index = kmalloc(length, GFP_KERNEL);
++ if (msblk->fragment_index == NULL) {
++ ERROR("Failed to allocate fragment index table\n");
++ return 0;
++ }
++
++ if (!squashfs_read_data(s, (char *) msblk->fragment_index,
++ sblk->fragment_table_start, length |
++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, length)) {
++ ERROR("unable to read fragment index table\n");
++ return 0;
++ }
++
++ if (msblk->swap) {
++ int i;
++ long long fragment;
++
++ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments); i++) {
++ /* XXX */
++ SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment),
++ &msblk->fragment_index[i], 1);
++ msblk->fragment_index[i] = fragment;
++ }
++ }
++
++ return 1;
++}
++
++
++static int readahead_metadata(struct super_block *s)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ int i;
++
++ squashfs_cached_blks = SQUASHFS_CACHED_BLKS;
++
++ /* Init inode_table block pointer array */
++ msblk->block_cache = kmalloc(sizeof(struct squashfs_cache) *
++ squashfs_cached_blks, GFP_KERNEL);
++ if (msblk->block_cache == NULL) {
++ ERROR("Failed to allocate block cache\n");
++ goto failed;
++ }
++
++ for (i = 0; i < squashfs_cached_blks; i++)
++ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK;
++
++ msblk->next_cache = 0;
++ msblk->unused_cache_blks = squashfs_cached_blks;
++
++ return 1;
++
++failed:
++ return 0;
++}
++
++
++static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent)
++{
++ struct squashfs_super_block *sblk = &msblk->sblk;
++
++ msblk->read_inode = squashfs_read_inode;
++ msblk->read_blocklist = read_blocklist;
++ msblk->read_fragment_index_table = read_fragment_index_table;
++
++ if (sblk->s_major == 1) {
++ if (!squashfs_1_0_supported(msblk)) {
++ SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems "
++ "are unsupported\n");
++ SERROR("Please recompile with Squashfs 1.0 support enabled\n");
++ return 0;
++ }
++ } else if (sblk->s_major == 2) {
++ if (!squashfs_2_0_supported(msblk)) {
++ SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems "
++ "are unsupported\n");
++ SERROR("Please recompile with Squashfs 2.0 support enabled\n");
++ return 0;
++ }
++ } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor >
++ SQUASHFS_MINOR) {
++ SERROR("Major/Minor mismatch, trying to mount newer %d.%d "
++ "filesystem\n", sblk->s_major, sblk->s_minor);
++ SERROR("Please update your kernel\n");
++ return 0;
++ }
++
++ return 1;
++}
++
++
++static int squashfs_fill_super(struct super_block *s, void *data, int silent)
++{
++ struct squashfs_sb_info *msblk;
++ struct squashfs_super_block *sblk;
++ int i, err;
++ char b[BDEVNAME_SIZE];
++ struct inode *root;
++
++ TRACE("Entered squashfs_fill_superblock\n");
++
++ err = -ENOMEM;
++ s->s_fs_info = kzalloc(sizeof(struct squashfs_sb_info), GFP_KERNEL);
++ if (s->s_fs_info == NULL) {
++ ERROR("Failed to allocate superblock\n");
++ goto failure;
++ }
++ msblk = s->s_fs_info;
++
++ sblk = &msblk->sblk;
++
++ msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE);
++ msblk->devblksize_log2 = ffz(~msblk->devblksize);
++
++ //mutex_init(&msblk->read_data_mutex);
++ mutex_init(&msblk->read_page_mutex);
++ mutex_init(&msblk->block_cache_mutex);
++ mutex_init(&msblk->fragment_mutex);
++ mutex_init(&msblk->meta_index_mutex);
++
++ init_waitqueue_head(&msblk->waitq);
++ init_waitqueue_head(&msblk->fragment_wait_queue);
++
++ /* sblk->bytes_used is checked in squashfs_read_data to ensure reads are not
++ * beyond filesystem end. As we're using squashfs_read_data to read sblk here,
++ * first set sblk->bytes_used to a useful value */
++ err = -EINVAL;
++ sblk->bytes_used = sizeof(struct squashfs_super_block);
++ if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START,
++ sizeof(struct squashfs_super_block) |
++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, sizeof(struct squashfs_super_block))) {
++ SERROR("unable to read superblock\n");
++ goto failed_mount;
++ }
++
++ /* Check it is a SQUASHFS superblock */
++ s->s_magic = sblk->s_magic;
++ msblk->swap = 0;
++ dpri("magic 0x%x\n", sblk->s_magic);
++ switch (sblk->s_magic) {
++ struct squashfs_super_block ssblk;
++
++ case SQUASHFS_MAGIC_SWAP:
++ /*FALLTHROUGH*/
++ case SQUASHFS_MAGIC_LZMA_SWAP:
++ WARNING("Mounting a different endian SQUASHFS "
++ "filesystem on %s\n", bdevname(s->s_bdev, b));
++
++ SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk);
++ memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block));
++ msblk->swap = 1;
++ /*FALLTHROUGH*/
++ case SQUASHFS_MAGIC:
++ case SQUASHFS_MAGIC_LZMA:
++ break;
++ default:
++ SERROR("Can't find a SQUASHFS superblock on %s\n",
++ bdevname(s->s_bdev, b));
++ goto failed_mount;
++ }
++
++ {
++ struct sqlzma *p;
++ dpri("block_size %d\n", sblk->block_size);
++ BUG_ON(sblk->block_size > sizeof(p->read_data));
++ }
++
++ /* Check the MAJOR & MINOR versions */
++ if(!supported_squashfs_filesystem(msblk, silent))
++ goto failed_mount;
++
++ /* Check the filesystem does not extend beyond the end of the
++ block device */
++ if(sblk->bytes_used < 0 || sblk->bytes_used > i_size_read(s->s_bdev->bd_inode))
++ goto failed_mount;
++
++ /* Check the root inode for sanity */
++ if (SQUASHFS_INODE_OFFSET(sblk->root_inode) > SQUASHFS_METADATA_SIZE)
++ goto failed_mount;
++
++ TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b));
++ TRACE("Inodes are %scompressed\n", SQUASHFS_UNCOMPRESSED_INODES(sblk->flags)
++ ? "un" : "");
++ TRACE("Data is %scompressed\n", SQUASHFS_UNCOMPRESSED_DATA(sblk->flags)
++ ? "un" : "");
++ TRACE("Check data is %spresent in the filesystem\n",
++ SQUASHFS_CHECK_DATA(sblk->flags) ? "" : "not ");
++ TRACE("Filesystem size %lld bytes\n", sblk->bytes_used);
++ TRACE("Block size %d\n", sblk->block_size);
++ TRACE("Number of inodes %d\n", sblk->inodes);
++ if (sblk->s_major > 1)
++ TRACE("Number of fragments %d\n", sblk->fragments);
++ TRACE("Number of uids %d\n", sblk->no_uids);
++ TRACE("Number of gids %d\n", sblk->no_guids);
++ TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start);
++ TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start);
++ if (sblk->s_major > 1)
++ TRACE("sblk->fragment_table_start %llx\n", sblk->fragment_table_start);
++ TRACE("sblk->uid_start %llx\n", sblk->uid_start);
++
++ s->s_maxbytes = MAX_LFS_FILESIZE;
++ s->s_flags |= MS_RDONLY;
++ s->s_op = &squashfs_super_ops;
++
++ if (readahead_metadata(s) == 0)
++ goto failed_mount;
++
++ /* Allocate read_page block */
++ err = -ENOMEM;
++ msblk->read_page = vmalloc(sblk->block_size);
++ if (msblk->read_page == NULL) {
++ ERROR("Failed to allocate read_page block\n");
++ goto failed_mount;
++ }
++
++ /* Allocate uid and gid tables */
++ msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) *
++ sizeof(unsigned int), GFP_KERNEL);
++ if (msblk->uid == NULL) {
++ ERROR("Failed to allocate uid/gid table\n");
++ goto failed_mount;
++ }
++ msblk->guid = msblk->uid + sblk->no_uids;
++
++ dpri("swap %d\n", msblk->swap);
++ err = -EINVAL;
++ if (msblk->swap) {
++ unsigned int *suid;
++
++ err = -ENOMEM;
++ suid = kmalloc(sizeof(*suid) * (sblk->no_uids + sblk->no_guids),
++ GFP_KERNEL);
++ if (unlikely(!suid))
++ goto failed_mount;
++
++ err = -EINVAL;
++ if (!squashfs_read_data(s, (char *)suid, sblk->uid_start,
++ ((sblk->no_uids + sblk->no_guids) *
++ sizeof(unsigned int)) |
++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) {
++ ERROR("unable to read uid/gid table\n");
++ kfree(suid);
++ goto failed_mount;
++ }
++
++ SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids +
++ sblk->no_guids), (sizeof(unsigned int) * 8));
++ kfree(suid);
++ } else
++ if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start,
++ ((sblk->no_uids + sblk->no_guids) *
++ sizeof(unsigned int)) |
++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, (sblk->no_uids + sblk->no_guids) * sizeof(unsigned int))) {
++ ERROR("unable to read uid/gid table\n");
++ goto failed_mount;
++ }
++
++
++ if (sblk->s_major == 1 && squashfs_1_0_supported(msblk))
++ goto allocate_root;
++
++ err = -ENOMEM;
++ msblk->fragment = kzalloc(sizeof(struct squashfs_fragment_cache) *
++ SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL);
++ if (msblk->fragment == NULL) {
++ ERROR("Failed to allocate fragment block cache\n");
++ goto failed_mount;
++ }
++
++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) {
++ msblk->fragment[i].block = SQUASHFS_INVALID_BLK;
++ }
++
++ msblk->next_fragment = 0;
++ msblk->unused_frag_blks = SQUASHFS_CACHED_FRAGMENTS;
++
++ /* Allocate and read fragment index table */
++ if (msblk->read_fragment_index_table(s) == 0)
++ goto failed_mount;
++
++ if(sblk->s_major < 3 || sblk->lookup_table_start == SQUASHFS_INVALID_BLK)
++ goto allocate_root;
++
++ /* Allocate and read inode lookup table */
++ if (read_inode_lookup_table(s) == 0)
++ goto failed_mount;
++
++ s->s_op = &squashfs_export_super_ops;
++ s->s_export_op = &squashfs_export_ops;
++
++allocate_root:
++ dpri("alloate_root\n");
++ root = new_inode(s);
++ if ((msblk->read_inode)(root, sblk->root_inode) == 0) {
++ iput(root);
++ goto failed_mount;
++ }
++ insert_inode_hash(root);
++
++ s->s_root = d_alloc_root(root);
++ if (s->s_root == NULL) {
++ ERROR("Root inode create failed\n");
++ iput(root);
++ goto failed_mount;
++ }
++
++ TRACE("Leaving squashfs_fill_super\n");
++ return 0;
++
++failed_mount:
++ kfree(msblk->inode_lookup_table);
++ kfree(msblk->fragment_index);
++ kfree(msblk->fragment);
++ kfree(msblk->uid);
++ vfree(msblk->read_page);
++ kfree(msblk->block_cache);
++ kfree(msblk->fragment_index_2);
++ kfree(s->s_fs_info);
++ s->s_fs_info = NULL;
++ failure:
++ return err;
++}
++
++
++static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf)
++{
++ struct squashfs_sb_info *msblk = dentry->d_sb->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++
++ TRACE("Entered squashfs_statfs\n");
++
++ buf->f_type = sblk->s_magic;
++ buf->f_bsize = sblk->block_size;
++ buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1;
++ buf->f_bfree = buf->f_bavail = 0;
++ buf->f_files = sblk->inodes;
++ buf->f_ffree = 0;
++ buf->f_namelen = SQUASHFS_NAME_LEN;
++
++ return 0;
++}
++
++
++static int squashfs_symlink_readpage(struct file *file, struct page *page)
++{
++ struct inode *inode = page->mapping->host;
++ int index = page->index << PAGE_CACHE_SHIFT, length, bytes, avail_bytes;
++ long long block = SQUASHFS_I(inode)->start_block;
++ int offset = SQUASHFS_I(inode)->offset;
++ void *pageaddr = kmap(page);
++
++ TRACE("Entered squashfs_symlink_readpage, page index %ld, start block "
++ "%llx, offset %x\n", page->index,
++ SQUASHFS_I(inode)->start_block,
++ SQUASHFS_I(inode)->offset);
++
++ for (length = 0; length < index; length += bytes) {
++ bytes = squashfs_get_cached_block(inode->i_sb, NULL, block,
++ offset, PAGE_CACHE_SIZE, &block,
++ (unsigned int *)&offset);
++ if (bytes == 0) {
++ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset);
++ goto skip_read;
++ }
++ }
++
++ if (length != index) {
++ ERROR("(squashfs_symlink_readpage) length != index\n");
++ bytes = 0;
++ goto skip_read;
++ }
++
++ avail_bytes = min_t(int, i_size_read(inode) - length, PAGE_CACHE_SIZE);
++
++ bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, offset,
++ avail_bytes, &block, (unsigned int *)&offset);
++ if (bytes == 0)
++ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset);
++
++skip_read:
++ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
++ kunmap(page);
++ flush_dcache_page(page);
++ SetPageUptodate(page);
++ unlock_page(page);
++
++ return 0;
++}
++
++
++static struct meta_index *locate_meta_index(struct inode *inode, int index, int offset)
++{
++ struct meta_index *meta = NULL;
++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
++ int i;
++
++ mutex_lock(&msblk->meta_index_mutex);
++
++ TRACE("locate_meta_index: index %d, offset %d\n", index, offset);
++
++ if (msblk->meta_index == NULL)
++ goto not_allocated;
++
++ for (i = 0; i < SQUASHFS_META_NUMBER; i ++) {
++ if (msblk->meta_index[i].inode_number == inode->i_ino &&
++ msblk->meta_index[i].offset >= offset &&
++ msblk->meta_index[i].offset <= index &&
++ msblk->meta_index[i].locked == 0) {
++ TRACE("locate_meta_index: entry %d, offset %d\n", i,
++ msblk->meta_index[i].offset);
++ meta = &msblk->meta_index[i];
++ offset = meta->offset;
++ }
++ }
++
++ if (meta)
++ meta->locked = 1;
++
++not_allocated:
++ mutex_unlock(&msblk->meta_index_mutex);
++
++ return meta;
++}
++
++
++static struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip)
++{
++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
++ struct meta_index *meta = NULL;
++ int i;
++
++ mutex_lock(&msblk->meta_index_mutex);
++
++ TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip);
++
++ if (msblk->meta_index == NULL) {
++ msblk->meta_index = kmalloc(sizeof(struct meta_index) *
++ SQUASHFS_META_NUMBER, GFP_KERNEL);
++ if (msblk->meta_index == NULL) {
++ ERROR("Failed to allocate meta_index\n");
++ goto failed;
++ }
++ for (i = 0; i < SQUASHFS_META_NUMBER; i++) {
++ msblk->meta_index[i].inode_number = 0;
++ msblk->meta_index[i].locked = 0;
++ }
++ msblk->next_meta_index = 0;
++ }
++
++ for (i = SQUASHFS_META_NUMBER; i &&
++ msblk->meta_index[msblk->next_meta_index].locked; i --)
++ msblk->next_meta_index = (msblk->next_meta_index + 1) %
++ SQUASHFS_META_NUMBER;
++
++ if (i == 0) {
++ TRACE("empty_meta_index: failed!\n");
++ goto failed;
++ }
++
++ TRACE("empty_meta_index: returned meta entry %d, %p\n",
++ msblk->next_meta_index,
++ &msblk->meta_index[msblk->next_meta_index]);
++
++ meta = &msblk->meta_index[msblk->next_meta_index];
++ msblk->next_meta_index = (msblk->next_meta_index + 1) %
++ SQUASHFS_META_NUMBER;
++
++ meta->inode_number = inode->i_ino;
++ meta->offset = offset;
++ meta->skip = skip;
++ meta->entries = 0;
++ meta->locked = 1;
++
++failed:
++ mutex_unlock(&msblk->meta_index_mutex);
++ return meta;
++}
++
++
++static void release_meta_index(struct inode *inode, struct meta_index *meta)
++{
++ meta->locked = 0;
++ smp_mb();
++}
++
++
++static int read_block_index(struct super_block *s, int blocks, char *block_list,
++ long long *start_block, int *offset)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ unsigned int *block_listp;
++ int block = 0;
++
++ if (msblk->swap) {
++ char *sblock_list;
++
++ sblock_list = kmalloc(blocks << 2, GFP_KERNEL);
++ if (unlikely(!sblock_list))
++ goto failure;
++
++ if (!squashfs_get_cached_block(s, sblock_list, *start_block,
++ *offset, blocks << 2, start_block, (unsigned int *)offset)) {
++ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset);
++ kfree(sblock_list);
++ goto failure;
++ }
++ SQUASHFS_SWAP_INTS(((unsigned int *)block_list),
++ ((unsigned int *)sblock_list), blocks);
++ kfree(sblock_list);
++ } else {
++ if (!squashfs_get_cached_block(s, block_list, *start_block,
++ *offset, blocks << 2, start_block, (unsigned int *)offset)) {
++ ERROR("Fail reading block list [%llx:%x]\n", *start_block, *offset);
++ goto failure;
++ }
++ }
++
++ for (block_listp = (unsigned int *) block_list; blocks;
++ block_listp++, blocks --)
++ block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp);
++
++ return block;
++
++failure:
++ return -1;
++}
++
++
++#define SIZE 256
++
++static inline int calculate_skip(int blocks) {
++ int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES);
++ return skip >= 7 ? 7 : skip + 1;
++}
++
++
++static int get_meta_index(struct inode *inode, int index,
++ long long *index_block, int *index_offset,
++ long long *data_block, char *block_list)
++{
++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ int skip = calculate_skip(i_size_read(inode) >> sblk->block_log);
++ int offset = 0;
++ struct meta_index *meta;
++ struct meta_entry *meta_entry;
++ long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start;
++ int cur_offset = SQUASHFS_I(inode)->offset;
++ long long cur_data_block = SQUASHFS_I(inode)->start_block;
++ int i;
++
++ index /= SQUASHFS_META_INDEXES * skip;
++
++ while (offset < index) {
++ meta = locate_meta_index(inode, index, offset + 1);
++
++ if (meta == NULL) {
++ meta = empty_meta_index(inode, offset + 1, skip);
++ if (meta == NULL)
++ goto all_done;
++ } else {
++ if(meta->entries == 0)
++ goto failed;
++ /* XXX */
++ offset = index < meta->offset + meta->entries ? index :
++ meta->offset + meta->entries - 1;
++ /* XXX */
++ meta_entry = &meta->meta_entry[offset - meta->offset];
++ cur_index_block = meta_entry->index_block + sblk->inode_table_start;
++ cur_offset = meta_entry->offset;
++ cur_data_block = meta_entry->data_block;
++ TRACE("get_meta_index: offset %d, meta->offset %d, "
++ "meta->entries %d\n", offset, meta->offset, meta->entries);
++ TRACE("get_meta_index: index_block 0x%llx, offset 0x%x"
++ " data_block 0x%llx\n", cur_index_block,
++ cur_offset, cur_data_block);
++ }
++
++ for (i = meta->offset + meta->entries; i <= index &&
++ i < meta->offset + SQUASHFS_META_ENTRIES; i++) {
++ int blocks = skip * SQUASHFS_META_INDEXES;
++
++ while (blocks) {
++ int block = blocks > (SIZE >> 2) ? (SIZE >> 2) : blocks;
++ int res = read_block_index(inode->i_sb, block, block_list,
++ &cur_index_block, &cur_offset);
++
++ if (res == -1)
++ goto failed;
++
++ cur_data_block += res;
++ blocks -= block;
++ }
++
++ meta_entry = &meta->meta_entry[i - meta->offset];
++ meta_entry->index_block = cur_index_block - sblk->inode_table_start;
++ meta_entry->offset = cur_offset;
++ meta_entry->data_block = cur_data_block;
++ meta->entries ++;
++ offset ++;
++ }
++
++ TRACE("get_meta_index: meta->offset %d, meta->entries %d\n",
++ meta->offset, meta->entries);
++
++ release_meta_index(inode, meta);
++ }
++
++all_done:
++ *index_block = cur_index_block;
++ *index_offset = cur_offset;
++ *data_block = cur_data_block;
++
++ return offset * SQUASHFS_META_INDEXES * skip;
++
++failed:
++ release_meta_index(inode, meta);
++ return -1;
++}
++
++
++static long long read_blocklist(struct inode *inode, int index,
++ int readahead_blks, char *block_list,
++ unsigned short **block_p, unsigned int *bsize)
++{
++ long long block_ptr;
++ int offset;
++ long long block;
++ int res = get_meta_index(inode, index, &block_ptr, &offset, &block,
++ block_list);
++
++ TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset"
++ " 0x%x, block 0x%llx\n", res, index, block_ptr, offset, block);
++
++ if(res == -1)
++ goto failure;
++
++ index -= res;
++
++ while (index) {
++ int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index;
++ int res = read_block_index(inode->i_sb, blocks, block_list,
++ &block_ptr, &offset);
++ if (res == -1)
++ goto failure;
++ block += res;
++ index -= blocks;
++ }
++
++ if (read_block_index(inode->i_sb, 1, block_list, &block_ptr, &offset) == -1)
++ goto failure;
++ *bsize = *((unsigned int *) block_list);
++
++ return block;
++
++failure:
++ return 0;
++}
++
++
++static int squashfs_readpage(struct file *file, struct page *page)
++{
++ struct inode *inode = page->mapping->host;
++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ unsigned char *block_list = NULL;
++ long long block;
++ unsigned int bsize, i;
++ int bytes;
++ int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT);
++ void *pageaddr;
++ struct squashfs_fragment_cache *fragment = NULL;
++ char *data_ptr = msblk->read_page;
++
++ int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1;
++ int start_index = page->index & ~mask;
++ int end_index = start_index | mask;
++ int file_end = i_size_read(inode) >> sblk->block_log;
++ int sparse = 0;
++
++ TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n",
++ page->index, SQUASHFS_I(inode)->start_block);
++
++ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >>
++ PAGE_CACHE_SHIFT))
++ goto out;
++
++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK
++ || index < file_end) {
++ block_list = kmalloc(SIZE, GFP_KERNEL);
++ if (block_list == NULL) {
++ ERROR("Failed to allocate block_list\n");
++ goto error_out;
++ }
++
++ block = (msblk->read_blocklist)(inode, index, 1, block_list, NULL, &bsize);
++ if (block == 0)
++ goto error_out;
++
++ if (bsize == 0) { /* hole */
++ bytes = index == file_end ?
++ (i_size_read(inode) & (sblk->block_size - 1)) : sblk->block_size;
++ sparse = 1;
++ } else {
++ mutex_lock(&msblk->read_page_mutex);
++
++ bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block,
++ bsize, NULL, sblk->block_size);
++
++ if (bytes == 0) {
++ ERROR("Unable to read page, block %llx, size %x\n", block, bsize);
++ mutex_unlock(&msblk->read_page_mutex);
++ goto error_out;
++ }
++ }
++ } else {
++ fragment = get_cached_fragment(inode->i_sb,
++ SQUASHFS_I(inode)-> u.s1.fragment_start_block,
++ SQUASHFS_I(inode)->u.s1.fragment_size);
++
++ if (fragment == NULL) {
++ ERROR("Unable to read page, block %llx, size %x\n",
++ SQUASHFS_I(inode)->u.s1.fragment_start_block,
++ (int) SQUASHFS_I(inode)->u.s1.fragment_size);
++ goto error_out;
++ }
++ bytes = i_size_read(inode) & (sblk->block_size - 1);
++ data_ptr = fragment->data + SQUASHFS_I(inode)->u.s1.fragment_offset;
++ }
++
++ for (i = start_index; i <= end_index && bytes > 0; i++,
++ bytes -= PAGE_CACHE_SIZE, data_ptr += PAGE_CACHE_SIZE) {
++ struct page *push_page;
++ int avail = sparse ? 0 : min_t(unsigned int, bytes, PAGE_CACHE_SIZE);
++
++ TRACE("bytes %d, i %d, available_bytes %d\n", bytes, i, avail);
++
++ push_page = (i == page->index) ? page :
++ grab_cache_page_nowait(page->mapping, i);
++
++ if (!push_page)
++ continue;
++
++ if (PageUptodate(push_page))
++ goto skip_page;
++
++ pageaddr = kmap_atomic(push_page, KM_USER0);
++ memcpy(pageaddr, data_ptr, avail);
++ memset(pageaddr + avail, 0, PAGE_CACHE_SIZE - avail);
++ kunmap_atomic(pageaddr, KM_USER0);
++ flush_dcache_page(push_page);
++ SetPageUptodate(push_page);
++skip_page:
++ unlock_page(push_page);
++ if(i != page->index)
++ page_cache_release(push_page);
++ }
++
++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK
++ || index < file_end) {
++ if (!sparse)
++ mutex_unlock(&msblk->read_page_mutex);
++ kfree(block_list);
++ } else
++ release_cached_fragment(msblk, fragment);
++
++ return 0;
++
++error_out:
++ SetPageError(page);
++out:
++ pageaddr = kmap_atomic(page, KM_USER0);
++ memset(pageaddr, 0, PAGE_CACHE_SIZE);
++ kunmap_atomic(pageaddr, KM_USER0);
++ flush_dcache_page(page);
++ if (!PageError(page))
++ SetPageUptodate(page);
++ unlock_page(page);
++
++ kfree(block_list);
++ return 0;
++}
++
++
++static int get_dir_index_using_offset(struct super_block *s,
++ long long *next_block, unsigned int *next_offset,
++ long long index_start, unsigned int index_offset, int i_count,
++ long long f_pos)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ int i, length = 0;
++ struct squashfs_dir_index index;
++
++ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n",
++ i_count, (unsigned int) f_pos);
++
++ f_pos =- 3;
++ if (f_pos == 0)
++ goto finish;
++
++ for (i = 0; i < i_count; i++) {
++ if (msblk->swap) {
++ struct squashfs_dir_index sindex;
++ squashfs_get_cached_block(s, &sindex, index_start, index_offset,
++ sizeof(sindex), &index_start, &index_offset);
++ SQUASHFS_SWAP_DIR_INDEX(&index, &sindex);
++ } else
++ squashfs_get_cached_block(s, &index, index_start, index_offset,
++ sizeof(index), &index_start, &index_offset);
++
++ if (index.index > f_pos)
++ break;
++
++ squashfs_get_cached_block(s, NULL, index_start, index_offset,
++ index.size + 1, &index_start, &index_offset);
++
++ length = index.index;
++ *next_block = index.start_block + sblk->directory_table_start;
++ }
++
++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
++
++finish:
++ return length + 3;
++}
++
++
++static int get_dir_index_using_name(struct super_block *s,
++ long long *next_block, unsigned int *next_offset,
++ long long index_start, unsigned int index_offset, int i_count,
++ const char *name, int size)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ int i, length = 0;
++ struct squashfs_dir_index *index;
++ char *str;
++
++ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count);
++
++ str = kmalloc(sizeof(struct squashfs_dir_index) +
++ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL);
++ if (str == NULL) {
++ ERROR("Failed to allocate squashfs_dir_index\n");
++ goto failure;
++ }
++
++ index = (struct squashfs_dir_index *) (str + SQUASHFS_NAME_LEN + 1);
++ strncpy(str, name, size);
++ str[size] = '\0';
++
++ for (i = 0; i < i_count; i++) {
++ if (msblk->swap) {
++ struct squashfs_dir_index sindex;
++ squashfs_get_cached_block(s, &sindex, index_start, index_offset,
++ sizeof(sindex), &index_start, &index_offset);
++ SQUASHFS_SWAP_DIR_INDEX(index, &sindex);
++ } else
++ squashfs_get_cached_block(s, index, index_start, index_offset,
++ sizeof(struct squashfs_dir_index), &index_start, &index_offset);
++
++ squashfs_get_cached_block(s, index->name, index_start, index_offset,
++ index->size + 1, &index_start, &index_offset);
++
++ index->name[index->size + 1] = '\0';
++
++ if (strcmp(index->name, str) > 0)
++ break;
++
++ length = index->index;
++ *next_block = index->start_block + sblk->directory_table_start;
++ }
++
++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
++ kfree(str);
++
++failure:
++ return length + 3;
++}
++
++
++static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir)
++{
++ struct inode *i = file->f_dentry->d_inode;
++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ long long next_block = SQUASHFS_I(i)->start_block +
++ sblk->directory_table_start;
++ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count;
++ struct squashfs_dir_header dirh;
++ struct squashfs_dir_entry *dire;
++
++ TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset);
++
++ dire = kmalloc(sizeof(struct squashfs_dir_entry) +
++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL);
++ if (dire == NULL) {
++ ERROR("Failed to allocate squashfs_dir_entry\n");
++ goto finish;
++ }
++
++ while(file->f_pos < 3) {
++ char *name;
++ int size, i_ino;
++
++ if(file->f_pos == 0) {
++ name = ".";
++ size = 1;
++ i_ino = i->i_ino;
++ } else {
++ name = "..";
++ size = 2;
++ i_ino = SQUASHFS_I(i)->u.s2.parent_inode;
++ }
++ TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n",
++ (unsigned int) dirent, name, size, (int)
++ file->f_pos, i_ino, squashfs_filetype_table[1]);
++
++ if (filldir(dirent, name, size, file->f_pos, i_ino,
++ squashfs_filetype_table[1]) < 0) {
++ TRACE("Filldir returned less than 0\n");
++ goto finish;
++ }
++ file->f_pos += size;
++ }
++
++ length = get_dir_index_using_offset(i->i_sb, &next_block,
++ (unsigned int *)&next_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_start,
++ SQUASHFS_I(i)->u.s2.directory_index_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_count, file->f_pos);
++
++ while (length < i_size_read(i)) {
++ /* read directory header */
++ if (msblk->swap) {
++ struct squashfs_dir_header sdirh;
++
++ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block,
++ next_offset, sizeof(sdirh), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(sdirh);
++ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block,
++ next_offset, sizeof(dirh), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(dirh);
++ }
++
++ dir_count = dirh.count + 1;
++ while (dir_count--) {
++ if (msblk->swap) {
++ struct squashfs_dir_entry sdire;
++ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block,
++ next_offset, sizeof(sdire), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(sdire);
++ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, dire, next_block,
++ next_offset, sizeof(*dire), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(*dire);
++ }
++
++ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block,
++ next_offset, dire->size + 1, &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += dire->size + 1;
++
++ if (file->f_pos >= length)
++ continue;
++
++ dire->name[dire->size + 1] = '\0';
++
++ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n",
++ (unsigned int) dirent, dire->name, dire->size + 1,
++ (int) file->f_pos, dirh.start_block, dire->offset,
++ dirh.inode_number + dire->inode_number,
++ squashfs_filetype_table[dire->type]);
++
++ if (filldir(dirent, dire->name, dire->size + 1, file->f_pos,
++ dirh.inode_number + dire->inode_number,
++ squashfs_filetype_table[dire->type]) < 0) {
++ TRACE("Filldir returned less than 0\n");
++ goto finish;
++ }
++ file->f_pos = length;
++ }
++ }
++
++finish:
++ kfree(dire);
++ return 0;
++
++failed_read:
++ ERROR("Unable to read directory block [%llx:%x]\n", next_block,
++ next_offset);
++ kfree(dire);
++ return 0;
++}
++
++
++static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry,
++ struct nameidata *nd)
++{
++ const unsigned char *name = dentry->d_name.name;
++ int len = dentry->d_name.len;
++ struct inode *inode = NULL;
++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ long long next_block = SQUASHFS_I(i)->start_block +
++ sblk->directory_table_start;
++ int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count;
++ struct squashfs_dir_header dirh;
++ struct squashfs_dir_entry *dire;
++
++ TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset);
++
++ dire = kmalloc(sizeof(struct squashfs_dir_entry) +
++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL);
++ if (dire == NULL) {
++ ERROR("Failed to allocate squashfs_dir_entry\n");
++ goto exit_lookup;
++ }
++
++ if (len > SQUASHFS_NAME_LEN)
++ goto exit_lookup;
++
++ length = get_dir_index_using_name(i->i_sb, &next_block, (unsigned int *)&next_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_start,
++ SQUASHFS_I(i)->u.s2.directory_index_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_count, name, len);
++
++ while (length < i_size_read(i)) {
++ /* read directory header */
++ if (msblk->swap) {
++ struct squashfs_dir_header sdirh;
++ if (!squashfs_get_cached_block(i->i_sb, &sdirh, next_block,
++ next_offset, sizeof(sdirh), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(sdirh);
++ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, &dirh, next_block,
++ next_offset, sizeof(dirh), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(dirh);
++ }
++
++ dir_count = dirh.count + 1;
++ while (dir_count--) {
++ if (msblk->swap) {
++ struct squashfs_dir_entry sdire;
++ if (!squashfs_get_cached_block(i->i_sb, &sdire, next_block,
++ next_offset, sizeof(sdire), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(sdire);
++ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, dire, next_block,
++ next_offset, sizeof(*dire), &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += sizeof(*dire);
++ }
++
++ if (!squashfs_get_cached_block(i->i_sb, dire->name, next_block,
++ next_offset, dire->size + 1, &next_block,
++ (unsigned int *)&next_offset))
++ goto failed_read;
++
++ length += dire->size + 1;
++
++ if (name[0] < dire->name[0])
++ goto exit_lookup;
++
++ if ((len == dire->size + 1) && !strncmp(name, dire->name, len)) {
++ squashfs_inode_t ino = SQUASHFS_MKINODE(dirh.start_block,
++ dire->offset);
++
++ TRACE("calling squashfs_iget for directory entry %s, inode"
++ " %x:%x, %d\n", name, dirh.start_block, dire->offset,
++ dirh.inode_number + dire->inode_number);
++
++ inode = squashfs_iget(i->i_sb, ino, dirh.inode_number + dire->inode_number);
++
++ goto exit_lookup;
++ }
++ }
++ }
++
++exit_lookup:
++ kfree(dire);
++ if (inode)
++ return d_splice_alias(inode, dentry);
++ d_add(dentry, inode);
++ return ERR_PTR(0);
++
++failed_read:
++ ERROR("Unable to read directory block [%llx:%x]\n", next_block,
++ next_offset);
++ goto exit_lookup;
++}
++
++
++static int squashfs_remount(struct super_block *s, int *flags, char *data)
++{
++ *flags |= MS_RDONLY;
++ return 0;
++}
++
++
++static void squashfs_put_super(struct super_block *s)
++{
++ int i;
++
++ if (s->s_fs_info) {
++ struct squashfs_sb_info *sbi = s->s_fs_info;
++ if (sbi->block_cache)
++ for (i = 0; i < squashfs_cached_blks; i++)
++ if (sbi->block_cache[i].block != SQUASHFS_INVALID_BLK)
++ vfree(sbi->block_cache[i].data);
++ if (sbi->fragment)
++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++)
++ vfree(sbi->fragment[i].data);
++ kfree(sbi->fragment);
++ kfree(sbi->block_cache);
++ vfree(sbi->read_page);
++ kfree(sbi->uid);
++ kfree(sbi->fragment_index);
++ kfree(sbi->fragment_index_2);
++ kfree(sbi->meta_index);
++ kfree(s->s_fs_info);
++ s->s_fs_info = NULL;
++ }
++}
++
++
++static int squashfs_get_sb(struct file_system_type *fs_type, int flags,
++ const char *dev_name, void *data, struct vfsmount *mnt)
++{
++ return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super,
++ mnt);
++}
++
++static void free_sqlzma(void)
++{
++ int cpu;
++ struct sqlzma *p;
++
++ for_each_online_cpu(cpu) {
++ p = per_cpu(sqlzma, cpu);
++ if (p) {
++#ifdef KeepPreemptive
++ mutex_destroy(&p->mtx);
++#endif
++ sqlzma_fin(&p->un);
++ kfree(p);
++ }
++ }
++}
++
++static int __init init_squashfs_fs(void)
++{
++ struct sqlzma *p;
++ int cpu;
++ int err = init_inodecache();
++ if (err)
++ goto out;
++
++ for_each_online_cpu(cpu) {
++ dpri("%d: %p\n", cpu, per_cpu(sqlzma, cpu));
++ err = -ENOMEM;
++ p = kmalloc(sizeof(struct sqlzma), GFP_KERNEL);
++ if (p) {
++#ifdef KeepPreemptive
++ mutex_init(&p->mtx);
++#endif
++ err = sqlzma_init(&p->un, 1, 0);
++ if (unlikely(err)) {
++ ERROR("Failed to intialize uncompress workspace\n");
++ break;
++ }
++ per_cpu(sqlzma, cpu) = p;
++ err = 0;
++ } else
++ break;
++ }
++ if (unlikely(err)) {
++ free_sqlzma();
++ goto out;
++ }
++
++ printk(KERN_INFO "squashfs: version 3.3 (2007/10/31) "
++ "Phillip Lougher\n"
++ "squashfs: LZMA suppport for slax.org by jro\n");
++
++ err = register_filesystem(&squashfs_fs_type);
++ if (err) {
++ free_sqlzma();
++ destroy_inodecache();
++ }
++
++out:
++ return err;
++}
++
++
++static void __exit exit_squashfs_fs(void)
++{
++ unregister_filesystem(&squashfs_fs_type);
++ free_sqlzma();
++ destroy_inodecache();
++}
++
++
++static struct kmem_cache * squashfs_inode_cachep;
++
++
++static struct inode *squashfs_alloc_inode(struct super_block *sb)
++{
++ struct squashfs_inode_info *ei;
++ ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL);
++ return ei ? &ei->vfs_inode : NULL;
++}
++
++
++static void squashfs_destroy_inode(struct inode *inode)
++{
++ kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode));
++}
++
++
++static void init_once(struct kmem_cache *cachep, void *foo)
++{
++ struct squashfs_inode_info *ei = foo;
++
++ inode_init_once(&ei->vfs_inode);
++}
++
++
++static int __init init_inodecache(void)
++{
++ squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache",
++ sizeof(struct squashfs_inode_info), 0,
++ SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, init_once);
++ if (squashfs_inode_cachep == NULL)
++ return -ENOMEM;
++ return 0;
++}
++
++
++static void destroy_inodecache(void)
++{
++ kmem_cache_destroy(squashfs_inode_cachep);
++}
++
++
++module_init(init_squashfs_fs);
++module_exit(exit_squashfs_fs);
++MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem, and LZMA suppport for slax.org");
++MODULE_AUTHOR("Phillip Lougher <phillip@lougher.demon.co.uk>, and LZMA suppport for slax.org by jro");
++MODULE_LICENSE("GPL");
+diff -urN linux-2.6.23/fs/squashfs/module.c linux-2.6.23.sqlzma-ng/fs/squashfs/module.c
+--- linux-2.6.23/fs/squashfs/module.c 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/module.c 2007-11-13 19:51:33.000000000 -0500
+@@ -0,0 +1,36 @@
++
++/*
++ * Copyright (C) 2006-2007 Junjiro Okajima
++ * Copyright (C) 2006-2007 Tomas Matejicek, slax.org
++ *
++ * LICENSE follows the described one in lzma.txt.
++ */
++
++/* $Id: module.c,v 1.1 2007/11/05 05:43:36 jro Exp $ */
++
++#include <linux/init.h>
++#include <linux/module.h>
++
++#include "LzmaDecode.c"
++
++EXPORT_SYMBOL(LzmaDecodeProperties);
++EXPORT_SYMBOL(LzmaDecode);
++
++#if 0
++static int __init unlzma_init(void)
++{
++ return 0;
++}
++
++static void __exit unlzma_exit(void)
++{
++}
++
++module_init(unlzma_init);
++module_exit(unlzma_exit);
++#endif
++
++MODULE_LICENSE("GPL");
++MODULE_VERSION("$Id: module.c,v 1.1 2007/11/05 05:43:36 jro Exp $");
++MODULE_DESCRIPTION("LZMA uncompress. "
++ "A tiny wrapper for LzmaDecode.c in LZMA SDK from www.7-zip.org.");
+diff -urN linux-2.6.23/fs/squashfs/sqlzma.h linux-2.6.23.sqlzma-ng/fs/squashfs/sqlzma.h
+--- linux-2.6.23/fs/squashfs/sqlzma.h 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/sqlzma.h 2007-11-13 19:09:21.000000000 -0500
+@@ -0,0 +1,83 @@
++/*
++ * Copyright (C) 2006 Junjiro Okajima
++ * Copyright (C) 2006 Tomas Matejicek, slax.org
++ *
++ * LICENSE follows the described one in lzma.
++ */
++
++/* $Id: sqlzma.h,v 1.15 2007/11/09 14:42:12 jro Exp $ */
++
++#ifndef __sqlzma_h__
++#define __sqlzma_h__
++
++#ifndef __KERNEL__
++#include <stdlib.h>
++#include <string.h>
++#include <zlib.h>
++#ifdef _REENTRANT
++#include <pthread.h>
++#endif
++#else
++#include <linux/zlib.h>
++#endif
++#define _7ZIP_BYTE_DEFINED
++
++/*
++ * detect the compression method automatically by the first byte of compressed
++ * data.
++ * according to rfc1950, the first byte of zlib compression must be 0x?8.
++ */
++#define is_lzma(c) (c == 0x5d)
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#ifndef __KERNEL__
++/* for mksquashfs only */
++struct sqlzma_opts {
++ unsigned int try_lzma:1;
++ unsigned int dicsize;
++};
++int sqlzma_cm(struct sqlzma_opts *opts, z_stream *stream, Bytef *next_in, uInt
++ avail_in, Bytef *next_out, uInt avail_out);
++#endif
++
++/* ---------------------------------------------------------------------- */
++/*
++ * Three patterns for sqlzma uncompression. very dirty code.
++ * - kernel space (squashfs kernel module)
++ * - user space with pthread (mksquashfs)
++ * - user space without pthread (unsquashfs)
++ */
++
++struct sized_buf {
++ unsigned int sz;
++ unsigned char *buf;
++};
++
++enum {SQUN_PROB, SQUN_RESULT, SQUN_LAST};
++struct sqlzma_un {
++ int un_lzma;
++ struct sized_buf un_a[SQUN_LAST];
++ unsigned char un_prob[31960]; /* unlzma 64KB - 1MB */
++ z_stream un_stream;
++#define un_cmbuf un_stream.next_in
++#define un_cmlen un_stream.avail_in
++#define un_resbuf un_stream.next_out
++#define un_resroom un_stream.avail_out
++#define un_reslen un_stream.total_out
++};
++
++int sqlzma_init(struct sqlzma_un *un, int do_lzma, unsigned int res_sz);
++int sqlzma_un(struct sqlzma_un *un, struct sized_buf *src, struct sized_buf *dst);
++void sqlzma_fin(struct sqlzma_un *un);
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef __cplusplus
++};
++#endif
++#endif
+diff -urN linux-2.6.23/fs/squashfs/squashfs.h linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs.h
+--- linux-2.6.23/fs/squashfs/squashfs.h 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs.h 2007-11-13 18:58:41.000000000 -0500
+@@ -0,0 +1,86 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * 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,
++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * squashfs.h
++ */
++
++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
++#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY
++#endif
++
++#ifdef SQUASHFS_TRACE
++#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args)
++#else
++#define TRACE(s, args...) {}
++#endif
++
++#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args)
++
++#define SERROR(s, args...) do { \
++ if (!silent) \
++ printk(KERN_ERR "SQUASHFS error: "s, ## args);\
++ } while(0)
++
++#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args)
++
++static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode)
++{
++ return list_entry(inode, struct squashfs_inode_info, vfs_inode);
++}
++
++#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY)
++#define SQSH_EXTERN
++extern unsigned int squashfs_read_data(struct super_block *s, char *buffer,
++ long long index, unsigned int length,
++ long long *next_index, int srclength);
++extern int squashfs_get_cached_block(struct super_block *s, void *buffer,
++ long long block, unsigned int offset,
++ int length, long long *next_block,
++ unsigned int *next_offset);
++extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct
++ squashfs_fragment_cache *fragment);
++extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block
++ *s, long long start_block,
++ int length);
++extern struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode, unsigned int inode_number);
++extern const struct address_space_operations squashfs_symlink_aops;
++extern const struct address_space_operations squashfs_aops;
++extern struct inode_operations squashfs_dir_inode_ops;
++#else
++#define SQSH_EXTERN static
++#endif
++
++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
++extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk);
++#else
++static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk)
++{
++ return 0;
++}
++#endif
++
++#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY
++extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk);
++#else
++static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk)
++{
++ return 0;
++}
++#endif
+diff -urN linux-2.6.23/fs/squashfs/squashfs2_0.c linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs2_0.c
+--- linux-2.6.23/fs/squashfs/squashfs2_0.c 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/squashfs2_0.c 2007-11-13 18:58:41.000000000 -0500
+@@ -0,0 +1,740 @@
++/*
++ * Squashfs - a compressed read only filesystem for Linux
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * 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,
++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * squashfs2_0.c
++ */
++
++#include <linux/squashfs_fs.h>
++#include <linux/module.h>
++#include <linux/zlib.h>
++#include <linux/fs.h>
++#include <linux/squashfs_fs_sb.h>
++#include <linux/squashfs_fs_i.h>
++
++#include "squashfs.h"
++static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir);
++static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *,
++ struct nameidata *);
++
++static struct file_operations squashfs_dir_ops_2 = {
++ .read = generic_read_dir,
++ .readdir = squashfs_readdir_2
++};
++
++static struct inode_operations squashfs_dir_inode_ops_2 = {
++ .lookup = squashfs_lookup_2
++};
++
++static unsigned char squashfs_filetype_table[] = {
++ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK
++};
++
++static int read_fragment_index_table_2(struct super_block *s)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++
++ if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2
++ (sblk->fragments), GFP_KERNEL))) {
++ ERROR("Failed to allocate uid/gid table\n");
++ return 0;
++ }
++
++ if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) &&
++ !squashfs_read_data(s, (char *)
++ msblk->fragment_index_2,
++ sblk->fragment_table_start,
++ SQUASHFS_FRAGMENT_INDEX_BYTES_2
++ (sblk->fragments) |
++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL, SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments))) {
++ ERROR("unable to read fragment index table\n");
++ return 0;
++ }
++
++ if (msblk->swap) {
++ int i;
++ unsigned int fragment;
++
++ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments);
++ i++) {
++ SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment),
++ &msblk->fragment_index_2[i], 1);
++ msblk->fragment_index_2[i] = fragment;
++ }
++ }
++
++ return 1;
++}
++
++
++static int get_fragment_location_2(struct super_block *s, unsigned int fragment,
++ long long *fragment_start_block,
++ unsigned int *fragment_size)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ long long start_block =
++ msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)];
++ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment);
++ struct squashfs_fragment_entry_2 fragment_entry;
++
++ if (msblk->swap) {
++ struct squashfs_fragment_entry_2 sfragment_entry;
++
++ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry,
++ start_block, offset,
++ sizeof(sfragment_entry), &start_block,
++ &offset))
++ goto out;
++ SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry);
++ } else
++ if (!squashfs_get_cached_block(s, (char *) &fragment_entry,
++ start_block, offset,
++ sizeof(fragment_entry), &start_block,
++ &offset))
++ goto out;
++
++ *fragment_start_block = fragment_entry.start_block;
++ *fragment_size = fragment_entry.size;
++
++ return 1;
++
++out:
++ return 0;
++}
++
++
++static void squashfs_new_inode(struct squashfs_sb_info *msblk, struct inode *i,
++ struct squashfs_base_inode_header_2 *inodeb, unsigned int ino)
++{
++ struct squashfs_super_block *sblk = &msblk->sblk;
++
++ i->i_ino = ino;
++ i->i_mtime.tv_sec = sblk->mkfs_time;
++ i->i_atime.tv_sec = sblk->mkfs_time;
++ i->i_ctime.tv_sec = sblk->mkfs_time;
++ i->i_uid = msblk->uid[inodeb->uid];
++ i->i_mode = inodeb->mode;
++ i->i_nlink = 1;
++ i->i_size = 0;
++ if (inodeb->guid == SQUASHFS_GUIDS)
++ i->i_gid = i->i_uid;
++ else
++ i->i_gid = msblk->guid[inodeb->guid];
++}
++
++
++static int squashfs_read_inode_2(struct inode *i, squashfs_inode_t inode)
++{
++ struct super_block *s = i->i_sb;
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ unsigned int block = SQUASHFS_INODE_BLK(inode) +
++ sblk->inode_table_start;
++ unsigned int offset = SQUASHFS_INODE_OFFSET(inode);
++ unsigned int ino = SQUASHFS_MK_VFS_INODE(block -
++ sblk->inode_table_start, offset);
++ long long next_block;
++ unsigned int next_offset;
++ union squashfs_inode_header_2 id, sid;
++ struct squashfs_base_inode_header_2 *inodeb = &id.base,
++ *sinodeb = &sid.base;
++
++ TRACE("Entered squashfs_read_inode_2\n");
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, (char *) sinodeb, block,
++ offset, sizeof(*sinodeb), &next_block,
++ &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb,
++ sizeof(*sinodeb));
++ } else
++ if (!squashfs_get_cached_block(s, (char *) inodeb, block,
++ offset, sizeof(*inodeb), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ squashfs_new_inode(msblk, i, inodeb, ino);
++
++ switch(inodeb->inode_type) {
++ case SQUASHFS_FILE_TYPE: {
++ struct squashfs_reg_inode_header_2 *inodep = &id.reg;
++ struct squashfs_reg_inode_header_2 *sinodep = &sid.reg;
++ long long frag_blk;
++ unsigned int frag_size = 0;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, (char *)
++ sinodep, block, offset,
++ sizeof(*sinodep), &next_block,
++ &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, (char *)
++ inodep, block, offset,
++ sizeof(*inodep), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ frag_blk = SQUASHFS_INVALID_BLK;
++ if (inodep->fragment != SQUASHFS_INVALID_FRAG &&
++ !get_fragment_location_2(s,
++ inodep->fragment, &frag_blk, &frag_size))
++ goto failed_read;
++
++ i->i_size = inodep->file_size;
++ i->i_fop = &generic_ro_fops;
++ i->i_mode |= S_IFREG;
++ i->i_mtime.tv_sec = inodep->mtime;
++ i->i_atime.tv_sec = inodep->mtime;
++ i->i_ctime.tv_sec = inodep->mtime;
++ i->i_blocks = ((i->i_size - 1) >> 9) + 1;
++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
++ SQUASHFS_I(i)->start_block = inodep->start_block;
++ SQUASHFS_I(i)->u.s1.block_list_start = next_block;
++ SQUASHFS_I(i)->offset = next_offset;
++ i->i_data.a_ops = &squashfs_aops;
++
++ TRACE("File inode %x:%x, start_block %x, "
++ "block_list_start %llx, offset %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ inodep->start_block, next_block,
++ next_offset);
++ break;
++ }
++ case SQUASHFS_DIR_TYPE: {
++ struct squashfs_dir_inode_header_2 *inodep = &id.dir;
++ struct squashfs_dir_inode_header_2 *sinodep = &sid.dir;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, (char *)
++ sinodep, block, offset,
++ sizeof(*sinodep), &next_block,
++ &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, (char *)
++ inodep, block, offset,
++ sizeof(*inodep), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ i->i_size = inodep->file_size;
++ i->i_op = &squashfs_dir_inode_ops_2;
++ i->i_fop = &squashfs_dir_ops_2;
++ i->i_mode |= S_IFDIR;
++ i->i_mtime.tv_sec = inodep->mtime;
++ i->i_atime.tv_sec = inodep->mtime;
++ i->i_ctime.tv_sec = inodep->mtime;
++ SQUASHFS_I(i)->start_block = inodep->start_block;
++ SQUASHFS_I(i)->offset = inodep->offset;
++ SQUASHFS_I(i)->u.s2.directory_index_count = 0;
++ SQUASHFS_I(i)->u.s2.parent_inode = 0;
++
++ TRACE("Directory inode %x:%x, start_block %x, offset "
++ "%x\n", SQUASHFS_INODE_BLK(inode),
++ offset, inodep->start_block,
++ inodep->offset);
++ break;
++ }
++ case SQUASHFS_LDIR_TYPE: {
++ struct squashfs_ldir_inode_header_2 *inodep = &id.ldir;
++ struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, (char *)
++ sinodep, block, offset,
++ sizeof(*sinodep), &next_block,
++ &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep,
++ sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, (char *)
++ inodep, block, offset,
++ sizeof(*inodep), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ i->i_size = inodep->file_size;
++ i->i_op = &squashfs_dir_inode_ops_2;
++ i->i_fop = &squashfs_dir_ops_2;
++ i->i_mode |= S_IFDIR;
++ i->i_mtime.tv_sec = inodep->mtime;
++ i->i_atime.tv_sec = inodep->mtime;
++ i->i_ctime.tv_sec = inodep->mtime;
++ SQUASHFS_I(i)->start_block = inodep->start_block;
++ SQUASHFS_I(i)->offset = inodep->offset;
++ SQUASHFS_I(i)->u.s2.directory_index_start = next_block;
++ SQUASHFS_I(i)->u.s2.directory_index_offset =
++ next_offset;
++ SQUASHFS_I(i)->u.s2.directory_index_count =
++ inodep->i_count;
++ SQUASHFS_I(i)->u.s2.parent_inode = 0;
++
++ TRACE("Long directory inode %x:%x, start_block %x, "
++ "offset %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ inodep->start_block, inodep->offset);
++ break;
++ }
++ case SQUASHFS_SYMLINK_TYPE: {
++ struct squashfs_symlink_inode_header_2 *inodep =
++ &id.symlink;
++ struct squashfs_symlink_inode_header_2 *sinodep =
++ &sid.symlink;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, (char *)
++ sinodep, block, offset,
++ sizeof(*sinodep), &next_block,
++ &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep,
++ sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, (char *)
++ inodep, block, offset,
++ sizeof(*inodep), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ i->i_size = inodep->symlink_size;
++ i->i_op = &page_symlink_inode_operations;
++ i->i_data.a_ops = &squashfs_symlink_aops;
++ i->i_mode |= S_IFLNK;
++ SQUASHFS_I(i)->start_block = next_block;
++ SQUASHFS_I(i)->offset = next_offset;
++
++ TRACE("Symbolic link inode %x:%x, start_block %llx, "
++ "offset %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ next_block, next_offset);
++ break;
++ }
++ case SQUASHFS_BLKDEV_TYPE:
++ case SQUASHFS_CHRDEV_TYPE: {
++ struct squashfs_dev_inode_header_2 *inodep = &id.dev;
++ struct squashfs_dev_inode_header_2 *sinodep = &sid.dev;
++
++ if (msblk->swap) {
++ if (!squashfs_get_cached_block(s, (char *)
++ sinodep, block, offset,
++ sizeof(*sinodep), &next_block,
++ &next_offset))
++ goto failed_read;
++ SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep);
++ } else
++ if (!squashfs_get_cached_block(s, (char *)
++ inodep, block, offset,
++ sizeof(*inodep), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ i->i_mode |= (inodeb->inode_type ==
++ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR :
++ S_IFBLK;
++ init_special_inode(i, i->i_mode,
++ old_decode_dev(inodep->rdev));
++
++ TRACE("Device inode %x:%x, rdev %x\n",
++ SQUASHFS_INODE_BLK(inode), offset,
++ inodep->rdev);
++ break;
++ }
++ case SQUASHFS_FIFO_TYPE:
++ case SQUASHFS_SOCKET_TYPE: {
++
++ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE)
++ ? S_IFIFO : S_IFSOCK;
++ init_special_inode(i, i->i_mode, 0);
++ break;
++ }
++ default:
++ ERROR("Unknown inode type %d in squashfs_iget!\n",
++ inodeb->inode_type);
++ goto failed_read1;
++ }
++
++ return 1;
++
++failed_read:
++ ERROR("Unable to read inode [%x:%x]\n", block, offset);
++
++failed_read1:
++ return 0;
++}
++
++
++static int get_dir_index_using_offset(struct super_block *s, long long
++ *next_block, unsigned int *next_offset,
++ long long index_start,
++ unsigned int index_offset, int i_count,
++ long long f_pos)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ int i, length = 0;
++ struct squashfs_dir_index_2 index;
++
++ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n",
++ i_count, (unsigned int) f_pos);
++
++ if (f_pos == 0)
++ goto finish;
++
++ for (i = 0; i < i_count; i++) {
++ if (msblk->swap) {
++ struct squashfs_dir_index_2 sindex;
++ squashfs_get_cached_block(s, (char *) &sindex,
++ index_start, index_offset,
++ sizeof(sindex), &index_start,
++ &index_offset);
++ SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex);
++ } else
++ squashfs_get_cached_block(s, (char *) &index,
++ index_start, index_offset,
++ sizeof(index), &index_start,
++ &index_offset);
++
++ if (index.index > f_pos)
++ break;
++
++ squashfs_get_cached_block(s, NULL, index_start, index_offset,
++ index.size + 1, &index_start,
++ &index_offset);
++
++ length = index.index;
++ *next_block = index.start_block + sblk->directory_table_start;
++ }
++
++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
++
++finish:
++ return length;
++}
++
++
++static int get_dir_index_using_name(struct super_block *s, long long
++ *next_block, unsigned int *next_offset,
++ long long index_start,
++ unsigned int index_offset, int i_count,
++ const char *name, int size)
++{
++ struct squashfs_sb_info *msblk = s->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ int i, length = 0;
++ struct squashfs_dir_index_2 *index;
++ char *str;
++
++ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count);
++
++ if (!(str = kmalloc(sizeof(struct squashfs_dir_index) +
++ (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) {
++ ERROR("Failed to allocate squashfs_dir_index\n");
++ goto failure;
++ }
++
++ index = (struct squashfs_dir_index_2 *) (str + SQUASHFS_NAME_LEN + 1);
++ strncpy(str, name, size);
++ str[size] = '\0';
++
++ for (i = 0; i < i_count; i++) {
++ if (msblk->swap) {
++ struct squashfs_dir_index_2 sindex;
++ squashfs_get_cached_block(s, (char *) &sindex,
++ index_start, index_offset,
++ sizeof(sindex), &index_start,
++ &index_offset);
++ SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex);
++ } else
++ squashfs_get_cached_block(s, (char *) index,
++ index_start, index_offset,
++ sizeof(struct squashfs_dir_index_2),
++ &index_start, &index_offset);
++
++ squashfs_get_cached_block(s, index->name, index_start,
++ index_offset, index->size + 1,
++ &index_start, &index_offset);
++
++ index->name[index->size + 1] = '\0';
++
++ if (strcmp(index->name, str) > 0)
++ break;
++
++ length = index->index;
++ *next_block = index->start_block + sblk->directory_table_start;
++ }
++
++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
++ kfree(str);
++failure:
++ return length;
++}
++
++
++static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir)
++{
++ struct inode *i = file->f_dentry->d_inode;
++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ long long next_block = SQUASHFS_I(i)->start_block +
++ sblk->directory_table_start;
++ int next_offset = SQUASHFS_I(i)->offset, length = 0,
++ dir_count;
++ struct squashfs_dir_header_2 dirh;
++ struct squashfs_dir_entry_2 *dire;
++
++ TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset);
++
++ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) +
++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) {
++ ERROR("Failed to allocate squashfs_dir_entry\n");
++ goto finish;
++ }
++
++ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_start,
++ SQUASHFS_I(i)->u.s2.directory_index_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_count,
++ file->f_pos);
++
++ while (length < i_size_read(i)) {
++ /* read directory header */
++ if (msblk->swap) {
++ struct squashfs_dir_header_2 sdirh;
++
++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh,
++ next_block, next_offset, sizeof(sdirh),
++ &next_block, &next_offset))
++ goto failed_read;
++
++ length += sizeof(sdirh);
++ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh,
++ next_block, next_offset, sizeof(dirh),
++ &next_block, &next_offset))
++ goto failed_read;
++
++ length += sizeof(dirh);
++ }
++
++ dir_count = dirh.count + 1;
++ while (dir_count--) {
++ if (msblk->swap) {
++ struct squashfs_dir_entry_2 sdire;
++ if (!squashfs_get_cached_block(i->i_sb, (char *)
++ &sdire, next_block, next_offset,
++ sizeof(sdire), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ length += sizeof(sdire);
++ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, (char *)
++ dire, next_block, next_offset,
++ sizeof(*dire), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ length += sizeof(*dire);
++ }
++
++ if (!squashfs_get_cached_block(i->i_sb, dire->name,
++ next_block, next_offset,
++ dire->size + 1, &next_block,
++ &next_offset))
++ goto failed_read;
++
++ length += dire->size + 1;
++
++ if (file->f_pos >= length)
++ continue;
++
++ dire->name[dire->size + 1] = '\0';
++
++ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n",
++ (unsigned int) dirent, dire->name,
++ dire->size + 1, (int) file->f_pos,
++ dirh.start_block, dire->offset,
++ squashfs_filetype_table[dire->type]);
++
++ if (filldir(dirent, dire->name, dire->size + 1,
++ file->f_pos, SQUASHFS_MK_VFS_INODE(
++ dirh.start_block, dire->offset),
++ squashfs_filetype_table[dire->type])
++ < 0) {
++ TRACE("Filldir returned less than 0\n");
++ goto finish;
++ }
++ file->f_pos = length;
++ }
++ }
++
++finish:
++ kfree(dire);
++ return 0;
++
++failed_read:
++ ERROR("Unable to read directory block [%llx:%x]\n", next_block,
++ next_offset);
++ kfree(dire);
++ return 0;
++}
++
++
++static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry,
++ struct nameidata *nd)
++{
++ const unsigned char *name = dentry->d_name.name;
++ int len = dentry->d_name.len;
++ struct inode *inode = NULL;
++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
++ struct squashfs_super_block *sblk = &msblk->sblk;
++ long long next_block = SQUASHFS_I(i)->start_block +
++ sblk->directory_table_start;
++ int next_offset = SQUASHFS_I(i)->offset, length = 0,
++ dir_count;
++ struct squashfs_dir_header_2 dirh;
++ struct squashfs_dir_entry_2 *dire;
++ int sorted = sblk->s_major == 2 && sblk->s_minor >= 1;
++
++ TRACE("Entered squashfs_lookup_2 [%llx:%x]\n", next_block, next_offset);
++
++ if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) +
++ SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) {
++ ERROR("Failed to allocate squashfs_dir_entry\n");
++ goto exit_loop;
++ }
++
++ if (len > SQUASHFS_NAME_LEN)
++ goto exit_loop;
++
++ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_start,
++ SQUASHFS_I(i)->u.s2.directory_index_offset,
++ SQUASHFS_I(i)->u.s2.directory_index_count, name,
++ len);
++
++ while (length < i_size_read(i)) {
++ /* read directory header */
++ if (msblk->swap) {
++ struct squashfs_dir_header_2 sdirh;
++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh,
++ next_block, next_offset, sizeof(sdirh),
++ &next_block, &next_offset))
++ goto failed_read;
++
++ length += sizeof(sdirh);
++ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh,
++ next_block, next_offset, sizeof(dirh),
++ &next_block, &next_offset))
++ goto failed_read;
++
++ length += sizeof(dirh);
++ }
++
++ dir_count = dirh.count + 1;
++ while (dir_count--) {
++ if (msblk->swap) {
++ struct squashfs_dir_entry_2 sdire;
++ if (!squashfs_get_cached_block(i->i_sb, (char *)
++ &sdire, next_block,next_offset,
++ sizeof(sdire), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ length += sizeof(sdire);
++ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire);
++ } else {
++ if (!squashfs_get_cached_block(i->i_sb, (char *)
++ dire, next_block,next_offset,
++ sizeof(*dire), &next_block,
++ &next_offset))
++ goto failed_read;
++
++ length += sizeof(*dire);
++ }
++
++ if (!squashfs_get_cached_block(i->i_sb, dire->name,
++ next_block, next_offset, dire->size + 1,
++ &next_block, &next_offset))
++ goto failed_read;
++
++ length += dire->size + 1;
++
++ if (sorted && name[0] < dire->name[0])
++ goto exit_loop;
++
++ if ((len == dire->size + 1) && !strncmp(name,
++ dire->name, len)) {
++ squashfs_inode_t ino =
++ SQUASHFS_MKINODE(dirh.start_block,
++ dire->offset);
++ unsigned int inode_number = SQUASHFS_MK_VFS_INODE(dirh.start_block,
++ dire->offset);
++
++ TRACE("calling squashfs_iget for directory "
++ "entry %s, inode %x:%x, %lld\n", name,
++ dirh.start_block, dire->offset, ino);
++
++ inode = squashfs_iget(i->i_sb, ino, inode_number);
++
++ goto exit_loop;
++ }
++ }
++ }
++
++exit_loop:
++ kfree(dire);
++ d_add(dentry, inode);
++ return ERR_PTR(0);
++
++failed_read:
++ ERROR("Unable to read directory block [%llx:%x]\n", next_block,
++ next_offset);
++ goto exit_loop;
++}
++
++
++int squashfs_2_0_supported(struct squashfs_sb_info *msblk)
++{
++ struct squashfs_super_block *sblk = &msblk->sblk;
++
++ msblk->read_inode = squashfs_read_inode_2;
++ msblk->read_fragment_index_table = read_fragment_index_table_2;
++
++ sblk->bytes_used = sblk->bytes_used_2;
++ sblk->uid_start = sblk->uid_start_2;
++ sblk->guid_start = sblk->guid_start_2;
++ sblk->inode_table_start = sblk->inode_table_start_2;
++ sblk->directory_table_start = sblk->directory_table_start_2;
++ sblk->fragment_table_start = sblk->fragment_table_start_2;
++
++ return 1;
++}
+diff -urN linux-2.6.23/fs/squashfs/uncomp.c linux-2.6.23.sqlzma-ng/fs/squashfs/uncomp.c
+--- linux-2.6.23/fs/squashfs/uncomp.c 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/fs/squashfs/uncomp.c 2007-11-13 19:40:29.000000000 -0500
+@@ -0,0 +1,221 @@
++/*
++ * Copyright (C) 2006, 2007 Junjiro Okajima
++ * Copyright (C) 2006, 2007 Tomas Matejicek, slax.org
++ *
++ * LICENSE follows the described one in lzma.txt.
++ */
++
++/* $Id: uncomp.c,v 1.1 2007/11/05 05:43:36 jro Exp $ */
++
++/* extract some parts from lzma443/C/7zip/Compress/LZMA_C/LzmaTest.c */
++
++#ifndef __KERNEL__
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <errno.h>
++#include <assert.h>
++#include <pthread.h>
++#define unlikely(x) __builtin_expect(!!(x), 0)
++#define BUG_ON(x) assert(!(x))
++/* sqlzma buffers are always larger than a page. true? */
++#define kmalloc(sz,gfp) malloc(sz)
++#define kfree(p) free(p)
++#define zlib_inflate(s, f) inflate(s, f)
++#define zlib_inflateInit(s) inflateInit(s)
++#define zlib_inflateReset(s) inflateReset(s)
++#define zlib_inflateEnd(s) inflateEnd(s)
++#else
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/vmalloc.h>
++#ifndef WARN_ON_ONCE
++#define WARN_ON_ONCE(b) WARN_ON(b)
++#endif
++#endif /* __KERNEL__ */
++
++#include "sqlzma.h"
++#include "LzmaDecode.h"
++
++static int LzmaUncompress(struct sqlzma_un *un)
++{
++ int err, i, ret;
++ SizeT outSize, inProcessed, outProcessed, srclen;
++ /* it's about 24-80 bytes structure, if int is 32-bit */
++ CLzmaDecoderState state;
++ unsigned char *dst, *src, a[8];
++ struct sized_buf *sbuf;
++
++ /* Decode LZMA properties and allocate memory */
++ err = -EINVAL;
++ src = un->un_cmbuf;
++ ret = LzmaDecodeProperties(&state.Properties, src, LZMA_PROPERTIES_SIZE);
++ src += LZMA_PROPERTIES_SIZE;
++ if (unlikely(ret != LZMA_RESULT_OK))
++ goto out;
++ i = LzmaGetNumProbs(&state.Properties);
++ if (unlikely(i <= 0))
++ i = 1;
++ i *= sizeof(CProb);
++ sbuf = un->un_a + SQUN_PROB;
++ if (unlikely(sbuf->sz < i)) {
++ if (sbuf->buf && sbuf->buf != un->un_prob)
++ kfree(sbuf->buf);
++#ifdef __KERNEL__
++ printk("%s:%d: %d --> %d\n", __func__, __LINE__, sbuf->sz, i);
++#else
++ printf("%d --> %d\n", sbuf->sz, i);
++#endif
++ err = -ENOMEM;
++ sbuf->sz = 0;
++ sbuf->buf = kmalloc(i, GFP_ATOMIC);
++ if (unlikely(!sbuf->buf))
++ goto out;
++ sbuf->sz = i;
++ }
++ state.Probs = (void*)sbuf->buf;
++
++ /* Read uncompressed size */
++ memcpy(a, src, sizeof(a));
++ src += sizeof(a);
++ outSize = a[0] | (a[1] << 8) | (a[2] << 16) | (a[3] << 24);
++
++ err = -EINVAL;
++ dst = un->un_resbuf;
++ if (unlikely(!dst || outSize > un->un_reslen))
++ goto out;
++ un->un_reslen = outSize;
++ srclen = un->un_cmlen - (src - un->un_cmbuf);
++
++ /* Decompress */
++ err = LzmaDecode(&state, src, srclen, &inProcessed, dst, outSize,
++ &outProcessed);
++ if (err)
++ err = -EINVAL;
++
++ out:
++#ifndef __KERNEL__
++ if (err)
++ fprintf(stderr, "err %d\n", err);
++#endif
++ return err;
++}
++
++int sqlzma_un(struct sqlzma_un *un, struct sized_buf *src,
++ struct sized_buf *dst)
++{
++ int err, by_lzma = 0;
++ if (un->un_lzma && is_lzma(*src->buf)) {
++ by_lzma = 1;
++ un->un_cmbuf = src->buf;
++ un->un_cmlen = src->sz;
++ un->un_resbuf = dst->buf;
++ un->un_reslen = dst->sz;
++
++ /* this library is thread-safe */
++ err = LzmaUncompress(un);
++ goto out;
++ }
++
++ err = zlib_inflateReset(&un->un_stream);
++ if (unlikely(err != Z_OK))
++ goto out;
++ un->un_stream.next_in = src->buf;
++ un->un_stream.avail_in = src->sz;
++ un->un_stream.next_out = dst->buf;
++ un->un_stream.avail_out = dst->sz;
++ err = zlib_inflate(&un->un_stream, Z_FINISH);
++ if (err == Z_STREAM_END)
++ err = 0;
++
++ out:
++ if (err) {
++#ifdef __KERNEL__
++ WARN_ON_ONCE(1);
++#else
++ char a[64] = "ZLIB ";
++ if (by_lzma) {
++ strcpy(a, "LZMA ");
++#ifdef _REENTRANT
++ strerror_r(err, a + 5, sizeof(a) - 5);
++#else
++ strncat(a, strerror(err), sizeof(a) - 5);
++#endif
++ } else
++ strncat(a, zError(err), sizeof(a) - 5);
++ fprintf(stderr, "%s: %.*s\n", __func__, sizeof(a), a);
++#endif
++ }
++ return err;
++}
++
++int sqlzma_init(struct sqlzma_un *un, int do_lzma, unsigned int res_sz)
++{
++ int err;
++
++ err = -ENOMEM;
++ un->un_lzma = do_lzma;
++ memset(un->un_a, 0, sizeof(un->un_a));
++ un->un_a[SQUN_PROB].buf = un->un_prob;
++ un->un_a[SQUN_PROB].sz = sizeof(un->un_prob);
++ if (res_sz) {
++ un->un_a[SQUN_RESULT].buf = kmalloc(res_sz, GFP_KERNEL);
++ if (unlikely(!un->un_a[SQUN_RESULT].buf))
++ return err;
++ un->un_a[SQUN_RESULT].sz = res_sz;
++ }
++
++ un->un_stream.next_in = NULL;
++ un->un_stream.avail_in = 0;
++#ifdef __KERNEL__
++ un->un_stream.workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL);
++ if (unlikely(!un->un_stream.workspace))
++ return err;
++#else
++ un->un_stream.opaque = NULL;
++ un->un_stream.zalloc = Z_NULL;
++ un->un_stream.zfree = Z_NULL;
++#endif
++ err = zlib_inflateInit(&un->un_stream);
++ if (unlikely(err == Z_MEM_ERROR))
++ return -ENOMEM;
++ BUG_ON(err);
++ return err;
++}
++
++void sqlzma_fin(struct sqlzma_un *un)
++{
++ int i;
++ for (i = 0; i < SQUN_LAST; i++)
++ if (un->un_a[i].buf && un->un_a[i].buf != un->un_prob)
++ kfree(un->un_a[i].buf);
++ BUG_ON(zlib_inflateEnd(&un->un_stream) != Z_OK);
++}
++
++#ifdef __KERNEL__
++EXPORT_SYMBOL(sqlzma_un);
++EXPORT_SYMBOL(sqlzma_init);
++EXPORT_SYMBOL(sqlzma_fin);
++
++#if 0
++static int __init sqlzma_init(void)
++{
++ return 0;
++}
++
++static void __exit sqlzma_exit(void)
++{
++}
++
++module_init(sqlzma_init);
++module_exit(sqlzma_exit);
++#endif
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Junjiro Okajima <sfjro at users dot sf dot net>");
++MODULE_VERSION("$Id: uncomp.c,v 1.1 2007/11/05 05:43:36 jro Exp $");
++MODULE_DESCRIPTION("LZMA uncompress for squashfs. "
++ "Some functions for squashfs to support LZMA and "
++ "a tiny wrapper for LzmaDecode.c in LZMA SDK from www.7-zip.org.");
++#endif
+diff -urN linux-2.6.23/include/linux/squashfs_fs.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs.h
+--- linux-2.6.23/include/linux/squashfs_fs.h 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs.h 2007-11-13 19:12:41.000000000 -0500
+@@ -0,0 +1,937 @@
++#ifndef SQUASHFS_FS
++#define SQUASHFS_FS
++
++/*
++ * Squashfs
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * 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,
++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * squashfs_fs.h
++ */
++
++#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY
++#define CONFIG_SQUASHFS_2_0_COMPATIBILITY
++#endif
++
++#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE
++#define SQUASHFS_MAJOR 3
++#define SQUASHFS_MINOR 1
++#define SQUASHFS_MAGIC 0x73717368
++#define SQUASHFS_MAGIC_SWAP 0x68737173
++#define SQUASHFS_MAGIC_LZMA 0x71736873
++#define SQUASHFS_MAGIC_LZMA_SWAP 0x73687371
++#define SQUASHFS_START 0
++
++/* size of metadata (inode and directory) blocks */
++#define SQUASHFS_METADATA_SIZE 8192
++#define SQUASHFS_METADATA_LOG 13
++
++/* default size of data blocks */
++#define SQUASHFS_FILE_SIZE 131072
++#define SQUASHFS_FILE_LOG 17
++
++#define SQUASHFS_FILE_MAX_SIZE 1048576
++
++/* Max number of uids and gids */
++#define SQUASHFS_UIDS 256
++#define SQUASHFS_GUIDS 255
++
++/* Max length of filename (not 255) */
++#define SQUASHFS_NAME_LEN 256
++
++#define SQUASHFS_INVALID ((long long) 0xffffffffffff)
++#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff)
++#define SQUASHFS_INVALID_BLK ((long long) -1)
++#define SQUASHFS_USED_BLK ((long long) -2)
++
++/* Filesystem flags */
++#define SQUASHFS_NOI 0
++#define SQUASHFS_NOD 1
++#define SQUASHFS_CHECK 2
++#define SQUASHFS_NOF 3
++#define SQUASHFS_NO_FRAG 4
++#define SQUASHFS_ALWAYS_FRAG 5
++#define SQUASHFS_DUPLICATE 6
++#define SQUASHFS_EXPORT 7
++
++#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1)
++
++#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_NOI)
++
++#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_NOD)
++
++#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_NOF)
++
++#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_NO_FRAG)
++
++#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_ALWAYS_FRAG)
++
++#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_DUPLICATE)
++
++#define SQUASHFS_EXPORTABLE(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_EXPORT)
++
++#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \
++ SQUASHFS_CHECK)
++
++#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \
++ duplicate_checking, exportable) (noi | (nod << 1) | (check_data << 2) \
++ | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \
++ (duplicate_checking << 6) | (exportable << 7))
++
++/* Max number of types and file types */
++#define SQUASHFS_DIR_TYPE 1
++#define SQUASHFS_FILE_TYPE 2
++#define SQUASHFS_SYMLINK_TYPE 3
++#define SQUASHFS_BLKDEV_TYPE 4
++#define SQUASHFS_CHRDEV_TYPE 5
++#define SQUASHFS_FIFO_TYPE 6
++#define SQUASHFS_SOCKET_TYPE 7
++#define SQUASHFS_LDIR_TYPE 8
++#define SQUASHFS_LREG_TYPE 9
++
++/* 1.0 filesystem type definitions */
++#define SQUASHFS_TYPES 5
++#define SQUASHFS_IPC_TYPE 0
++
++/* Flag whether block is compressed or uncompressed, bit is set if block is
++ * uncompressed */
++#define SQUASHFS_COMPRESSED_BIT (1 << 15)
++
++#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \
++ (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT)
++
++#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT))
++
++#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24)
++
++#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) ((B) & \
++ ~SQUASHFS_COMPRESSED_BIT_BLOCK)
++
++#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK))
++
++/*
++ * Inode number ops. Inodes consist of a compressed block number, and an
++ * uncompressed offset within that block
++ */
++#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16))
++
++#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff))
++
++#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\
++ << 16) + (B)))
++
++/* Compute 32 bit VFS inode number from squashfs inode number */
++#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \
++ ((b) >> 2) + 1))
++/* XXX */
++
++/* Translate between VFS mode and squashfs mode */
++#define SQUASHFS_MODE(a) ((a) & 0xfff)
++
++/* fragment and fragment table defines */
++#define SQUASHFS_FRAGMENT_BYTES(A) ((A) * sizeof(struct squashfs_fragment_entry))
++
++#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \
++ SQUASHFS_METADATA_SIZE - 1) / \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\
++ sizeof(long long))
++
++/* inode lookup table defines */
++#define SQUASHFS_LOOKUP_BYTES(A) ((A) * sizeof(squashfs_inode_t))
++
++#define SQUASHFS_LOOKUP_BLOCK(A) (SQUASHFS_LOOKUP_BYTES(A) / \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_LOOKUP_BLOCK_OFFSET(A) (SQUASHFS_LOOKUP_BYTES(A) % \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_LOOKUP_BLOCKS(A) ((SQUASHFS_LOOKUP_BYTES(A) + \
++ SQUASHFS_METADATA_SIZE - 1) / \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_LOOKUP_BLOCK_BYTES(A) (SQUASHFS_LOOKUP_BLOCKS(A) *\
++ sizeof(long long))
++
++/* cached data constants for filesystem */
++#define SQUASHFS_CACHED_BLKS 8
++
++#define SQUASHFS_MAX_FILE_SIZE_LOG 64
++
++#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \
++ (SQUASHFS_MAX_FILE_SIZE_LOG - 2))
++
++#define SQUASHFS_MARKER_BYTE 0xff
++
++/* meta index cache */
++#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int))
++#define SQUASHFS_META_ENTRIES 31
++#define SQUASHFS_META_NUMBER 8
++#define SQUASHFS_SLOTS 4
++
++struct meta_entry {
++ long long data_block;
++ unsigned int index_block;
++ unsigned short offset;
++ unsigned short pad;
++};
++
++struct meta_index {
++ unsigned int inode_number;
++ unsigned int offset;
++ unsigned short entries;
++ unsigned short skip;
++ unsigned short locked;
++ unsigned short pad;
++ struct meta_entry meta_entry[SQUASHFS_META_ENTRIES];
++};
++
++
++/*
++ * definitions for structures on disk
++ */
++
++typedef long long squashfs_block_t;
++typedef long long squashfs_inode_t;
++
++struct squashfs_super_block {
++ unsigned int s_magic;
++ unsigned int inodes;
++ unsigned int bytes_used_2;
++ unsigned int uid_start_2;
++ unsigned int guid_start_2;
++ unsigned int inode_table_start_2;
++ unsigned int directory_table_start_2;
++ unsigned int s_major:16;
++ unsigned int s_minor:16;
++ unsigned int block_size_1:16;
++ unsigned int block_log:16;
++ unsigned int flags:8;
++ unsigned int no_uids:8;
++ unsigned int no_guids:8;
++ unsigned int mkfs_time /* time of filesystem creation */;
++ squashfs_inode_t root_inode;
++ unsigned int block_size;
++ unsigned int fragments;
++ unsigned int fragment_table_start_2;
++ long long bytes_used;
++ long long uid_start;
++ long long guid_start;
++ long long inode_table_start;
++ long long directory_table_start;
++ long long fragment_table_start;
++ long long lookup_table_start;
++} __attribute__ ((packed));
++
++struct squashfs_dir_index {
++ unsigned int index;
++ unsigned int start_block;
++ unsigned char size;
++ unsigned char name[0];
++} __attribute__ ((packed));
++
++#define SQUASHFS_BASE_INODE_HEADER \
++ unsigned int inode_type:4; \
++ unsigned int mode:12; \
++ unsigned int uid:8; \
++ unsigned int guid:8; \
++ unsigned int mtime; \
++ unsigned int inode_number;
++
++struct squashfs_base_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++} __attribute__ ((packed));
++
++struct squashfs_ipc_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++ unsigned int nlink;
++} __attribute__ ((packed));
++
++struct squashfs_dev_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++ unsigned int nlink;
++ unsigned short rdev;
++} __attribute__ ((packed));
++
++struct squashfs_symlink_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++ unsigned int nlink;
++ unsigned short symlink_size;
++ char symlink[0];
++} __attribute__ ((packed));
++
++struct squashfs_reg_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++ squashfs_block_t start_block;
++ unsigned int fragment;
++ unsigned int offset;
++ unsigned int file_size;
++ unsigned short block_list[0];
++} __attribute__ ((packed));
++
++struct squashfs_lreg_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++ unsigned int nlink;
++ squashfs_block_t start_block;
++ unsigned int fragment;
++ unsigned int offset;
++ long long file_size;
++ unsigned short block_list[0];
++} __attribute__ ((packed));
++
++struct squashfs_dir_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++ unsigned int nlink;
++ unsigned int file_size:19;
++ unsigned int offset:13;
++ unsigned int start_block;
++ unsigned int parent_inode;
++} __attribute__ ((packed));
++
++struct squashfs_ldir_inode_header {
++ SQUASHFS_BASE_INODE_HEADER;
++ unsigned int nlink;
++ unsigned int file_size:27;
++ unsigned int offset:13;
++ unsigned int start_block;
++ unsigned int i_count:16;
++ unsigned int parent_inode;
++ struct squashfs_dir_index index[0];
++} __attribute__ ((packed));
++
++union squashfs_inode_header {
++ struct squashfs_base_inode_header base;
++ struct squashfs_dev_inode_header dev;
++ struct squashfs_symlink_inode_header symlink;
++ struct squashfs_reg_inode_header reg;
++ struct squashfs_lreg_inode_header lreg;
++ struct squashfs_dir_inode_header dir;
++ struct squashfs_ldir_inode_header ldir;
++ struct squashfs_ipc_inode_header ipc;
++};
++
++struct squashfs_dir_entry {
++ unsigned int offset:13;
++ unsigned int type:3;
++ unsigned int size:8;
++ unsigned int inode_number:16;
++ char name[0];
++} __attribute__ ((packed));
++
++struct squashfs_dir_header {
++ unsigned int count:8;
++ unsigned int start_block;
++ unsigned int inode_number;
++} __attribute__ ((packed));
++
++struct squashfs_fragment_entry {
++ long long start_block;
++ unsigned int size;
++ unsigned int pending;
++} __attribute__ ((packed));
++
++extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen);
++extern int squashfs_uncompress_init(void);
++extern int squashfs_uncompress_exit(void);
++
++/*
++ * macros to convert each packed bitfield structure from little endian to big
++ * endian and vice versa. These are needed when creating or using a filesystem
++ * on a machine with different byte ordering to the target architecture.
++ *
++ */
++
++#define SQUASHFS_SWAP_START \
++ int bits;\
++ int b_pos;\
++ unsigned long long val;\
++ unsigned char *s;\
++ unsigned char *d;
++
++#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\
++ SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\
++ SQUASHFS_SWAP((s)->inodes, d, 32, 32);\
++ SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\
++ SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\
++ SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\
++ SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\
++ SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\
++ SQUASHFS_SWAP((s)->s_major, d, 224, 16);\
++ SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\
++ SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\
++ SQUASHFS_SWAP((s)->block_log, d, 272, 16);\
++ SQUASHFS_SWAP((s)->flags, d, 288, 8);\
++ SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\
++ SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\
++ SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\
++ SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\
++ SQUASHFS_SWAP((s)->block_size, d, 408, 32);\
++ SQUASHFS_SWAP((s)->fragments, d, 440, 32);\
++ SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\
++ SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\
++ SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\
++ SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\
++ SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\
++ SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\
++ SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\
++ SQUASHFS_SWAP((s)->lookup_table_start, d, 888, 64);\
++}
++
++#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\
++ SQUASHFS_MEMSET(s, d, n);\
++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\
++ SQUASHFS_SWAP((s)->uid, d, 16, 8);\
++ SQUASHFS_SWAP((s)->guid, d, 24, 8);\
++ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\
++ SQUASHFS_SWAP((s)->inode_number, d, 64, 32);
++
++#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\
++}
++
++#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
++ sizeof(struct squashfs_ipc_inode_header))\
++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
++}
++
++#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
++ sizeof(struct squashfs_dev_inode_header)); \
++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
++ SQUASHFS_SWAP((s)->rdev, d, 128, 16);\
++}
++
++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
++ sizeof(struct squashfs_symlink_inode_header));\
++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
++ SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\
++}
++
++#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
++ sizeof(struct squashfs_reg_inode_header));\
++ SQUASHFS_SWAP((s)->start_block, d, 96, 64);\
++ SQUASHFS_SWAP((s)->fragment, d, 160, 32);\
++ SQUASHFS_SWAP((s)->offset, d, 192, 32);\
++ SQUASHFS_SWAP((s)->file_size, d, 224, 32);\
++}
++
++#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
++ sizeof(struct squashfs_lreg_inode_header));\
++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
++ SQUASHFS_SWAP((s)->start_block, d, 128, 64);\
++ SQUASHFS_SWAP((s)->fragment, d, 192, 32);\
++ SQUASHFS_SWAP((s)->offset, d, 224, 32);\
++ SQUASHFS_SWAP((s)->file_size, d, 256, 64);\
++}
++
++#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
++ sizeof(struct squashfs_dir_inode_header));\
++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
++ SQUASHFS_SWAP((s)->file_size, d, 128, 19);\
++ SQUASHFS_SWAP((s)->offset, d, 147, 13);\
++ SQUASHFS_SWAP((s)->start_block, d, 160, 32);\
++ SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\
++}
++
++#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
++ sizeof(struct squashfs_ldir_inode_header));\
++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
++ SQUASHFS_SWAP((s)->file_size, d, 128, 27);\
++ SQUASHFS_SWAP((s)->offset, d, 155, 13);\
++ SQUASHFS_SWAP((s)->start_block, d, 168, 32);\
++ SQUASHFS_SWAP((s)->i_count, d, 200, 16);\
++ SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\
++}
++
++#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\
++ SQUASHFS_SWAP((s)->index, d, 0, 32);\
++ SQUASHFS_SWAP((s)->start_block, d, 32, 32);\
++ SQUASHFS_SWAP((s)->size, d, 64, 8);\
++}
++
++#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\
++ SQUASHFS_SWAP((s)->count, d, 0, 8);\
++ SQUASHFS_SWAP((s)->start_block, d, 8, 32);\
++ SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\
++}
++
++#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\
++ SQUASHFS_SWAP((s)->offset, d, 0, 13);\
++ SQUASHFS_SWAP((s)->type, d, 13, 3);\
++ SQUASHFS_SWAP((s)->size, d, 16, 8);\
++ SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\
++}
++
++#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\
++ SQUASHFS_SWAP((s)->start_block, d, 0, 64);\
++ SQUASHFS_SWAP((s)->size, d, 64, 32);\
++}
++
++#define SQUASHFS_SWAP_INODE_T(s, d) SQUASHFS_SWAP_LONG_LONGS(s, d, 1)
++
++#define SQUASHFS_SWAP_SHORTS(s, d, n) {\
++ int entry;\
++ int bit_position;\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, n * 2);\
++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
++ 16)\
++ SQUASHFS_SWAP(s[entry], d, bit_position, 16);\
++}
++
++#define SQUASHFS_SWAP_INTS(s, d, n) {\
++ int entry;\
++ int bit_position;\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, n * 4);\
++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
++ 32)\
++ SQUASHFS_SWAP(s[entry], d, bit_position, 32);\
++}
++
++#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\
++ int entry;\
++ int bit_position;\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, n * 8);\
++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
++ 64)\
++ SQUASHFS_SWAP(s[entry], d, bit_position, 64);\
++}
++
++#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\
++ int entry;\
++ int bit_position;\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, n * bits / 8);\
++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
++ bits)\
++ SQUASHFS_SWAP(s[entry], d, bit_position, bits);\
++}
++
++#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n)
++#define SQUASHFS_SWAP_LOOKUP_BLOCKS(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n)
++
++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
++
++struct squashfs_base_inode_header_1 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:4; /* index into uid table */
++ unsigned int guid:4; /* index into guid table */
++} __attribute__ ((packed));
++
++struct squashfs_ipc_inode_header_1 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:4; /* index into uid table */
++ unsigned int guid:4; /* index into guid table */
++ unsigned int type:4;
++ unsigned int offset:4;
++} __attribute__ ((packed));
++
++struct squashfs_dev_inode_header_1 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:4; /* index into uid table */
++ unsigned int guid:4; /* index into guid table */
++ unsigned short rdev;
++} __attribute__ ((packed));
++
++struct squashfs_symlink_inode_header_1 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:4; /* index into uid table */
++ unsigned int guid:4; /* index into guid table */
++ unsigned short symlink_size;
++ char symlink[0];
++} __attribute__ ((packed));
++
++struct squashfs_reg_inode_header_1 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:4; /* index into uid table */
++ unsigned int guid:4; /* index into guid table */
++ unsigned int mtime;
++ unsigned int start_block;
++ unsigned int file_size:32;
++ unsigned short block_list[0];
++} __attribute__ ((packed));
++
++struct squashfs_dir_inode_header_1 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:4; /* index into uid table */
++ unsigned int guid:4; /* index into guid table */
++ unsigned int file_size:19;
++ unsigned int offset:13;
++ unsigned int mtime;
++ unsigned int start_block:24;
++} __attribute__ ((packed));
++
++union squashfs_inode_header_1 {
++ struct squashfs_base_inode_header_1 base;
++ struct squashfs_dev_inode_header_1 dev;
++ struct squashfs_symlink_inode_header_1 symlink;
++ struct squashfs_reg_inode_header_1 reg;
++ struct squashfs_dir_inode_header_1 dir;
++ struct squashfs_ipc_inode_header_1 ipc;
++};
++
++#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \
++ SQUASHFS_MEMSET(s, d, n);\
++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\
++ SQUASHFS_SWAP((s)->uid, d, 16, 4);\
++ SQUASHFS_SWAP((s)->guid, d, 20, 4);
++
++#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\
++}
++
++#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
++ sizeof(struct squashfs_ipc_inode_header_1));\
++ SQUASHFS_SWAP((s)->type, d, 24, 4);\
++ SQUASHFS_SWAP((s)->offset, d, 28, 4);\
++}
++
++#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
++ sizeof(struct squashfs_dev_inode_header_1));\
++ SQUASHFS_SWAP((s)->rdev, d, 24, 16);\
++}
++
++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
++ sizeof(struct squashfs_symlink_inode_header_1));\
++ SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\
++}
++
++#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
++ sizeof(struct squashfs_reg_inode_header_1));\
++ SQUASHFS_SWAP((s)->mtime, d, 24, 32);\
++ SQUASHFS_SWAP((s)->start_block, d, 56, 32);\
++ SQUASHFS_SWAP((s)->file_size, d, 88, 32);\
++}
++
++#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
++ sizeof(struct squashfs_dir_inode_header_1));\
++ SQUASHFS_SWAP((s)->file_size, d, 24, 19);\
++ SQUASHFS_SWAP((s)->offset, d, 43, 13);\
++ SQUASHFS_SWAP((s)->mtime, d, 56, 32);\
++ SQUASHFS_SWAP((s)->start_block, d, 88, 24);\
++}
++
++#endif
++
++#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY
++
++struct squashfs_dir_index_2 {
++ unsigned int index:27;
++ unsigned int start_block:29;
++ unsigned char size;
++ unsigned char name[0];
++} __attribute__ ((packed));
++
++struct squashfs_base_inode_header_2 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:8; /* index into uid table */
++ unsigned int guid:8; /* index into guid table */
++} __attribute__ ((packed));
++
++struct squashfs_ipc_inode_header_2 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:8; /* index into uid table */
++ unsigned int guid:8; /* index into guid table */
++} __attribute__ ((packed));
++
++struct squashfs_dev_inode_header_2 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:8; /* index into uid table */
++ unsigned int guid:8; /* index into guid table */
++ unsigned short rdev;
++} __attribute__ ((packed));
++
++struct squashfs_symlink_inode_header_2 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:8; /* index into uid table */
++ unsigned int guid:8; /* index into guid table */
++ unsigned short symlink_size;
++ char symlink[0];
++} __attribute__ ((packed));
++
++struct squashfs_reg_inode_header_2 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:8; /* index into uid table */
++ unsigned int guid:8; /* index into guid table */
++ unsigned int mtime;
++ unsigned int start_block;
++ unsigned int fragment;
++ unsigned int offset;
++ unsigned int file_size:32;
++ unsigned short block_list[0];
++} __attribute__ ((packed));
++
++struct squashfs_dir_inode_header_2 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:8; /* index into uid table */
++ unsigned int guid:8; /* index into guid table */
++ unsigned int file_size:19;
++ unsigned int offset:13;
++ unsigned int mtime;
++ unsigned int start_block:24;
++} __attribute__ ((packed));
++
++struct squashfs_ldir_inode_header_2 {
++ unsigned int inode_type:4;
++ unsigned int mode:12; /* protection */
++ unsigned int uid:8; /* index into uid table */
++ unsigned int guid:8; /* index into guid table */
++ unsigned int file_size:27;
++ unsigned int offset:13;
++ unsigned int mtime;
++ unsigned int start_block:24;
++ unsigned int i_count:16;
++ struct squashfs_dir_index_2 index[0];
++} __attribute__ ((packed));
++
++union squashfs_inode_header_2 {
++ struct squashfs_base_inode_header_2 base;
++ struct squashfs_dev_inode_header_2 dev;
++ struct squashfs_symlink_inode_header_2 symlink;
++ struct squashfs_reg_inode_header_2 reg;
++ struct squashfs_dir_inode_header_2 dir;
++ struct squashfs_ldir_inode_header_2 ldir;
++ struct squashfs_ipc_inode_header_2 ipc;
++};
++
++struct squashfs_dir_header_2 {
++ unsigned int count:8;
++ unsigned int start_block:24;
++} __attribute__ ((packed));
++
++struct squashfs_dir_entry_2 {
++ unsigned int offset:13;
++ unsigned int type:3;
++ unsigned int size:8;
++ char name[0];
++} __attribute__ ((packed));
++
++struct squashfs_fragment_entry_2 {
++ unsigned int start_block;
++ unsigned int size;
++} __attribute__ ((packed));
++
++#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\
++ SQUASHFS_MEMSET(s, d, n);\
++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\
++ SQUASHFS_SWAP((s)->uid, d, 16, 8);\
++ SQUASHFS_SWAP((s)->guid, d, 24, 8);\
++
++#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\
++}
++
++#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \
++ SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2))
++
++#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
++ sizeof(struct squashfs_dev_inode_header_2)); \
++ SQUASHFS_SWAP((s)->rdev, d, 32, 16);\
++}
++
++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
++ sizeof(struct squashfs_symlink_inode_header_2));\
++ SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\
++}
++
++#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
++ sizeof(struct squashfs_reg_inode_header_2));\
++ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\
++ SQUASHFS_SWAP((s)->start_block, d, 64, 32);\
++ SQUASHFS_SWAP((s)->fragment, d, 96, 32);\
++ SQUASHFS_SWAP((s)->offset, d, 128, 32);\
++ SQUASHFS_SWAP((s)->file_size, d, 160, 32);\
++}
++
++#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
++ sizeof(struct squashfs_dir_inode_header_2));\
++ SQUASHFS_SWAP((s)->file_size, d, 32, 19);\
++ SQUASHFS_SWAP((s)->offset, d, 51, 13);\
++ SQUASHFS_SWAP((s)->mtime, d, 64, 32);\
++ SQUASHFS_SWAP((s)->start_block, d, 96, 24);\
++}
++
++#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
++ sizeof(struct squashfs_ldir_inode_header_2));\
++ SQUASHFS_SWAP((s)->file_size, d, 32, 27);\
++ SQUASHFS_SWAP((s)->offset, d, 59, 13);\
++ SQUASHFS_SWAP((s)->mtime, d, 72, 32);\
++ SQUASHFS_SWAP((s)->start_block, d, 104, 24);\
++ SQUASHFS_SWAP((s)->i_count, d, 128, 16);\
++}
++
++#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\
++ SQUASHFS_SWAP((s)->index, d, 0, 27);\
++ SQUASHFS_SWAP((s)->start_block, d, 27, 29);\
++ SQUASHFS_SWAP((s)->size, d, 56, 8);\
++}
++#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\
++ SQUASHFS_SWAP((s)->count, d, 0, 8);\
++ SQUASHFS_SWAP((s)->start_block, d, 8, 24);\
++}
++
++#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\
++ SQUASHFS_SWAP((s)->offset, d, 0, 13);\
++ SQUASHFS_SWAP((s)->type, d, 13, 3);\
++ SQUASHFS_SWAP((s)->size, d, 16, 8);\
++}
++
++#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\
++ SQUASHFS_SWAP_START\
++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\
++ SQUASHFS_SWAP((s)->start_block, d, 0, 32);\
++ SQUASHFS_SWAP((s)->size, d, 32, 32);\
++}
++
++#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n)
++
++/* fragment and fragment table defines */
++#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2))
++
++#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \
++ SQUASHFS_METADATA_SIZE - 1) / \
++ SQUASHFS_METADATA_SIZE)
++
++#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\
++ sizeof(int))
++
++#endif
++
++#ifdef __KERNEL__
++
++/*
++ * macros used to swap each structure entry, taking into account
++ * bitfields and different bitfield placing conventions on differing
++ * architectures
++ */
++
++#include <asm/byteorder.h>
++
++#ifdef __BIG_ENDIAN
++ /* convert from little endian to big endian */
++#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \
++ tbits, b_pos)
++#else
++ /* convert from big endian to little endian */
++#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \
++ tbits, 64 - tbits - b_pos)
++#endif
++
++#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\
++ b_pos = pos % 8;\
++ val = 0;\
++ s = (unsigned char *)p + (pos / 8);\
++ d = ((unsigned char *) &val) + 7;\
++ for(bits = 0; bits < (tbits + b_pos); bits += 8) \
++ *d-- = *s++;\
++ value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\
++}
++
++#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n);
++
++#endif
++#endif
+diff -urN linux-2.6.23/include/linux/squashfs_fs_i.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_i.h
+--- linux-2.6.23/include/linux/squashfs_fs_i.h 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_i.h 2007-11-13 18:58:41.000000000 -0500
+@@ -0,0 +1,45 @@
++#ifndef SQUASHFS_FS_I
++#define SQUASHFS_FS_I
++/*
++ * Squashfs
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * 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,
++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * squashfs_fs_i.h
++ */
++
++struct squashfs_inode_info {
++ long long start_block;
++ unsigned int offset;
++ union {
++ struct {
++ long long fragment_start_block;
++ unsigned int fragment_size;
++ unsigned int fragment_offset;
++ long long block_list_start;
++ } s1;
++ struct {
++ long long directory_index_start;
++ unsigned int directory_index_offset;
++ unsigned int directory_index_count;
++ unsigned int parent_inode;
++ } s2;
++ } u;
++ struct inode vfs_inode;
++};
++#endif
+diff -urN linux-2.6.23/include/linux/squashfs_fs_sb.h linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_sb.h
+--- linux-2.6.23/include/linux/squashfs_fs_sb.h 1969-12-31 19:00:00.000000000 -0500
++++ linux-2.6.23.sqlzma-ng/include/linux/squashfs_fs_sb.h 2007-11-13 19:19:28.000000000 -0500
+@@ -0,0 +1,76 @@
++#ifndef SQUASHFS_FS_SB
++#define SQUASHFS_FS_SB
++/*
++ * Squashfs
++ *
++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007
++ * Phillip Lougher <phillip@lougher.demon.co.uk>
++ *
++ * 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,
++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * squashfs_fs_sb.h
++ */
++
++#include <linux/squashfs_fs.h>
++
++struct squashfs_cache {
++ long long block;
++ int length;
++ long long next_index;
++ char *data;
++};
++
++struct squashfs_fragment_cache {
++ long long block;
++ int length;
++ unsigned int locked;
++ char *data;
++};
++
++struct squashfs_sb_info {
++ struct squashfs_super_block sblk;
++ int devblksize;
++ int devblksize_log2;
++ int swap;
++ struct squashfs_cache *block_cache;
++ struct squashfs_fragment_cache *fragment;
++ int next_cache;
++ int next_fragment;
++ int next_meta_index;
++ unsigned int *uid;
++ unsigned int *guid;
++ long long *fragment_index;
++ unsigned int *fragment_index_2;
++ char *read_page;
++ //struct mutex read_data_mutex;
++ struct mutex read_page_mutex;
++ struct mutex block_cache_mutex;
++ struct mutex fragment_mutex;
++ struct mutex meta_index_mutex;
++ wait_queue_head_t waitq;
++ wait_queue_head_t fragment_wait_queue;
++ struct meta_index *meta_index;
++ //z_stream stream;
++ long long *inode_lookup_table;
++ int unused_cache_blks;
++ int unused_frag_blks;
++ int (*read_inode)(struct inode *i, squashfs_inode_t \
++ inode);
++ long long (*read_blocklist)(struct inode *inode, int \
++ index, int readahead_blks, char *block_list, \
++ unsigned short **block_p, unsigned int *bsize);
++ int (*read_fragment_index_table)(struct super_block *s);
++};
++#endif
+
diff --git a/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch b/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch
new file mode 100644
index 0000000000..cd2c678058
--- /dev/null
+++ b/packages/linux/linux-openmoko-devel/0002-squashfs-initrd.patch
@@ -0,0 +1,55 @@
+diff -urN linux-2.6.23/init/do_mounts_rd.c linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c
+--- linux-2.6.23/init/do_mounts_rd.c 2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c 2007-11-13 18:58:41.000000000 -0500
+@@ -5,6 +5,7 @@
+ #include <linux/ext2_fs.h>
+ #include <linux/romfs_fs.h>
+ #include <linux/cramfs_fs.h>
++#include <linux/squashfs_fs.h>
+ #include <linux/initrd.h>
+ #include <linux/string.h>
+
+@@ -39,6 +40,7 @@
+ * numbers could not be found.
+ *
+ * We currently check for the following magic numbers:
++ * squashfs
+ * minix
+ * ext2
+ * romfs
+@@ -53,6 +55,7 @@
+ struct ext2_super_block *ext2sb;
+ struct romfs_super_block *romfsb;
+ struct cramfs_super *cramfsb;
++ struct squashfs_super_block *squashfsb;
+ int nblocks = -1;
+ unsigned char *buf;
+
+@@ -64,6 +67,7 @@
+ ext2sb = (struct ext2_super_block *) buf;
+ romfsb = (struct romfs_super_block *) buf;
+ cramfsb = (struct cramfs_super *) buf;
++ squashfsb = (struct squashfs_super_block *) buf;
+ memset(buf, 0xe5, size);
+
+ /*
+@@ -101,6 +105,18 @@
+ goto done;
+ }
+
++ /* squashfs is at block zero too */
++ if (squashfsb->s_magic == SQUASHFS_MAGIC) {
++ printk(KERN_NOTICE
++ "RAMDISK: squashfs filesystem found at block %d\n",
++ start_block);
++ if (squashfsb->s_major < 3)
++ nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
++ else
++ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
++ goto done;
++ }
++
+ /*
+ * Read block 1 to test for minix and ext2 superblock
+ */
+
diff --git a/packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch b/packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch
new file mode 100644
index 0000000000..550077b9fa
--- /dev/null
+++ b/packages/linux/linux-openmoko-devel/0003-squashfs-force-O2.patch
@@ -0,0 +1,17 @@
+The kernel patch from the squashfs-3.1r2 release did not compile on my
+armeb-linux-gcc 4.1.1 when optimizing for size (-Os). This works around
+that problem by using optimization flag -O2 instead for these two files.
+
+Signed-off-by: Leon Woestenberg <leonw@mailcan.com>
+
+Index: linux-2.6.19/fs/squashfs/Makefile
+===================================================================
+--- linux-2.6.19.orig/fs/squashfs/Makefile
++++ linux-2.6.19/fs/squashfs/Makefile
+@@ -5,3 +5,6 @@
+ obj-$(CONFIG_SQUASHFS) += squashfs.o
+ squashfs-y += inode.o
+ squashfs-y += squashfs2_0.o
++
++CFLAGS_squashfs2_0.o = "-O2"
++CFLAGS_inode.o = "-O2"
diff --git a/packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch b/packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch
new file mode 100644
index 0000000000..f2b3db9942
--- /dev/null
+++ b/packages/linux/linux-openmoko-devel/0004-squashfs-Kconfig.patch
@@ -0,0 +1,61 @@
+diff -urN linux-2.6.23/fs/Kconfig linux-2.6.23.sqlzma-ng/fs/Kconfig
+--- linux-2.6.23/fs/Kconfig 2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.sqlzma-ng/fs/Kconfig 2007-11-13 18:58:41.000000000 -0500
+@@ -1364,6 +1364,56 @@
+
+ If unsure, say N.
+
++config SQUASHFS
++ tristate "SquashFS 3.3 - Squashed file system support"
++ select ZLIB_INFLATE
++ help
++ Saying Y here includes support for SquashFS 3.3 (a Compressed
++ Read-Only File System). Squashfs is a highly compressed read-only
++ filesystem for Linux. It uses zlib compression to compress both
++ files, inodes and directories. Inodes in the system are very small
++ and all blocks are packed to minimise data overhead. Block sizes
++ greater than 4K are supported up to a maximum of 1 Mbytes (default
++ block size 128K). SquashFS 3.3 supports 64 bit filesystems and files
++ (larger than 4GB), full uid/gid information, hard links and timestamps.
++
++ Squashfs is intended for general read-only filesystem use, for
++ archival use (i.e. in cases where a .tar.gz file may be used), and in
++ embedded systems where low overhead is needed. Further information
++ and filesystem tools are available from http://squashfs.sourceforge.net.
++
++ If you want to compile this as a module ( = code which can be
++ inserted in and removed from the running kernel whenever you want),
++ say M here and read <file:Documentation/modules.txt>. The module
++ will be called squashfs. Note that the root file system (the one
++ containing the directory /) cannot be compiled as a module.
++
++ If unsure, say N.
++
++config SQUASHFS_EMBEDDED
++
++ bool "Additional option for memory-constrained systems"
++ depends on SQUASHFS
++ default n
++ help
++ Saying Y here allows you to specify cache size.
++
++ If unsure, say N.
++
++config SQUASHFS_FRAGMENT_CACHE_SIZE
++ int "Number of fragments cached" if SQUASHFS_EMBEDDED
++ depends on SQUASHFS
++ default "3"
++ help
++ By default SquashFS caches the last 3 fragments read from
++ the filesystem. Increasing this amount may mean SquashFS
++ has to re-read fragments less often from disk, at the expense
++ of extra system memory. Decreasing this amount will mean
++ SquashFS uses less memory at the expense of extra reads from disk.
++
++ Note there must be at least one cached fragment. Anything
++ much more than three will probably not make much difference.
++
+ config VXFS_FS
+ tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
+ depends on BLOCK
+
diff --git a/packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch b/packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch
new file mode 100644
index 0000000000..b0ec4cebb8
--- /dev/null
+++ b/packages/linux/linux-openmoko-devel/0005-squashfs-Makefile.patch
@@ -0,0 +1,12 @@
+diff -urN linux-2.6.24/fs/Makefile linux-2.6.24.sqlzma-ng/fs/Makefile
+--- linux-2.6.24/fs/Makefile 2007-11-13 21:24:14.000000000 -0500
++++ linux-2.6.24.sqlzma-ng/fs/Makefile 2007-11-13 21:19:15.000000000 -0500
+@@ -72,6 +72,7 @@
+ obj-$(CONFIG_JBD2) += jbd2/
+ obj-$(CONFIG_EXT2_FS) += ext2/
+ obj-$(CONFIG_CRAMFS) += cramfs/
++obj-$(CONFIG_SQUASHFS) += squashfs/
+ obj-y += ramfs/
+ obj-$(CONFIG_HUGETLBFS) += hugetlbfs/
+ obj-$(CONFIG_CODA_FS) += coda/
+
diff --git a/packages/linux/linux-openmoko-devel/defconfig-oe b/packages/linux/linux-openmoko-devel/defconfig-oe
index c4d80f66c7..4154639d3e 100644
--- a/packages/linux/linux-openmoko-devel/defconfig-oe
+++ b/packages/linux/linux-openmoko-devel/defconfig-oe
@@ -1604,6 +1604,7 @@ CONFIG_CIFS_WEAK_PW_HASH=y
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
+CONFIG_SQUASHFS=m
#
# Partition Types
diff --git a/packages/linux/linux-openmoko-devel_git.bb b/packages/linux/linux-openmoko-devel_git.bb
index 24ff29d0f1..c68b5c2e69 100644
--- a/packages/linux/linux-openmoko-devel_git.bb
+++ b/packages/linux/linux-openmoko-devel_git.bb
@@ -2,53 +2,24 @@ require linux.inc
require linux-openmoko.inc
DESCRIPTION = "Linux 2.6.x (development) kernel for the Openmoko Neo Smartphones"
+
DEFAULT_PREFERENCE = "-1"
KERNEL_RELEASE = "2.6.24"
KERNEL_VERSION = "${KERNEL_RELEASE}"
-# If you use a rc, you will need to use this:
PV = "${KERNEL_RELEASE}+gitr${SRCREV}"
-PR = "r3"
-
-KERNEL_IMAGETYPE = "uImage"
-UBOOT_ENTRYPOINT = "30008000"
+PR = "r4"
SRC_URI = "\
git://git.openmoko.org/git/kernel.git;protocol=git;branch=andy \
- file://defconfig-oe"
+ \
+ file://0001-squashfs-with-lzma.patch;patch=1 \
+ file://0002-squashfs-initrd.patch;patch=1 \
+ file://0003-squashfs-force-O2.patch;patch=1 \
+ file://0004-squashfs-Kconfig.patch;patch=1 \
+ file://0005-squashfs-Makefile.patch;patch=1 \
+ \
+ file://defconfig-oe \
+"
S = "${WORKDIR}/git"
-
-##############################################################
-# kernel image resides on a seperate flash partition
-#
-FILES_kernel-image = ""
-ALLOW_EMPTY = "1"
-
-COMPATIBLE_HOST = "arm.*-linux"
-COMPATIBLE_MACHINE = 'om-gta01|om-gta02'
-
-CMDLINE = "unused -- bootloader passes ATAG list"
-
-###############################################################
-# module configs specific to this kernel
-#
-
-# usb
-module_autoload_ohci-hcd = "ohci-hcd"
-module_autoload_hci_usb = "hci_usb"
-module_autoload_g_ether = "g_ether"
-# audio
-module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753"
-# sd/mmc
-module_autoload_s3cmci = "s3cmci"
-
-do_configure_prepend() {
- install -m 0644 ${WORKDIR}/defconfig-oe ${WORKDIR}/defconfig
- if [ ${MACHINE} == "om-gta01" ]; then
- echo -n "fixing up configuration for Openmoko GTA01..."
- sed -i -e s,CONFIG_S3C_LOWLEVEL_UART_PORT=2,CONFIG_S3C_LOWLEVEL_UART_PORT=0, ${WORKDIR}/defconfig
- sed -i -e s,CONFIG_DEBUG_S3C_UART=2,CONFIG_DEBUG_S3C_UART=0, ${WORKDIR}/defconfig
- echo "done"
- fi
-}
diff --git a/packages/linux/linux-openmoko.inc b/packages/linux/linux-openmoko.inc
index 69d7845f04..b4863ca0c8 100644
--- a/packages/linux/linux-openmoko.inc
+++ b/packages/linux/linux-openmoko.inc
@@ -1,9 +1,54 @@
+##############################################################
+# kernel image parameters. It resides on a seperate flash partition
+#
+KERNEL_IMAGETYPE = "uImage"
+UBOOT_ENTRYPOINT = "30008000"
+
+FILES_kernel-image = ""
+ALLOW_EMPTY = "1"
+
+COMPATIBLE_HOST = "arm.*-linux"
+COMPATIBLE_MACHINE = 'om-gta01|om-gta02'
+
+CMDLINE = "unused -- bootloader passes ATAG list"
+
+###############################################################
+# module configs specific to this kernel
+#
+
+# usb
+module_autoload_ohci-hcd = "ohci-hcd"
+module_autoload_hci_usb = "hci_usb"
+module_autoload_g_ether = "g_ether"
+# audio (GTA01)
+module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753"
+# audio (GTA02)
+module_autoload_snd-soc-neo1973-gta02-wm8753 = "snd-soc-neo1973-gta02-wm8753"
+# sd/mmc
+module_autoload_s3cmci = "s3cmci"
+
+################################################################
# extra stuff we need for openmoko that is not in linux.inc
+#
+
+# fix deconfig if we're on GTA01
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/defconfig-oe ${WORKDIR}/defconfig
+ if [ ${MACHINE} == "om-gta01" ]; then
+ echo -n "fixing up configuration for Openmoko GTA01..."
+ sed -i -e s,CONFIG_S3C_LOWLEVEL_UART_PORT=2,CONFIG_S3C_LOWLEVEL_UART_PORT=0, ${WORKDIR}/defconfig
+ sed -i -e s,CONFIG_DEBUG_S3C_UART=2,CONFIG_DEBUG_S3C_UART=0, ${WORKDIR}/defconfig
+ echo "done"
+ fi
+}
+
+# symlink the latest uImage (should go to linux.inc IMO)
do_deploy_append() {
rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin
ln -sf ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE_ARCH}.bin ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE_ARCH}-latest.bin
}
+# opkg flash update service
RDEPENDS_kernel-image += "mtd-utils"
pkg_postinst_kernel-image () {
diff --git a/packages/linux/linux-openmoko/defconfig-oe b/packages/linux/linux-openmoko/defconfig-oe
new file mode 100644
index 0000000000..4154639d3e
--- /dev/null
+++ b/packages/linux/linux-openmoko/defconfig-oe
@@ -0,0 +1,1771 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.24
+# Mon Feb 25 07:03:56 2008
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_GENERIC_TIME is not set
+# CONFIG_GENERIC_CLOCKEVENTS is not set
+CONFIG_MMU=y
+CONFIG_NO_IOPORT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=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_FIQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION="oe"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+# CONFIG_FAIR_GROUP_SCHED is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+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_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+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
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=m
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=m
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+
+#
+# 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_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+CONFIG_ARCH_S3C2410=y
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+CONFIG_PLAT_S3C24XX=y
+CONFIG_CPU_S3C244X=y
+CONFIG_S3C2410_DMA=y
+# CONFIG_S3C2410_DMA_DEBUG is not set
+CONFIG_MACH_SMDK=y
+CONFIG_MACH_NEO1973=y
+CONFIG_PLAT_S3C=y
+CONFIG_CPU_LLSERIAL_S3C2410=y
+CONFIG_CPU_LLSERIAL_S3C2440=y
+
+#
+# Boot options
+#
+# CONFIG_S3C_BOOT_WATCHDOG is not set
+# CONFIG_S3C_BOOT_ERROR_RESET is not set
+
+#
+# Power management
+#
+# CONFIG_S3C2410_PM_CHECK is not set
+CONFIG_S3C_LOWLEVEL_UART_PORT=2
+
+#
+# S3C2400 Machines
+#
+CONFIG_CPU_S3C2410=y
+CONFIG_CPU_S3C2410_DMA=y
+CONFIG_S3C2410_PM=y
+CONFIG_S3C2410_GPIO=y
+CONFIG_S3C2410_CLOCK=y
+CONFIG_S3C2410_PWM=y
+
+#
+# S3C2410 Machines
+#
+# CONFIG_ARCH_SMDK2410 is not set
+# CONFIG_ARCH_H1940 is not set
+# CONFIG_MACH_N30 is not set
+# CONFIG_ARCH_BAST is not set
+# CONFIG_MACH_OTOM is not set
+# CONFIG_MACH_AML_M5900 is not set
+# CONFIG_MACH_VR1000 is not set
+CONFIG_MACH_QT2410=y
+CONFIG_MACH_NEO1973_GTA01=y
+
+#
+# S3C2412 Machines
+#
+# CONFIG_MACH_SMDK2413 is not set
+# CONFIG_MACH_SMDK2412 is not set
+# CONFIG_MACH_VSTMS is not set
+CONFIG_CPU_S3C2440=y
+CONFIG_S3C2440_DMA=y
+CONFIG_S3C2440_C_FIQ=y
+
+#
+# S3C2440 Machines
+#
+# CONFIG_MACH_ANUBIS is not set
+# CONFIG_MACH_OSIRIS is not set
+# CONFIG_MACH_RX3715 is not set
+CONFIG_ARCH_S3C2440=y
+# CONFIG_MACH_NEXCODER_2440 is not set
+CONFIG_SMDK2440_CPU2440=y
+# CONFIG_MACH_HXD8 is not set
+CONFIG_MACH_NEO1973_GTA02=y
+# CONFIG_NEO1973_GTA02_2440 is not set
+CONFIG_CPU_S3C2442=y
+
+#
+# S3C2442 Machines
+#
+CONFIG_SMDK2440_CPU2442=y
+
+#
+# S3C2443 Machines
+#
+# CONFIG_MACH_SMDK2443 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_32v4T=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
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=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
+# CONFIG_OUTER_CACHE is not set
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_TICK_ONESHOT is not set
+CONFIG_PREEMPT=y
+CONFIG_NO_IDLE_HZ=y
+CONFIG_HZ=200
+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_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="unused -- bootloader passes ATAG list"
+# CONFIG_XIP_KERNEL is not set
+CONFIG_KEXEC=y
+CONFIG_ATAGS_PROC=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=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND_UP_POSSIBLE=y
+CONFIG_SUSPEND=y
+CONFIG_APM_EMULATION=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_MIGRATE=y
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+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_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+# CONFIG_IP_ROUTE_VERBOSE is not set
+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=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST 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=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+# CONFIG_INET_LRO 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=y
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# 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_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_TUNNEL=m
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT 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=m
+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_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
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_IP_NF_QUEUE is not set
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+# CONFIG_IP_NF_MATCH_RECENT is not set
+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_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_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_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+# CONFIG_NF_NAT_AMANDA is not set
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_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 is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+# CONFIG_IP6_NF_QUEUE is not set
+CONFIG_IP6_NF_IPTABLES=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_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+# CONFIG_IP6_NF_RAW is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# 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
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+# CONFIG_NET_SCH_RR is not set
+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
+
+#
+# Classification
+#
+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=y
+CONFIG_CLS_U32_MARK=y
+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 is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_SCH_FIFO=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_HCIBTSDIO 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_AF_RXRPC is not set
+CONFIG_FIB_RULES=y
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_EXT=y
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=m
+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
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# 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
+# CONFIG_MTD_OOPS 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=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# 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=y
+
+#
+# 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=0
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# 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
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_IDS=y
+CONFIG_MTD_NAND_S3C2410=y
+# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
+CONFIG_MTD_NAND_S3C2410_HWECC=y
+# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ALAUDA is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_PNP=y
+CONFIG_PNP_DEBUG=y
+
+#
+# Protocols
+#
+# CONFIG_PNPACPI is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+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_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+# 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=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+# 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=y
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# 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_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NETDEVICES_MULTIQUEUE is not set
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+# CONFIG_VETH is not set
+# CONFIG_NET_SB1000 is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_AX88796 is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+CONFIG_NET_PCI=y
+# CONFIG_B44 is not set
+CONFIG_CS89x0=m
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 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=y
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_DM9601=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_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+# CONFIG_WAN 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 is not set
+# CONFIG_PPPOL2TP 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
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# 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=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_NEO1973=y
+CONFIG_KEYBOARD_QT2410=y
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_FILTER=y
+CONFIG_TOUCHSCREEN_FILTER_MEDIAN=y
+CONFIG_TOUCHSCREEN_FILTER_MEAN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+CONFIG_TOUCHSCREEN_S3C2410=y
+# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
+# 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_UCB1400 is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_ATI_REMOTE is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_LIS302DL=y
+
+#
+# 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_NR_TTY_DEVICES=4
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_S3C2410=y
+CONFIG_SERIAL_S3C2410_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# 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_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+CONFIG_I2C_S3C2410=y
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+CONFIG_SENSORS_PCF50606=y
+CONFIG_SENSORS_PCF50633=y
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+CONFIG_SENSORS_TSL256X=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_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_S3C24XX=y
+CONFIG_SPI_S3C24XX_GPIO=y
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_AT25 is not set
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_W1 is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_APM_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+CONFIG_BATTERY_BQ27000_HDQ=y
+CONFIG_GTA02_HDQ=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_S3C2410_WATCHDOG=m
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+CONFIG_MFD_GLAMO=y
+CONFIG_MFD_GLAMO_FB=y
+CONFIG_MFD_GLAMO_SPI_GPIO=y
+CONFIG_MFD_GLAMO_SPI_FB=y
+CONFIG_MFD_GLAMO_MCI=y
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+CONFIG_DAB=y
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+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_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_DEFERRED_IO=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_UVESA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_S3C2410=y
+# CONFIG_FB_S3C2410_DEBUG is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+# CONFIG_LCD_LTV350QV is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_CORGI is not set
+CONFIG_BACKLIGHT_GTA01=y
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+CONFIG_DISPLAY_JBT6K74=y
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+CONFIG_FONT_6x11=y
+# 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
+# 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
+#
+
+#
+# SPI devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_CAIAQ is not set
+
+#
+# System on Chip audio support
+#
+CONFIG_SND_SOC=m
+CONFIG_SND_S3C24XX_SOC=m
+CONFIG_SND_S3C24XX_SOC_I2S=m
+CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=m
+CONFIG_SND_S3C24XX_SOC_NEO1973_GTA02_WM8753=m
+
+#
+# SoC Audio support for SuperH
+#
+CONFIG_SND_SOC_WM8753=m
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW 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_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_PERSIST 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
+# CONFIG_USB_R8A66597_HCD 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=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+# CONFIG_USB_STORAGE_ISD200 is not set
+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=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# 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_CH341 is not set
+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_OTI6858 is not set
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+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 is not set
+CONFIG_USB_EZUSB=y
+
+#
+# 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=m
+# 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_IOWARRIOR=m
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_M66592 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_S3C2410=y
+CONFIG_USB_S3C2410=y
+# CONFIG_USB_S3C2410_DEBUG 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
+
+#
+# SDIO support
+#
+CONFIG_SDIO=y
+CONFIG_SDIO_S3C24XX=y
+CONFIG_SDIO_S3C24XX_DMA=y
+CONFIG_SDIO_AR6000_WLAN=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_UNSAFE_RESUME=y
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+# CONFIG_MMC_SPI is not set
+CONFIG_MMC_S3C=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_S3C24XX=m
+# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_NEO1973_VIBRATOR=y
+CONFIG_LEDS_NEO1973_GTA02=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+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
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_S3C=m
+
+#
+# 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 is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=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=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS 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_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_YAFFS_FS=y
+CONFIG_YAFFS_YAFFS1=y
+CONFIG_YAFFS_9BYTE_TAGS=y
+CONFIG_YAFFS_YAFFS2=y
+CONFIG_YAFFS_AUTO_YAFFS2=y
+# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
+CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10
+# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
+# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
+CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+# 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
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+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_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_SUNRPC_BIND34 is not set
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_SQUASHFS=m
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+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=m
+# 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=m
+CONFIG_NLS_CODEPAGE_950=m
+# 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=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=m
+# CONFIG_DLM is not set
+CONFIG_INSTRUMENTATION=y
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# 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_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# 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 is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT 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=y
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEBUG_ERRORS=y
+# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_S3C_UART=2
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+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_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_PCBC=m
+CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_XTS is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=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_SEED is not set
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_TEST=m
+# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_HW=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_DMA=y
diff --git a/packages/linux/linux-openmoko_2.6.24+git.bb b/packages/linux/linux-openmoko_2.6.24+git.bb
index b1faefbd20..79e2cde8dc 100644
--- a/packages/linux/linux-openmoko_2.6.24+git.bb
+++ b/packages/linux/linux-openmoko_2.6.24+git.bb
@@ -3,55 +3,21 @@ require linux-openmoko.inc
DESCRIPTION = "Linux 2.6.x (development) kernel for FIC SmartPhones shipping w/ Openmoko"
-PV = "${KERNEL_RELEASE}+gitr${SRCREV}"
-PR = "r0"
-
-SRC_URI = "git://git.openmoko.org/git/kernel.git;protocol=git;branch=stable \
- file://0001-squashfs-with-lzma.patch;patch=1 \
- file://0002-squashfs-initrd.patch;patch=1 \
- file://0003-squashfs-force-O2.patch;patch=1 \
- file://0004-squashfs-Kconfig.patch;patch=1 \
- file://0005-squashfs-Makefile.patch;patch=1"
-
-S = "${WORKDIR}/git"
-
-do_configure_prepend() {
- cp -f ${S}/defconfig-${CONFIG_NAME} ${WORKDIR}/defconfig
- echo CONFIG_SQUASHFS=m >>${WORKDIR}/defconfig
-}
-
-##############################################################
-# kernel image resides on a seperate flash partition (for now)
-#
-ALLOW_EMPTY = "1"
-
-CMDLINE = "unused -- bootloader passes ATAG list"
-
-COMPATIBLE_HOST = "arm.*-linux"
-COMPATIBLE_MACHINE = "om-gta01|om-gta02"
-DEFAULT_PREFERENCE = "1"
-
-KERNEL_IMAGETYPE = "uImage"
KERNEL_RELEASE = "2.6.24"
KERNEL_VERSION = "${KERNEL_RELEASE}"
-CONFIG_NAME_om-gta01 = "gta01"
-CONFIG_NAME_om-gta02 = "gta02"
-
-UBOOT_ENTRYPOINT = "30008000"
-
-###############################################################
-# module configs specific to this kernel
-#
-
-# usb
-module_autoload_ohci-hcd = "ohci-hcd"
-module_autoload_hci_usb = "hci_usb"
-module_autoload_g_ether = "g_ether"
-# audio
-module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753"
-module_autoload_snd-soc-neo1973-gta02-wm8753 = "snd-soc-neo1973-gta02-wm8753"
-module_autoload_snd-pcm-oss = "snd-pcm-oss"
-module_autoload_snd-mixer-oss = "snd-mixer-oss"
-# sd/mmc
-module_autoload_s3cmci = "s3cmci"
+PV = "${KERNEL_RELEASE}+gitr${SRCREV}"
+PR = "r4"
+
+SRC_URI = "\
+ git://git.openmoko.org/git/kernel.git;protocol=git;branch=stable \
+ \
+ file://0001-squashfs-with-lzma.patch;patch=1 \
+ file://0002-squashfs-initrd.patch;patch=1 \
+ file://0003-squashfs-force-O2.patch;patch=1 \
+ file://0004-squashfs-Kconfig.patch;patch=1 \
+ file://0005-squashfs-Makefile.patch;patch=1 \
+ \
+ file://defconfig-oe \
+"
+S = "${WORKDIR}/git"
diff --git a/packages/linux/linux-rp-2.6.26/collie.patch b/packages/linux/linux-rp-2.6.26/collie.patch
new file mode 100644
index 0000000000..00b7d881a5
--- /dev/null
+++ b/packages/linux/linux-rp-2.6.26/collie.patch
@@ -0,0 +1,1883 @@
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index c7ad324..daa2e0a 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -998,7 +998,7 @@ config CPU_FREQ_SA1100
+
+ config CPU_FREQ_SA1110
+ bool
+- depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
++ depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3 || SA1100_COLLIE)
+ default y
+
+ config CPU_FREQ_INTEGRATOR
+diff --git a/arch/arm/mach-sa1100/dma.c b/arch/arm/mach-sa1100/dma.c
+index e508028..36f726c 100644
+--- a/arch/arm/mach-sa1100/dma.c
++++ b/arch/arm/mach-sa1100/dma.c
+@@ -39,7 +39,7 @@ typedef struct {
+
+ static sa1100_dma_t dma_chan[SA1100_DMA_CHANNELS];
+
+-static spinlock_t dma_list_lock;
++static DEFINE_SPINLOCK(dma_list_lock);
+
+
+ static irqreturn_t dma_irq_handler(int irq, void *dev_id)
+diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c
+index 9caed30..79e19bf 100644
+--- a/drivers/input/keyboard/locomokbd.c
++++ b/drivers/input/keyboard/locomokbd.c
+@@ -265,6 +265,7 @@ static int __devinit locomokbd_probe(struct locomo_dev *dev)
+ for (i = 0; i < LOCOMOKBD_NUMKEYS; i++)
+ set_bit(locomokbd->keycode[i], input_dev->keybit);
+ clear_bit(0, input_dev->keybit);
++ locomo_writel(0, locomokbd->base + LOCOMO_KSC);
+
+ /* attempt to get the interrupt */
+ err = request_irq(dev->irq[0], locomokbd_interrupt, 0, "locomokbd", locomokbd);
+diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
+index 9f93c29..33fc5d6 100644
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -72,4 +72,10 @@ config MCP_UCB1200_TS
+ tristate "Touchscreen interface support"
+ depends on MCP_UCB1200 && INPUT
+
++config MCP_COLLIE_TS
++ tristate "Touchscreen collie support"
++ depends on MCP_UCB1200 && INPUT && !MCP_UCB1200_TS
++ ---help---
++ Driver for touchscreen on collie - sharp sl-5500.
++
+ endmenu
+diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
+index 33daa2f..0885ccd 100644
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -16,7 +16,7 @@ obj-$(CONFIG_MCP) += mcp-core.o
+ obj-$(CONFIG_MCP_SA11X0) += mcp-sa11x0.o
+ obj-$(CONFIG_MCP_UCB1200) += ucb1x00-core.o
+ obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o
+-
++obj-$(CONFIG_MCP_COLLIE_TS) += collie-ts.o
+ ifeq ($(CONFIG_SA1100_ASSABET),y)
+ obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o
+ endif
+diff --git a/drivers/mfd/collie-ts.c b/drivers/mfd/collie-ts.c
+new file mode 100644
+index 0000000..ddde5fc
+--- /dev/null
++++ b/drivers/mfd/collie-ts.c
+@@ -0,0 +1,449 @@
++/*
++ * Touchscreen driver for UCB1x00-based touchscreens
++ *
++ * Copyright (C) 2001 Russell King, All Rights Reserved.
++ * Copyright (C) 2005 Pavel Machek
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * 21-Jan-2002 <jco@ict.es> :
++ *
++ * Added support for synchronous A/D mode. This mode is useful to
++ * avoid noise induced in the touchpanel by the LCD, provided that
++ * the UCB1x00 has a valid LCD sync signal routed to its ADCSYNC pin.
++ * It is important to note that the signal connected to the ADCSYNC
++ * pin should provide pulses even when the LCD is blanked, otherwise
++ * a pen touch needed to unblank the LCD will never be read.
++ */
++#include <linux/module.h>
++#include <linux/moduleparam.h>
++#include <linux/init.h>
++#include <linux/smp.h>
++#include <linux/smp_lock.h>
++#include <linux/sched.h>
++#include <linux/completion.h>
++#include <linux/delay.h>
++#include <linux/string.h>
++#include <linux/input.h>
++#include <linux/device.h>
++#include <linux/freezer.h>
++#include <linux/slab.h>
++#include <linux/kthread.h>
++
++#include <asm/dma.h>
++#include <asm/semaphore.h>
++#include <asm/arch/collie.h>
++#include <asm/mach-types.h>
++
++#include "ucb1x00.h"
++
++struct ucb1x00_ts {
++ struct input_dev *idev;
++ struct ucb1x00 *ucb;
++
++ wait_queue_head_t irq_wait;
++ struct task_struct *rtask;
++ u16 x_res;
++ u16 y_res;
++
++ unsigned int adcsync:1;
++};
++
++static int adcsync;
++
++/**********************************
++
++ ................
++ . . = 340
++ . .
++ . ^.
++ . ^.
++ . ^.
++ . ^.
++ . .
++ . X. = 10
++ . <<<<<<<< Y .
++ ................
++ . Sharp =200
++ . .
++ . - O - .
++ . .
++ ................
++
++**********************************/
++
++
++static inline void ucb1x00_ts_evt_add(struct ucb1x00_ts *ts, u16 pressure, u16 x, u16 y)
++{
++ struct input_dev *idev = ts->idev;
++
++ input_report_abs(idev, ABS_X, x);
++ input_report_abs(idev, ABS_Y, y);
++ input_report_abs(idev, ABS_PRESSURE, pressure);
++ input_report_key(idev, BTN_TOUCH, 1);
++ input_sync(idev);
++}
++
++static inline void ucb1x00_ts_event_release(struct ucb1x00_ts *ts)
++{
++ struct input_dev *idev = ts->idev;
++
++ input_report_abs(idev, ABS_PRESSURE, 0);
++ input_report_key(idev, BTN_TOUCH, 0);
++ input_sync(idev);
++}
++
++/*
++ * Switch to interrupt mode. This set touchscreen to interrupt
++ * mode, so that chip is able to send interrupt.
++ */
++static inline void ucb1x00_ts_mode_int(struct ucb1x00_ts *ts)
++{
++ ucb1x00_reg_write(ts->ucb, UCB_TS_CR,
++ UCB_TS_CR_TSMX_POW | UCB_TS_CR_TSPX_POW |
++ UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND |
++ UCB_TS_CR_MODE_INT);
++}
++
++/*
++ * Switch to pressure mode, and read pressure. We don't need to wait
++ * here, since both plates are being driven.
++ *
++ * set_read_pressure() in sharp code
++ */
++static inline void ucb1x00_ts_read_pressure(struct ucb1x00_ts *ts)
++{
++ ucb1x00_io_write(ts->ucb, COLLIE_TC35143_GPIO_TBL_CHK, 0);
++ ucb1x00_reg_write(ts->ucb, UCB_TS_CR,
++ UCB_TS_CR_TSPX_POW | UCB_TS_CR_TSMX_POW |
++ UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA);
++
++ ucb1x00_reg_write(ts->ucb, UCB_ADC_CR, ts->ucb->adc_cr |
++ UCB_ADC_INP_AD2 |
++ UCB_ADC_SYNC_ENA);
++ udelay(100);
++ ucb1x00_reg_write(ts->ucb, UCB_ADC_CR, ts->ucb->adc_cr |
++ UCB_ADC_INP_AD2 |
++ UCB_ADC_SYNC_ENA | UCB_ADC_START);
++}
++
++/*
++ * Switch to X position mode and measure Y plate. We switch the plate
++ * configuration in pressure mode, then switch to position mode. This
++ * gives a faster response time. Even so, we need to wait about 55us
++ * for things to stabilise.
++ */
++static inline void ucb1x00_ts_read_xpos(struct ucb1x00_ts *ts)
++{
++ ucb1x00_io_write(ts->ucb, 0, COLLIE_TC35143_GPIO_TBL_CHK);
++ ucb1x00_reg_write(ts->ucb, UCB_TS_CR,
++ UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW |
++ UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA);
++
++
++ ucb1x00_reg_write(ts->ucb, UCB_ADC_CR, ts->ucb->adc_cr |
++ UCB_ADC_INP_TSPY | UCB_ADC_SYNC_ENA);
++ udelay(100);
++ ucb1x00_reg_write(ts->ucb, UCB_ADC_CR, ts->ucb->adc_cr |
++ UCB_ADC_INP_TSPY | UCB_ADC_SYNC_ENA |
++ UCB_ADC_START);
++}
++
++/*
++ * Switch to Y position mode and measure X plate. We switch the plate
++ * configuration in pressure mode, then switch to position mode. This
++ * gives a faster response time. Even so, we need to wait about 55us
++ * for things to stabilise.
++ */
++static inline void ucb1x00_ts_read_ypos(struct ucb1x00_ts *ts)
++{
++ ucb1x00_io_write(ts->ucb, 0, COLLIE_TC35143_GPIO_TBL_CHK);
++
++ ucb1x00_reg_write(ts->ucb, UCB_TS_CR,
++ UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW |
++ UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA);
++
++
++ ucb1x00_reg_write(ts->ucb, UCB_ADC_CR, ts->ucb->adc_cr |
++ UCB_ADC_INP_TSPX | UCB_ADC_SYNC_ENA);
++ udelay(100);
++ ucb1x00_reg_write(ts->ucb, UCB_ADC_CR, ts->ucb->adc_cr |
++ UCB_ADC_INP_TSPX | UCB_ADC_SYNC_ENA |
++ UCB_ADC_START);
++}
++
++/*
++ * Switch to X plate resistance mode. Set MX to ground, PX to
++ * supply. Measure current.
++ */
++static inline unsigned int ucb1x00_ts_read_xres(struct ucb1x00_ts *ts)
++{
++ ucb1x00_reg_write(ts->ucb, UCB_TS_CR,
++ UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW |
++ UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
++ return ucb1x00_adc_read(ts->ucb, 0, ts->adcsync);
++}
++
++/*
++ * Switch to Y plate resistance mode. Set MY to ground, PY to
++ * supply. Measure current.
++ */
++static inline unsigned int ucb1x00_ts_read_yres(struct ucb1x00_ts *ts)
++{
++ ucb1x00_reg_write(ts->ucb, UCB_TS_CR,
++ UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW |
++ UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
++ return ucb1x00_adc_read(ts->ucb, 0, ts->adcsync);
++}
++
++/*
++ * This is a RT kernel thread that handles the ADC accesses
++ * (mainly so we can use semaphores in the UCB1200 core code
++ * to serialise accesses to the ADC).
++ */
++static int ucb1x00_thread(void *_ts)
++{
++ struct ucb1x00_ts *ts = _ts;
++ struct task_struct *tsk = current;
++ DECLARE_WAITQUEUE(wait, tsk);
++ int state;
++
++ /*
++ * We could run as a real-time thread. However, thus far
++ * this doesn't seem to be necessary.
++ */
++
++ add_wait_queue(&ts->irq_wait, &wait);
++
++ while (!kthread_should_stop()) {
++ unsigned int data[3];
++
++ for (state=0; state<3; state++) {
++
++ ucb1x00_adc_enable(ts->ucb);
++ ucb1x00_enable_irq(ts->ucb, UCB_IRQ_ADC, UCB_FALLING);
++ switch (state) {
++ /* Order matters here; last measurement seems to be more noisy then the
++ rest, and we care about pressure least */
++ case 2: ucb1x00_ts_read_pressure(ts);
++ break;
++ case 0: ucb1x00_ts_read_ypos(ts);
++ break;
++ case 1: ucb1x00_ts_read_xpos(ts);
++ break;
++ }
++ /* wait for adc */
++ try_to_freeze();
++ schedule_timeout(1000 * HZ);
++ ucb1x00_disable_irq(ts->ucb, UCB_IRQ_ADC, UCB_FALLING);
++ data[state] = UCB_ADC_DAT(ucb1x00_reg_read(ts->ucb, UCB_ADC_DATA));
++ ucb1x00_adc_disable(ts->ucb);
++ }
++
++ /* If not pressed any more, try to sleep! */
++ if (data[2] < 300) {
++ set_task_state(tsk, TASK_INTERRUPTIBLE);
++ ucb1x00_enable_irq(ts->ucb, UCB_IRQ_TSPX, UCB_RISING);
++ ucb1x00_ts_mode_int(ts);
++ ucb1x00_disable(ts->ucb);
++ ucb1x00_ts_event_release(ts);
++ try_to_freeze();
++ schedule_timeout(1000 * HZ);
++ ucb1x00_disable_irq(ts->ucb, UCB_IRQ_TSPX, UCB_RISING);
++ ucb1x00_enable(ts->ucb);
++ } else {
++ ucb1x00_ts_evt_add(ts, data[2], data[1], data[0]);
++ }
++ ucb1x00_disable(ts->ucb);
++ msleep(20);
++ ucb1x00_enable(ts->ucb);
++ }
++
++ remove_wait_queue(&ts->irq_wait, &wait);
++
++ ts->rtask = NULL;
++ return 0;
++}
++
++/*
++ * We only detect touch screen _touches_ with this interrupt
++ * handler, and even then we just schedule our task.
++ */
++static void ucb1x00_ts_irq(int idx, void *id)
++{
++ struct ucb1x00_ts *ts = id;
++ wake_up(&ts->irq_wait);
++}
++
++static void ucb1x00_adc_irq(int idx, void *id)
++{
++ struct ucb1x00_ts *ts = id;
++ wake_up(&ts->irq_wait);
++}
++
++static int ucb1x00_ts_open(struct input_dev *idev)
++{
++ struct ucb1x00_ts *ts = input_get_drvdata(idev);
++ int ret = 0;
++
++ BUG_ON(ts->rtask);
++
++ init_waitqueue_head(&ts->irq_wait);
++
++ ret = ucb1x00_hook_irq(ts->ucb, UCB_IRQ_TSPX, ucb1x00_ts_irq, ts);
++ if (ret < 0)
++ return ret;
++
++ ret = ucb1x00_hook_irq(ts->ucb, UCB_IRQ_ADC, ucb1x00_adc_irq, ts);
++ if (ret < 0) {
++ ucb1x00_free_irq(ts->ucb, UCB_IRQ_TSPX, ts);
++ return ret;
++ }
++
++ ucb1x00_enable_irq(ts->ucb, UCB_IRQ_TSPX, UCB_RISING);
++
++ /*
++ * If we do this at all, we should allow the user to
++ * measure and read the X and Y resistance at any time.
++ */
++ ucb1x00_adc_enable(ts->ucb);
++ ts->x_res = ucb1x00_ts_read_xres(ts);
++ ts->y_res = ucb1x00_ts_read_yres(ts);
++ ucb1x00_adc_disable(ts->ucb);
++
++ if (machine_is_collie()) {
++ ucb1x00_io_set_dir(ts->ucb, 0, COLLIE_TC35143_GPIO_TBL_CHK);
++ }
++
++ ts->rtask = kthread_run(ucb1x00_thread, ts, "ktsd");
++ if (!IS_ERR(ts->rtask)) {
++ ret = 0;
++ } else {
++ ucb1x00_free_irq(ts->ucb, UCB_IRQ_TSPX, ts);
++ ts->rtask = NULL;
++ ret = -EFAULT;
++ }
++
++ return ret;
++}
++
++/*
++ * Release touchscreen resources. Disable IRQs.
++ */
++static void ucb1x00_ts_close(struct input_dev *idev)
++{
++ struct ucb1x00_ts *ts = input_get_drvdata(idev);
++
++ if (ts->rtask)
++ kthread_stop(ts->rtask);
++
++ ucb1x00_enable(ts->ucb);
++ ucb1x00_free_irq(ts->ucb, UCB_IRQ_TSPX, ts);
++ ucb1x00_free_irq(ts->ucb, UCB_IRQ_ADC, ts);
++ ucb1x00_reg_write(ts->ucb, UCB_TS_CR, 0);
++ ucb1x00_disable(ts->ucb);
++}
++
++#ifdef CONFIG_PM
++static int ucb1x00_ts_resume(struct ucb1x00_dev *dev)
++{
++ struct ucb1x00_ts *ts = dev->priv;
++
++ if (ts->rtask != NULL) {
++ /*
++ * Restart the TS thread to ensure the
++ * TS interrupt mode is set up again
++ * after sleep.
++ */
++ wake_up(&ts->irq_wait);
++ }
++ return 0;
++}
++#else
++#define ucb1x00_ts_resume NULL
++#endif
++
++
++/*
++ * Initialisation.
++ */
++static int ucb1x00_ts_add(struct ucb1x00_dev *dev)
++{
++ struct ucb1x00_ts *ts;
++ struct input_dev *idev;
++ int err;
++
++ ts = kzalloc(sizeof(struct ucb1x00_ts), GFP_KERNEL);
++ idev = input_allocate_device();
++ if (!ts || !idev) {
++ err = -ENOMEM;
++ goto fail;
++ }
++
++ ts->ucb = dev->ucb;
++ ts->idev = idev;
++ ts->adcsync = adcsync ? UCB_SYNC : UCB_NOSYNC;
++
++ input_set_drvdata(idev, ts);
++ idev->name = "Touchscreen panel";
++ idev->id.product = ts->ucb->id;
++ idev->open = ucb1x00_ts_open;
++ idev->close = ucb1x00_ts_close;
++
++ __set_bit(EV_ABS, idev->evbit);
++ __set_bit(ABS_X, idev->absbit);
++ __set_bit(ABS_Y, idev->absbit);
++ __set_bit(ABS_PRESSURE, idev->absbit);
++
++ input_set_abs_params(ts->idev, ABS_X, 0, 450, 0, 0);
++ input_set_abs_params(ts->idev, ABS_Y, 200, 800, 0, 0);
++ input_set_abs_params(ts->idev, ABS_PRESSURE, 400, 800, 0, 0);
++
++
++ err = input_register_device(idev);
++ if (err)
++ goto fail;
++
++ dev->priv = ts;
++
++ return 0;
++
++ fail:
++ input_free_device(idev);
++ kfree(ts);
++ return err;
++}
++
++static void ucb1x00_ts_remove(struct ucb1x00_dev *dev)
++{
++ struct ucb1x00_ts *ts = dev->priv;
++
++ input_unregister_device(ts->idev);
++ kfree(ts);
++}
++
++static struct ucb1x00_driver ucb1x00_ts_driver = {
++ .add = ucb1x00_ts_add,
++ .remove = ucb1x00_ts_remove,
++ .resume = ucb1x00_ts_resume,
++};
++
++static int __init ucb1x00_ts_init(void)
++{
++ return ucb1x00_register_driver(&ucb1x00_ts_driver);
++}
++
++static void __exit ucb1x00_ts_exit(void)
++{
++ ucb1x00_unregister_driver(&ucb1x00_ts_driver);
++}
++
++module_param(adcsync, int, 0444);
++module_init(ucb1x00_ts_init);
++module_exit(ucb1x00_ts_exit);
++
++MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
++MODULE_DESCRIPTION("UCB1x00 touchscreen driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/mfd/ucb1x00.h b/drivers/mfd/ucb1x00.h
+index a8ad8a0..137b043 100644
+--- a/drivers/mfd/ucb1x00.h
++++ b/drivers/mfd/ucb1x00.h
+@@ -34,7 +34,10 @@
+ #define UCB_IE_TCLIP (1 << 14)
+ #define UCB_IE_ACLIP (1 << 15)
+
++/* UCB1200 irqs */
++#define UCB_IRQ_ADC 11
+ #define UCB_IRQ_TSPX 12
++#define UCB_IRQ_TSMX 13
+
+ #define UCB_TC_A 0x05
+ #define UCB_TC_A_LOOP (1 << 7) /* UCB1200 */
+diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
+index 3b4e55c..0ae741d 100644
+--- a/drivers/net/wireless/hostap/hostap_cs.c
++++ b/drivers/net/wireless/hostap/hostap_cs.c
+@@ -35,7 +35,7 @@ static int ignore_cis_vcc;
+ module_param(ignore_cis_vcc, int, 0444);
+ MODULE_PARM_DESC(ignore_cis_vcc, "Ignore broken CIS VCC entry");
+
+-
++int activar=0;
+ /* struct local_info::hw_priv */
+ struct hostap_cs_priv {
+ dev_node_t node;
+@@ -499,11 +499,13 @@ static int hostap_cs_probe(struct pcmcia_device *p_dev)
+
+ PDEBUG(DEBUG_HW, "%s: setting Vcc=33 (constant)\n", dev_info);
+ p_dev->conf.IntType = INT_MEMORY_AND_IO;
+-
++
++ activar=0;
+ ret = prism2_config(p_dev);
+ if (ret) {
+ PDEBUG(DEBUG_EXTRA, "prism2_config() failed\n");
+ }
++ activar=1;
+
+ return ret;
+ }
+diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
+index 13d5882..6f24d66 100644
+--- a/drivers/net/wireless/hostap/hostap_hw.c
++++ b/drivers/net/wireless/hostap/hostap_hw.c
+@@ -54,6 +54,7 @@
+ #include "hostap.h"
+ #include "hostap_ap.h"
+
++extern int activar;
+
+ /* #define final_version */
+
+@@ -1497,6 +1498,8 @@ static int prism2_hw_config(struct net_device *dev, int initial)
+ if (local->hw_downloading)
+ return 1;
+
++ activar=1;
++
+ if (prism2_hw_init(dev, initial)) {
+ return local->no_pri ? 0 : 1;
+ }
+@@ -2628,8 +2631,15 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id)
+ int events = 0;
+ u16 ev;
+
+- iface = netdev_priv(dev);
+- local = iface->local;
++
++ // Todos los parametros de entrada son correctos (no son nulos). De momento esta es la unica forma que conozco de detectar el problema.
++ if (!activar) {
++ printk("hostap_hw.c: INTERRUPT BEFORE DEVICE INIT!\n");
++ return IRQ_HANDLED;
++ }
++
++ iface = netdev_priv(dev);
++ local = iface->local;
+
+ prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0);
+
+diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c
+index 3a874fc..df58aa3 100644
+--- a/drivers/net/wireless/hostap/hostap_pci.c
++++ b/drivers/net/wireless/hostap/hostap_pci.c
+@@ -19,6 +19,7 @@
+
+ #include "hostap_wlan.h"
+
++int activar=1;
+
+ static char *dev_info = "hostap_pci";
+
+diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c
+index cbf15d7..4475174 100644
+--- a/drivers/net/wireless/hostap/hostap_plx.c
++++ b/drivers/net/wireless/hostap/hostap_plx.c
+@@ -21,7 +21,7 @@
+ #include <asm/io.h>
+
+ #include "hostap_wlan.h"
+-
++int activar=1;
+
+ static char *dev_info = "hostap_plx";
+
+diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c
+index c5b2a44..eecbe8c 100644
+--- a/drivers/pcmcia/sa1100_generic.c
++++ b/drivers/pcmcia/sa1100_generic.c
+@@ -81,13 +81,14 @@ static int sa11x0_drv_pcmcia_probe(struct device *dev)
+ return ret;
+ }
+
+-static struct device_driver sa11x0_pcmcia_driver = {
+- .probe = sa11x0_drv_pcmcia_probe,
+- .remove = soc_common_drv_pcmcia_remove,
+- .name = "sa11x0-pcmcia",
+- .bus = &platform_bus_type,
+- .suspend = pcmcia_socket_dev_suspend,
+- .resume = pcmcia_socket_dev_resume,
++static struct platform_driver sa11x0_pcmcia_driver = {
++ .driver = {
++ .name = "sa11x0-pcmcia",
++ .probe = sa11x0_drv_pcmcia_probe,
++ .remove = soc_common_drv_pcmcia_remove,
++ .suspend= pcmcia_socket_dev_suspend,
++ .resume = pcmcia_socket_dev_resume,
++ },
+ };
+
+ /* sa11x0_pcmcia_init()
+@@ -100,7 +101,7 @@ static struct device_driver sa11x0_pcmcia_driver = {
+ */
+ static int __init sa11x0_pcmcia_init(void)
+ {
+- return driver_register(&sa11x0_pcmcia_driver);
++ return platform_driver_register(&sa11x0_pcmcia_driver);
+ }
+
+ /* sa11x0_pcmcia_exit()
+@@ -110,7 +111,7 @@ static int __init sa11x0_pcmcia_init(void)
+ */
+ static void __exit sa11x0_pcmcia_exit(void)
+ {
+- driver_unregister(&sa11x0_pcmcia_driver);
++ platform_driver_unregister(&sa11x0_pcmcia_driver);
+ }
+
+ MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>");
+diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
+index 66ec5d8..aba38d7 100644
+--- a/drivers/spi/Kconfig
++++ b/drivers/spi/Kconfig
+@@ -123,6 +123,10 @@ config SPI_MPC52xx_PSC
+ This enables using the Freescale MPC52xx Programmable Serial
+ Controller in master SPI mode.
+
++config SPI_LOCOMO
++ tristate "Locomo SPI master"
++ depends on SPI_MASTER && SHARP_LOCOMO && EXPERIMENTAL
++
+ config SPI_MPC83xx
+ tristate "Freescale MPC83xx/QUICC Engine SPI controller"
+ depends on SPI_MASTER && (PPC_83xx || QUICC_ENGINE) && EXPERIMENTAL
+diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
+index 7fca043..b89992b 100644
+--- a/drivers/spi/Makefile
++++ b/drivers/spi/Makefile
+@@ -28,6 +28,7 @@ obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx.o
+ obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
+ obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
+ obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
++obj-$(CONFIG_SPI_LOCOMO) += locomo_spi.o
+ # ... add above this line ...
+
+ # SPI protocol drivers (device/link on bus)
+diff --git a/drivers/spi/locomo_spi.c b/drivers/spi/locomo_spi.c
+new file mode 100644
+index 0000000..d3a4bd9
+--- /dev/null
++++ b/drivers/spi/locomo_spi.c
+@@ -0,0 +1,1097 @@
++#include <asm/io.h>
++#include <asm/irq.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/device.h>
++#include <linux/stat.h>
++#include <linux/delay.h>
++#include <linux/wait.h>
++#include <linux/interrupt.h>
++#include <asm/hardware/locomo.h>
++#include <asm/errno.h>
++#include <linux/mmc/host.h>
++#include <linux/spi/spi.h>
++#include <linux/spi/mmc_spi.h>
++#include <linux/workqueue.h>
++#include <linux/spinlock.h>
++#include <linux/list.h>
++#include "locomo_spi.h"
++static struct locomospi_dev * spidev;
++static struct work_struct transfer_wq;
++int delay;
++
++char* transtxbuf=(char*)NULL;
++char* transrxbuf=(char*)NULL;
++int transfercount=0, transfersize=0;
++static DECLARE_WAIT_QUEUE_HEAD(transferqueue);
++/* MMC_SPI functions *********************************************************/
++
++static int locomommcspi_init(struct device *dev, irqreturn_t (*isr)(int, void*), void *mmc)
++{
++ int result;
++ result=request_irq(IRQ_LOCOMO_CARDDETECT, isr, IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, "locomo-spi", mmc);
++ return result;
++}
++
++static void locomommcspi_exit(struct device *dev, void* mmc)
++{
++ free_irq(IRQ_LOCOMO_CARDDETECT, mmc);
++}
++
++static int locomommcspi_getro(struct device *dev)
++{
++ return locomo_gpio_read_level(spidev->ldev->dev.parent,LOCOMO_GPIO_WRITE_PROT) > 0 ? 1 : 0;
++}
++
++static void locomommcspi_setpower(struct device *dev, unsigned int mask)
++{
++ if(!mask && spidev->card_power)
++ locomospi_power(0);
++ else if( !spidev->card_power )
++ locomospi_power(1);
++
++}
++
++
++static struct mmc_spi_platform_data colliemmc ={
++ .init = locomommcspi_init,
++ .exit = locomommcspi_exit,
++ .detect_delay = 200,
++ .get_ro = locomommcspi_getro,
++ .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
++ .setpower = locomommcspi_setpower,
++ .powerup_msecs = 200,
++};
++
++/* Utility function **********************************************************/
++
++static void locomospi_power(int on)
++{
++ locomo_gpio_write(spidev->ldev->dev.parent, LOCOMO_GPIO_CARD_POWER, on);
++ spidev->card_power=on;
++ printk(KERN_DEBUG "locomospi: power %d\n",on);
++}
++
++static void locomospi_setclock(unsigned int div, unsigned int clock)
++{
++ u16 r = ioread16(spidev->base+LOCOMO_SPIMD);
++ div &= 0x7;
++ clock &= 0x3;
++ if(clock != spidev->clock_base || div != spidev->clock_div){
++ r &= ~(LOCOMO_SPI_XSEL | LOCOMO_SPI_CLKSEL | LOCOMO_SPI_XEN);
++ iowrite16(r,spidev->base+LOCOMO_SPIMD);
++ r |= (div | (clock <<3) | LOCOMO_SPI_XEN);
++ iowrite16(r,spidev->base+LOCOMO_SPIMD);
++ spidev->clock_div = div;
++ spidev->clock_base = clock;
++ udelay(300);
++ }
++
++}
++// returns 1 if card ist present, 0 otherwise
++static int locomospi_carddetect()
++{
++ return (locomo_gpio_read_level(spidev->ldev->dev.parent,LOCOMO_GPIO_CARD_DETECT)>0)?0:1;
++}
++
++static void locomospi_setcs(int high)
++{
++ u16 r;
++ printk(KERN_DEBUG "locomospi: cs %d\n",high);
++ r = ioread16(spidev->base + LOCOMO_SPICT);
++ if(high)
++ r |= LOCOMO_SPI_CS;
++ else
++ r &= ~LOCOMO_SPI_CS;
++ iowrite16(r, spidev->base + LOCOMO_SPICT);
++}
++
++static void locomospi_reg_open()
++{
++ u16 r;
++ spidev->clock_div = DIV_64;
++ spidev->clock_base = CLOCK_18MHZ;
++ locomospi_power(1);
++ msleep(100);
++// iowrite16( 0xec00 | (CLOCK_18MHZ <<3)|DIV_64, spidev->base+LOCOMO_SPIMD);
++ iowrite16( LOCOMO_SPI_MSB1ST | LOCOMO_SPI_DOSTAT | LOCOMO_SPI_RCPOL | LOCOMO_SPI_TCPOL
++ |(CLOCK_18MHZ <<3) | DIV_64, spidev->base+LOCOMO_SPIMD);
++// if(locomospi_carddetect()){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16( r, spidev->base+LOCOMO_SPIMD);
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XEN;
++ iowrite16( r, spidev->base+LOCOMO_SPIMD);
++// }
++ iowrite16( LOCOMO_SPI_CS, spidev->base+LOCOMO_SPICT);
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r |= (LOCOMO_SPI_CEN | LOCOMO_SPI_RXUEN | LOCOMO_SPI_ALIGNEN);
++ iowrite16( r, spidev->base+LOCOMO_SPICT);
++ udelay(200);
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r &= ~LOCOMO_SPI_CS;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++}
++
++static void locomospi_reg_release()
++{
++ u16 r;
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r &= ~LOCOMO_SPI_CEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r &= ~LOCOMO_SPI_XEN;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r &= ~LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r |= LOCOMO_SPI_XEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++ locomospi_power(0);
++}
++#if 0
++static int txrx(const char* txbuffer, char* rxbuffer, int size)
++{
++ u16 r = ioread16(spidev->base+LOCOMO_SPICT);
++ r |= LOCOMO_SPI_ALIGNEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++ printk(KERN_DEBUG "locomospi: %d bytes to prozess\n",size);
++ /* initialize global vars for isr */
++ transfercount=0; transfersize=size;
++ transtxbuf=txbuffer; transrxbuf=rxbuffer;
++
++ /* start transmit and go sleep isr will wake us*/
++ enable_irq(IRQ_LOCOMO_SPI_TEND);
++ iowrite8(txbuffer[0], spidev->base+LOCOMO_SPITD);
++ wait_event(transferqueue, transfercount >= transfersize);
++ disable_irq(IRQ_LOCOMO_SPI_TEND);
++ transrxbuf=NULL; transtxbuf=NULL;
++
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r &= ~LOCOMO_SPI_ALIGNEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++ int i;
++ for(i=0; i< size; i++)
++ printk(KERN_DEBUG "locomospi: sent: %x received: %x \n",txbuffer[i], rxbuffer[i]);
++
++
++ return size;
++}
++
++
++static int tx(const char* txbuffer, int size)
++{
++ printk(KERN_DEBUG "locomospi: %d bytes to send\n",size);
++ /* initialize global vars for isr */
++ transfercount=0; transfersize=size;
++ transtxbuf=txbuffer;
++
++ /* start transmit and go sleep isr will wake us*/
++ enable_irq(IRQ_LOCOMO_SPI_RFW);
++ iowrite8(txbuffer[0], spidev->base+LOCOMO_SPITD);
++ wait_event(transferqueue, transfercount >= transfersize);
++ disable_irq(IRQ_LOCOMO_SPI_RFW);
++ transtxbuf=NULL;
++
++ int i;
++ for(i=0; i< size; i++)
++ printk(KERN_DEBUG "locomospi: sent: %x\n",txbuffer[i]);
++
++
++ return size;
++}
++
++static int rx(char* rxbuffer, int size)
++{
++ printk(KERN_DEBUG "locomospi: %d bytes to read\n",size);
++ /* initialize global vars for isr */
++ transfercount=0; transfersize=size;
++ transrxbuf=rxbuffer;
++
++ /* start transmit and go sleep isr will wake us*/
++ enable_irq(IRQ_LOCOMO_SPI_RFR);
++ rxbuffer[0]=ioread8(spidev->base+LOCOMO_SPIRD);
++ wait_event(transferqueue, transfercount >= transfersize);
++ disable_irq(IRQ_LOCOMO_SPI_RFR);
++ transrxbuf=NULL;
++
++ int i;
++ for(i=0; i< size; i++)
++ printk(KERN_DEBUG "locomospi: received: %x \n", rxbuffer[i]);
++
++
++ return size;
++}
++
++#else
++static int txrx(const char* txbuffer, char* rxbuffer, int size)
++{
++ int i=0,j=0;
++ int wait;
++ u16 r;
++/* char * txback = kmalloc(size * sizeof(char), GFP_KERNEL);
++ memcpy(txback, txbuffer, size);
++*/
++ if(spidev->clock_div == 4)
++ wait = 0x10000;
++ else
++ wait = 8;
++
++// printk(KERN_DEBUG "locomospi: txrx %d bytes to prozess\n",size);
++
++// r = ioread16(spidev->base+LOCOMO_SPICT);
++// r |= LOCOMO_SPI_ALIGNEN;
++// iowrite16(r, spidev->base+LOCOMO_SPICT);
++ //discard first bogus byte
++
++ ioread8(spidev->base+LOCOMO_SPIRD);
++ for(i=0; i<size; i++){
++ for(j=0; j <= wait; j++){
++ if(ioread16(spidev->base+LOCOMO_SPIST) & LOCOMO_SPI_RFW)
++ break;
++ }
++ iowrite8(txbuffer[i], spidev->base+LOCOMO_SPITD);
++ ndelay(delay);
++
++ for(j=0; j <= wait; j++){
++ if(ioread16(spidev->base+LOCOMO_SPIST) & LOCOMO_SPI_RFR)
++ break;
++ }
++ rxbuffer[i] = ioread8(spidev->base+LOCOMO_SPIRD);
++ ndelay(delay);
++ }
++// r = ioread16(spidev->base+LOCOMO_SPICT);
++// r &= ~LOCOMO_SPI_ALIGNEN;
++// iowrite16(r, spidev->base+LOCOMO_SPICT);
++
++/* for(j=0; j< size; j++)
++ printk(KERN_DEBUG "locomospi: sent: %x received: %x \n",txback[j], rxbuffer[j]);
++
++ kfree(txback);
++*/ return i;
++}
++
++static int tx(const char* buffer, int size)
++{
++ int i=0,j=0;
++ int wait;
++ u16 r;
++ if(spidev->clock_div == 4)
++ wait = 0x10000;
++ else
++ wait = 8;
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r &= ~LOCOMO_SPI_ALIGNEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++
++// printk(KERN_DEBUG "locomospi: tx %d bytes to transmit\n",size);
++ for(i=0; i<size; i++){
++ for(j=0; j <= wait; j++){
++ if(ioread16(spidev->base+LOCOMO_SPIST) & LOCOMO_SPI_RFW)
++ break;
++ }
++ iowrite8(buffer[i], spidev->base+LOCOMO_SPITD);
++ ndelay(delay);
++ }
++
++ for(j=0; j <= wait; j++){
++ if(ioread16(spidev->base+LOCOMO_SPIST) & LOCOMO_SPI_TEND)
++ break;
++ }
++
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r |= LOCOMO_SPI_ALIGNEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++
++// for(j=0; j< size; j++)
++// printk(KERN_DEBUG "locomospi: sent: %x \n", buffer[j]);
++// printk(KERN_DEBUG "locomospi: tx %d bytes transmitted\n",i);
++ return i;
++}
++
++static int rx(char* buffer, int size)
++{
++ int i,j;
++ int wait;
++ u16 r;
++ printk(KERN_DEBUG "locomospi: rx %d bytes to receive\n",size);
++ if(spidev->clock_div == 4)
++ wait = 0x10000;
++ else
++ wait = 8;
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r &= ~LOCOMO_SPI_ALIGNEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++
++ for(i=0; i<size; i++){
++
++ for(j=0; j <= wait; j++){
++ if(ioread16(spidev->base+LOCOMO_SPIST) & LOCOMO_SPI_RFR)
++ break;
++ }
++ buffer[i]= ioread8(spidev->base+LOCOMO_SPIRD);
++ ndelay(delay);
++ }
++
++ r = ioread16(spidev->base+LOCOMO_SPICT);
++ r |= LOCOMO_SPI_ALIGNEN;
++ iowrite16(r, spidev->base+LOCOMO_SPICT);
++
++ for(j=0; j< size; j++)
++ printk(KERN_DEBUG "locomospi: received: %x \n", buffer[j]);
++ printk(KERN_DEBUG "locomospi: rx %d bytes received\n",i);
++ return i;
++}
++#endif
++/*
++static irqreturn_t locomospi_rwready(int irq, void *dev_id)
++{
++ struct locomospi_dev* dev=(struct locomospi_dev*) dev_id;
++// dev_dbg(&spidev->sdev->dev, "IRQ: %d\n", irq);
++// printk(KERN_DEBUG "locomospi: IRQ: %d\n", irq);
++ wake_up_interruptible(&dev->waitqueue);
++ return IRQ_HANDLED;
++}
++*/
++static irqreturn_t locomospi_testisr(int irq, void *dev_id)
++{
++ char *buf="";
++ switch(irq){
++ case IRQ_LOCOMO_SPI_RFR: buf="RFR";
++ break;
++ case IRQ_LOCOMO_SPI_RFW: buf="RFW";
++ break;
++ case IRQ_LOCOMO_SPI_REND:buf="REND";
++ break;
++ case IRQ_LOCOMO_SPI_TEND:buf="TEND";
++ break;
++ case IRQ_LOCOMO_CARDDETECT:
++ buf="CARD_DETECT";
++ break;
++ default: return IRQ_NONE;
++ }
++ printk(KERN_DEBUG "locomospi: IRQ: %s\n",buf);
++// dev_dbg(&spidev->sdev->dev, "IRQ: %s\n",buf);
++ return IRQ_HANDLED;
++}
++static irqreturn_t locomospi_txrxisr(int irq, void *dev_id)
++{
++ if(transfercount < transfersize){
++ transrxbuf[transfercount++] = ioread8(spidev->base+LOCOMO_SPIRD);
++ iowrite8(transtxbuf[transfercount], spidev->base+LOCOMO_SPITD);
++ }
++ else{
++ /* transfer complete. wake up txrx */
++ wake_up(&transferqueue);
++ }
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t locomospi_txisr(int irq, void *dev_id)
++{
++ if(transfercount < transfersize){
++ iowrite8(transtxbuf[transfercount++], spidev->base+LOCOMO_SPITD);
++ }
++ else{
++ /* transfer complete. wake up txrx */
++ wake_up(&transferqueue);
++ }
++ return IRQ_HANDLED;
++}
++
++static irqreturn_t locomospi_rxisr(int irq, void *dev_id)
++{
++ if(transfercount < transfersize){
++ transrxbuf[transfercount++] = ioread8(spidev->base+LOCOMO_SPIRD);
++ }
++ else{
++ /* transfer complete. wake up txrx */
++ wake_up(&transferqueue);
++ }
++ return IRQ_HANDLED;
++}
++
++static void locomospi_clock(unsigned int Hz)
++{
++ u16 r;
++ printk(KERN_DEBUG "locomospi: changing clock to: %d\n", Hz);
++ if(Hz == 0){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r &= ~LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ }
++ else if(Hz >= 24576000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_1, CLOCK_25MHZ);
++ delay=41;
++ }
++ else if(Hz >= 22579200){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_1, CLOCK_22MHZ);
++ delay=45;
++ }
++ else if(Hz >= 18432000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_1, CLOCK_18MHZ);
++ delay=55;
++ }
++ else if(Hz >= 12288000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_2, CLOCK_25MHZ);
++ delay=82;
++ }
++ else if(Hz >= 11289600){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_2, CLOCK_22MHZ);
++ delay=89;
++ }
++ else if(Hz >= 9216000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_2, CLOCK_18MHZ);
++ delay=110;
++ }
++ else if(Hz >= 6144000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_4, CLOCK_25MHZ);
++ delay=164;
++ }
++ else if(Hz >= 5644800){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_4, CLOCK_22MHZ);
++ delay=178;
++ }
++ else if(Hz >= 4608000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_4, CLOCK_18MHZ);
++ delay=218;
++ }
++ else if(Hz >= 3072000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_8, CLOCK_25MHZ);
++ delay=327;
++ }
++ else if(Hz >= 2822400){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_8, CLOCK_22MHZ);
++ delay=355;
++ }
++ else if(Hz >= 2304000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_8, CLOCK_18MHZ);
++ delay=435;
++ }
++ else if(Hz >= 384000){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_64, CLOCK_25MHZ);
++ delay=2605;
++ }
++ else if(Hz >= 352800){
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_64, CLOCK_22MHZ);
++ delay=2834;
++ }
++ else{ /* set to 288 KHz */
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_XON;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ locomospi_setclock(DIV_64, CLOCK_18MHZ);
++ delay=3473;
++ }
++ spidev->clock = Hz;
++}
++
++/* sysfs attributes used for debug *******************************************/
++
++/* SPI registers */
++ssize_t locomospi_showspimd(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "0x%x\n", ioread16(spidev->base+LOCOMO_SPIMD));
++}
++
++ssize_t locomospi_storespimd(struct device_driver *drv, const char *buf, size_t count)
++{
++ iowrite16(simple_strtoul(buf, NULL, 16), spidev->base+LOCOMO_SPIMD);
++ return count;
++}
++static DRIVER_ATTR(spimd, S_IWUSR | S_IRUGO, locomospi_showspimd, locomospi_storespimd);
++
++ssize_t locomospi_showspict(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "0x%x\n", ioread16(spidev->base+LOCOMO_SPICT));
++}
++
++ssize_t locomospi_storespict(struct device_driver *drv, const char *buf, size_t count)
++{
++ iowrite16(simple_strtoul(buf, NULL, 16), spidev->base+LOCOMO_SPICT);
++ return count;
++}
++static DRIVER_ATTR(spict, S_IWUSR | S_IRUGO, locomospi_showspict, locomospi_storespict);
++
++ssize_t locomospi_showspist(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "0x%x\n", ioread16(spidev->base+LOCOMO_SPIST));
++}
++
++ssize_t locomospi_storespist(struct device_driver *drv, const char *buf, size_t count)
++{
++ iowrite16(simple_strtoul(buf, NULL, 16), spidev->base+LOCOMO_SPIST);
++ return count;
++}
++static DRIVER_ATTR(spist, S_IWUSR | S_IRUGO, locomospi_showspist, locomospi_storespist);
++
++ssize_t locomospi_showspitd(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "0x%x\n", ioread16(spidev->base+LOCOMO_SPITD));
++}
++
++ssize_t locomospi_storespitd(struct device_driver *drv, const char *buf, size_t count)
++{
++ iowrite16(simple_strtoul(buf, NULL, 16), spidev->base+LOCOMO_SPITD);
++ return count;
++}
++static DRIVER_ATTR(spitd, S_IWUSR | S_IRUGO, locomospi_showspitd, locomospi_storespitd);
++
++ssize_t locomospi_showspird(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "0x%x\n", ioread16(spidev->base+LOCOMO_SPIRD));
++}
++
++ssize_t locomospi_storespird(struct device_driver *drv, const char *buf, size_t count)
++{
++ iowrite16(simple_strtoul(buf, NULL, 16), spidev->base+LOCOMO_SPIRD);
++ return count;
++}
++static DRIVER_ATTR(spird, S_IWUSR | S_IRUGO, locomospi_showspird, locomospi_storespird);
++
++ssize_t locomospi_showspits(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "0x%x\n", ioread16(spidev->base+LOCOMO_SPITS));
++}
++
++ssize_t locomospi_storespits(struct device_driver *drv, const char *buf, size_t count)
++{
++ iowrite16(simple_strtoul(buf, NULL, 16), spidev->base+LOCOMO_SPITS);
++ return count;
++}
++static DRIVER_ATTR(spits, S_IWUSR | S_IRUGO, locomospi_showspits, locomospi_storespits);
++
++ssize_t locomospi_showspirs(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "0x%x\n", ioread16(spidev->base+LOCOMO_SPIRS));
++}
++
++ssize_t locomospi_storespirs(struct device_driver *drv, const char *buf, size_t count)
++{
++ iowrite16(simple_strtoul(buf, NULL, 16), spidev->base+LOCOMO_SPIRS);
++ return count;
++}
++static DRIVER_ATTR(spirs, S_IWUSR | S_IRUGO, locomospi_showspirs, locomospi_storespirs);
++
++/* MMC Card status */
++
++ssize_t locomospi_showpower(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "%d\n", spidev->card_power);
++}
++
++ssize_t locomospi_storepower(struct device_driver *drv, const char *buf, size_t count)
++{
++ locomospi_power(simple_strtoul(buf, NULL, 10));
++ return count;
++}
++static DRIVER_ATTR(cardpower, S_IWUSR | S_IRUGO, locomospi_showpower, locomospi_storepower);
++
++ssize_t locomospi_detectcard(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "%d\n",(locomo_gpio_read_level(spidev->ldev->dev.parent,LOCOMO_GPIO_CARD_DETECT)>0)?0:1);
++}
++static DRIVER_ATTR(carddetect, S_IRUGO, locomospi_detectcard, NULL);
++
++ssize_t locomospi_writeprotect(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "%d\n",(locomo_gpio_read_level(spidev->ldev->dev.parent,LOCOMO_GPIO_WRITE_PROT)>0)?1:0);
++}
++static DRIVER_ATTR(cardwriteprotect, S_IRUGO, locomospi_writeprotect, NULL);
++
++
++ssize_t locomospi_showclock(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "%d\n", spidev->clock);
++}
++
++ssize_t locomospi_storeclock(struct device_driver *drv, const char *buf, size_t count)
++{
++ locomospi_clock(simple_strtoul(buf, NULL, 10));
++ return count;
++}
++static DRIVER_ATTR(clock, S_IWUSR | S_IRUGO, locomospi_showclock, locomospi_storeclock);
++
++/* debug */
++ssize_t locomospi_showdelay(struct device_driver *drv, char *buf)
++{
++ return sprintf(buf, "%d\n", delay);
++}
++
++ssize_t locomospi_storedelay(struct device_driver *drv, const char *buf, size_t count)
++{
++ delay=simple_strtoul(buf,NULL,10);
++ return count;
++}
++static DRIVER_ATTR(delay, S_IWUSR | S_IRUGO, locomospi_showdelay, locomospi_storedelay);
++
++ssize_t locomospi_reset(struct device_driver *drv, const char *buf, size_t count)
++{
++ int choice = simple_strtoul(buf, NULL, 10);
++ char buff[100];
++ u16 r;
++ switch(choice){
++ case 0: locomospi_reg_release();
++ schedule_timeout(2*HZ);
++ locomospi_reg_open();
++ break;
++ case 1: {
++ char b1[] = "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
++ char b2[] = "\xff\x40\x00\x00\x00\x00\x95\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
++ locomospi_setcs(1);
++ txrx(b1,b1,17);
++ locomospi_setcs(0);
++ txrx(b2,b2,18);
++
++ }
++ break;
++ case 2: locomospi_setcs(1);
++ txrx("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",buff,18);
++ locomospi_setcs(0);
++ txrx("\xff\x40\x00\x00\x00\x00\x95\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",buff,17);
++ break;
++ case 3:
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r |= LOCOMO_SPI_LOOPBACK;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ txrx("X",buff,1);
++ txrx("abcdefghijklmnopqrstuvwxyz1234567890",buff,36);
++ txrx("Y",buff,1);
++ udelay(100);
++ txrx("Z",buff,1);
++ schedule_timeout(HZ);
++ txrx("abcdefghijklmnopqrstuvwxyz1234567890",buff,36);
++
++ r = ioread16(spidev->base+LOCOMO_SPIMD);
++ r &= ~LOCOMO_SPI_LOOPBACK;
++ iowrite16(r, spidev->base+LOCOMO_SPIMD);
++ break;
++ default: /* do nothing */;
++ }
++ return count;
++}
++static DRIVER_ATTR(reset, S_IWUSR, NULL, locomospi_reset);
++
++typedef struct locomo_reg_entry {
++ u32 addr;
++ char* name;
++} locomo_reg_entry_t;
++#define LCM (sizeof(locomo_regs)/sizeof(locomo_reg_entry_t))
++static locomo_reg_entry_t locomo_regs[] =
++{
++/* { addr, name, description } */
++ { 0x00, "VER" },
++ { 0x04, "ST" },
++ { 0x08, "C32K" },
++ { 0x0C, "ICR" },
++ { 0x10, "MCSX0" },
++ { 0x14, "MCSX1" },
++ { 0x18, "MCSX2" },
++ { 0x1C, "MCSX3" },
++ { 0x20, "ASD" },
++ { 0x28, "HSD" },
++ { 0x2C, "HSC" },
++ { 0x30, "TADC" },
++ { 0x38, "TC" },
++ { 0x3C, "CPSD" },
++ { 0x40, "KIB" },
++ { 0x44, "KSC" },
++ { 0x48, "KCMD" },
++ { 0x4C, "KIC" },
++ { 0x54, "ACC" },
++ { 0x60, "SPIMD" },
++ { 0x64, "SPICT" },
++ { 0x68, "SPIST" },
++ { 0x70, "SPIIS" },
++ { 0x74, "SPIWE" },
++ { 0x78, "SPIIE" },
++ { 0x7C, "SPIIR" },
++ { 0x80, "SPITD" },
++ { 0x84, "SPIRD" },
++ { 0x88, "SPITS" },
++ { 0x8C, "SPIRS" },
++ { 0x90, "GPD" },
++ { 0x94, "GPE" },
++ { 0x98, "GPL" },
++ { 0x9C, "GPO" },
++ { 0xa0, "GRIE" },
++ { 0xa4, "GFIE" },
++ { 0xa8, "GIS" },
++ { 0xac, "GWE" },
++ { 0xb0, "GIE" },
++ { 0xb4, "GIR" },
++ { 0xc8, "ALC" },
++ { 0xcc, "ALR" },
++ { 0xd0, "PAIF" },
++ { 0xd8, "LTC" },
++ { 0xdc, "LTINT" },
++ { 0xe0, "DAC" },
++ { 0xe8, "LPT0" },
++ { 0xec, "LPT1" },
++ { 0xfc, "TCR" },
++};
++
++static ssize_t lcm_show(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ int base = spidev->base - LOCOMO_SPI;
++ char b[4000]="";
++ char c[30];
++ int i;
++ for(i=0; i<LCM; i++){
++ sprintf(c,"%s:\t\t 0x%x\n",locomo_regs[i].name, ioread16(base + locomo_regs[i].addr));
++ strcat(b,c);
++ }
++ return sprintf(buf,"%s",b);
++}
++
++static DRIVER_ATTR(regs, 0444, lcm_show, NULL);
++
++
++/* SPI functions *************************************************************/
++
++static void locomospi_do_transfer(struct work_struct *wrk)
++{
++ struct list_head *mptr, *tptr, *mptr2;
++ struct spi_transfer *entry;
++ struct spi_message *msg;
++
++ list_for_each_safe(mptr, mptr2, &spidev->message_list){
++ msg = list_entry(mptr, struct spi_message, queue);
++
++ msg->status = 0;
++ msg->actual_length = 0;
++ list_for_each(tptr, &msg->transfers){
++ entry = list_entry(tptr, struct spi_transfer, transfer_list);
++ if(entry->tx_buf && entry->rx_buf){ //duplex
++ txrx((char*) entry->tx_buf, (char*) entry->rx_buf, entry->len);
++ msg->actual_length += entry->len;
++ } else if(entry->tx_buf && !entry->rx_buf){ //write
++ tx((char*) entry->tx_buf, entry->len);
++ msg->actual_length += entry->len;
++ } else if(!entry->tx_buf && entry->rx_buf){ //read
++ rx((char*) entry->rx_buf, entry->len);
++ msg->actual_length += entry->len;
++ } else if(!entry->tx_buf && !entry->rx_buf){ //error
++ dev_err(&spidev->sdev->dev, "do_transfer: no buffers allocated\n");
++ msg->status = -EFAULT;
++ }
++ }
++ spin_lock(&spidev->message_lock);
++ list_del(mptr);
++ spin_unlock(&spidev->message_lock);
++ msg->complete(msg->context);
++ }
++}
++
++static int locomospi_setup(struct spi_device *spi)
++{
++ if((spi->mode & SPI_CS_HIGH) != (spidev->spimode & SPI_CS_HIGH))
++ locomospi_setcs(spi->mode & SPI_CS_HIGH ? 1 : 0 );
++ if(spidev->clock != spi->max_speed_hz){
++ locomospi_clock(spi->max_speed_hz);
++ }
++ spidev->spimode = spi->mode;
++
++ return 0;
++}
++
++static int locomospi_transfer(struct spi_device *spi, struct spi_message *msg)
++{
++
++ spin_lock(&spidev->message_lock);
++ list_add_tail(&msg->queue, &spidev->message_list);
++ spin_unlock(&spidev->message_lock);
++ schedule_work(&transfer_wq);
++ return 0;
++}
++
++static struct locomo_driver locomo_spi_driver = {
++ .drv = {
++ .name = "locomo-spi",
++ },
++ .devid = LOCOMO_DEVID_SPI,
++ .probe = locomospi_probe,
++ .remove = locomospi_remove,
++#ifdef CONFIG_PM
++ .suspend = locomospi_suspend,
++ .resume = locomospi_resume,
++#endif
++};
++
++static struct spi_board_info board = {
++ .modalias = "mmc_spi",
++ .platform_data = (void*) &colliemmc,
++ .controller_data= NULL,
++ .irq = 0,
++ .max_speed_hz = 25000000,
++ .bus_num = 0,
++ .chip_select = 0,
++ .mode = 0,
++};
++
++#ifdef CONFIG_PM
++static int locomospi_suspend(struct locomo_dev *dev, pm_message_t state)
++{
++ disable_irq(IRQ_LOCOMO_CARDDETECT);
++ return 0;
++}
++
++static int locomospi_resume(struct locomo_dev *dev)
++{
++ enable_irq(IRQ_LOCOMO_CARDDETECT);
++ return 0;
++}
++#endif
++
++static int locomospi_probe(struct locomo_dev *dev)
++{
++ int result=0;
++ printk(KERN_DEBUG "Collie MMC over SPI Driver\n");
++ spidev=kmalloc(sizeof(struct locomospi_dev),GFP_KERNEL);
++ if(!spidev){
++ return -ENOMEM;
++ }
++ spidev->ldev = dev;
++ spidev->card_power = 1;
++ spidev->spimode = 0;
++
++ if(!request_mem_region((unsigned long) dev->mapbase, dev->length, LOCOMO_DRIVER_NAME(dev))) {
++ dev_err(&dev->dev, " Can't aquire access to io memory\n");
++ return -EBUSY;
++ }
++ spidev->base=(unsigned long) dev->mapbase;
++ locomospi_reg_open();
++
++ locomo_gpio_set_dir(dev->dev.parent, LOCOMO_GPIO_CARD_POWER, 0);
++ locomo_gpio_set_dir(dev->dev.parent, LOCOMO_GPIO_CARD_DETECT, 1);
++ locomo_gpio_set_dir(dev->dev.parent, LOCOMO_GPIO_WRITE_PROT, 1);
++
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_cardpower);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_carddetect);
++ if(result){
++ dev_err(&dev->dev,"error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_cardwriteprotect);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_spimd);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_spict);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_spist);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_spitd);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_spird);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_spits);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_spirs);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_clock);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_delay);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_reset);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ result=driver_create_file(&locomo_spi_driver.drv, &driver_attr_regs);
++ if(result){
++ dev_err(&dev->dev, "error creating driver attribute\n");
++ goto region;
++ }
++ INIT_WORK(&transfer_wq, locomospi_do_transfer);
++ INIT_LIST_HEAD(&spidev->message_list);
++ spin_lock_init(&spidev->message_lock);
++ init_waitqueue_head(&spidev->waitqueue);
++ spidev->master=spi_alloc_master(&dev->dev,0);
++ if(!spidev->master){
++ result=-ENOMEM;
++ goto region;
++ }
++ spidev->master->bus_num = 0;
++ spidev->master->num_chipselect = 1;
++ spidev->master->setup = locomospi_setup;
++ spidev->master->transfer = locomospi_transfer;
++ spidev->sdev = spi_new_device(spidev->master, &board);
++ if(!spidev->sdev){
++ dev_err(&dev->dev, "failed to register spi device\n");
++ result = -EINVAL;
++ goto master;
++ }
++/* result=request_irq(IRQ_LOCOMO_SPI_RFR, locomospi_testisr, IRQF_SHARED, "locomo-spi", (void*) spidev);
++ if(result) {
++ dev_err(&dev->dev, "Could not get IRQ: RFR\n");
++ goto regdev;
++ }
++ //disable_irq(IRQ_LOCOMO_SPI_RFR);
++*//* result=request_irq(IRQ_LOCOMO_SPI_RFW, locomospi_testisr, IRQF_SHARED, "locomo-spi", (void*) spidev);
++ if(result) {
++ dev_err(&dev->dev, "Could not get IRQ: RFW\n");
++ goto irq1;
++ }
++ //disable_irq(IRQ_LOCOMO_SPI_RFW);
++*//* result=request_irq(IRQ_LOCOMO_SPI_REND, locomospi_testisr, IRQF_SHARED, "locomo-spi", (void*) spidev);
++ if(result) {
++ dev_err(&dev->dev, "Could not get IRQ: REND\n");
++ goto irq2;
++ }
++*//* result=request_irq(IRQ_LOCOMO_SPI_TEND, locomospi_testisr, IRQF_SHARED, "locomo-spi", (void*) spidev);
++ if(result) {
++ dev_err(&dev->dev, "Could not get IRQ: TEND\n");
++ goto irq3;
++ }
++ //disable_irq(IRQ_LOCOMO_SPI_TEND);
++*/ spidev->workqueue = create_singlethread_workqueue("locomo-spi");
++ if(!spidev->workqueue){
++ dev_err(&dev->dev, "failed to create workqueue\n");
++ goto irq4;
++ }
++ result=spi_register_master(spidev->master);
++ if(result){
++ dev_err(&dev->dev, "failed to register spimaster\n");
++ goto wq;
++ }
++ return 0;
++wq:
++ destroy_workqueue(spidev->workqueue);
++irq4:
++// free_irq(IRQ_LOCOMO_SPI_TEND, (void*) spidev);
++irq3:
++// free_irq(IRQ_LOCOMO_SPI_REND, (void*) spidev);
++irq2:
++// free_irq(IRQ_LOCOMO_SPI_RFW, (void*) spidev);
++irq1:
++// free_irq(IRQ_LOCOMO_SPI_RFR, (void*) spidev);
++regdev:
++ spi_unregister_device(spidev->sdev);
++master:
++ spi_master_put(spidev->master);
++region:
++ release_mem_region((unsigned long) dev->mapbase, dev->length);
++ kfree(spidev);
++ return result;
++
++}
++
++static int locomospi_remove(struct locomo_dev *dev)
++{
++ spi_unregister_device(spidev->sdev);
++ spi_unregister_master(spidev->master);
++ destroy_workqueue(spidev->workqueue);
++ locomospi_reg_release();
++// free_irq(IRQ_LOCOMO_SPI_TEND, (void*) spidev);
++// free_irq(IRQ_LOCOMO_SPI_REND, (void*) spidev);
++// free_irq(IRQ_LOCOMO_SPI_RFW, (void*) spidev);
++// free_irq(IRQ_LOCOMO_SPI_RFR, (void*) spidev);
++ spi_master_put(spidev->master);
++ release_mem_region((unsigned long) dev->mapbase, dev->length);
++ kfree(spidev);
++ return 0;
++}
++
++
++
++static int __init locomospi_init(void)
++{
++ int ret = locomo_driver_register(&locomo_spi_driver);
++ if (ret)
++ return ret;
++
++
++ return 0;
++}
++
++static void __exit locomospi_exit(void)
++{
++ locomo_driver_unregister(&locomo_spi_driver);
++}
++
++module_init(locomospi_init);
++module_exit(locomospi_exit);
++
++MODULE_AUTHOR("Thomas Kunze thommy@tabao.de");
++MODULE_DESCRIPTION("Collie mmc driver");
++MODULE_LICENSE("GPL");
+diff --git a/drivers/spi/locomo_spi.h b/drivers/spi/locomo_spi.h
+new file mode 100644
+index 0000000..7e1c0ce
+--- /dev/null
++++ b/drivers/spi/locomo_spi.h
+@@ -0,0 +1,75 @@
++#include <asm/hardware/locomo.h>
++#ifndef __LOCOMO_SPI_H__
++#define __LOCOMO_SPI_H__
++
++/* locomo-spi status register LOCOMO_SPIST */
++#define LOCOMO_SPI_TEND (1 << 3) /* Transfer end bit */
++#define LOCOMO_SPI_REND (1 << 2) /* Receive end bit */
++#define LOCOMO_SPI_RFW (1 << 1) /* write buffer bit */
++#define LOCOMO_SPI_RFR (1) /* read buffer bit */
++
++/* locomo-spi mode register LOCOMO_SPIMD */
++#define LOCOMO_SPI_LOOPBACK (1 << 15) /* loopback tx to rx */
++#define LOCOMO_SPI_MSB1ST (1 << 14) /* send MSB first */
++#define LOCOMO_SPI_DOSTAT (1 << 13) /* transmit line is idle high */
++#define LOCOMO_SPI_TCPOL (1 << 11) /* transmit CPOL (maybe affects CPHA too) */
++#define LOCOMO_SPI_RCPOL (1 << 10) /* receive CPOL (maybe affects CPHA too) */
++#define LOCOMO_SPI_TDINV (1 << 9) /* invert transmit line */
++#define LOCOMO_SPI_RDINV (1 << 8) /* invert receive line */
++#define LOCOMO_SPI_XON (1 << 7) /* enable spi controller clock */
++#define LOCOMO_SPI_XEN (1 << 6) /* clock bit write enable xon must be off, wait 300 us before xon->1 */
++#define LOCOMO_SPI_XSEL 0x0018 /* clock select */
++#define CLOCK_18MHZ 0 /* 18,432 MHz clock */
++#define CLOCK_22MHZ 1 /* 22,5792 MHz clock */
++#define CLOCK_25MHZ 2 /* 24,576 MHz clock */
++#define LOCOMO_SPI_CLKSEL 0x7
++#define DIV_1 0 /* don't divide clock */
++#define DIV_2 1 /* divide clock by two */
++#define DIV_4 2 /* divide clock by four */
++#define DIV_8 3 /* divide clock by eight*/
++#define DIV_64 4 /* divide clock by 64 */
++
++/* locomo-spi control register LOCOMO_SPICT */
++#define LOCOMO_SPI_CRC16_7_B (1 << 15) /* 0: crc16 1: crc7 */
++#define LOCOMO_SPI_CRCRX_TX_B (1 << 14)
++#define LOCOMO_SPI_CRCRESET_B (1 << 13)
++#define LOCOMO_SPI_CEN (1 << 7) /* ?? enable */
++#define LOCOMO_SPI_CS (1 << 6) /* chip select */
++#define LOCOMO_SPI_UNIT16 (1 << 5) /* 0: 8 bit units, 1: 16 bit unit */
++#define LOCOMO_SPI_ALIGNEN (1 << 2) /* align transfer enable */
++#define LOCOMO_SPI_RXWEN (1 << 1) /* continous receive */
++#define LOCOMO_SPI_RXUEN (1 << 0) /* aligned receive */
++
++#define IRQ_LOCOMO_CARDDETECT IRQ_LOCOMO_GPIO13
++
++
++struct locomospi_dev {
++ struct locomo_dev *ldev;
++ struct spi_master *master;
++ struct spi_device *sdev;
++ int card_power;
++ int clock_base;
++ int clock_div;
++ int clock;
++ unsigned long base;
++ u8 spimode;
++ wait_queue_head_t waitqueue;
++ struct workqueue_struct *workqueue;
++ struct list_head message_list;
++ spinlock_t message_lock;
++};
++
++
++static irqreturn_t locomospi_cardisr(int, void*);
++static int locomospi_probe(struct locomo_dev*);
++static int locomospi_remove(struct locomo_dev*);
++static int locomospi_carddetect(void);
++static void locomospi_reg_open(void);
++static void locomospi_reg_release(void);
++static int tx(const char*, int);
++static int rx(char *, int);
++static void locomospi_power(int on);
++static int locomospi_suspend(struct locomo_dev *dev, pm_message_t state);
++static int locomospi_resume(struct locomo_dev *dev);
++static void locomospi_setcs(int high);
++#endif
diff --git a/packages/linux/linux-rp-2.6.26/collie_keymap.patch b/packages/linux/linux-rp-2.6.26/collie_keymap.patch
new file mode 100644
index 0000000000..648821f577
--- /dev/null
+++ b/packages/linux/linux-rp-2.6.26/collie_keymap.patch
@@ -0,0 +1,420 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+Index: linux-2.6.26/drivers/char/defkeymap.map
+===================================================================
+--- linux-2.6.26.orig/drivers/char/defkeymap.map 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/char/defkeymap.map 2008-07-24 22:09:38.663284352 +0200
+@@ -1,264 +1,170 @@
+-# Default kernel keymap. This uses 7 modifier combinations.
+-keymaps 0-2,4-5,8,12
+-# Change the above line into
+-# keymaps 0-2,4-6,8,12
+-# in case you want the entries
+-# altgr control keycode 83 = Boot
+-# altgr control keycode 111 = Boot
+-# below.
+-#
+-# In fact AltGr is used very little, and one more keymap can
+-# be saved by mapping AltGr to Alt (and adapting a few entries):
+-# keycode 100 = Alt
+-#
+-keycode 1 = Escape Escape
+- alt keycode 1 = Meta_Escape
+-keycode 2 = one exclam
+- alt keycode 2 = Meta_one
+-keycode 3 = two at at
+- control keycode 3 = nul
+- shift control keycode 3 = nul
+- alt keycode 3 = Meta_two
+-keycode 4 = three numbersign
+- control keycode 4 = Escape
+- alt keycode 4 = Meta_three
+-keycode 5 = four dollar dollar
+- control keycode 5 = Control_backslash
+- alt keycode 5 = Meta_four
+-keycode 6 = five percent
+- control keycode 6 = Control_bracketright
+- alt keycode 6 = Meta_five
+-keycode 7 = six asciicircum
+- control keycode 7 = Control_asciicircum
+- alt keycode 7 = Meta_six
+-keycode 8 = seven ampersand braceleft
+- control keycode 8 = Control_underscore
+- alt keycode 8 = Meta_seven
+-keycode 9 = eight asterisk bracketleft
+- control keycode 9 = Delete
+- alt keycode 9 = Meta_eight
+-keycode 10 = nine parenleft bracketright
+- alt keycode 10 = Meta_nine
+-keycode 11 = zero parenright braceright
+- alt keycode 11 = Meta_zero
+-keycode 12 = minus underscore backslash
+- control keycode 12 = Control_underscore
+- shift control keycode 12 = Control_underscore
+- alt keycode 12 = Meta_minus
+-keycode 13 = equal plus
+- alt keycode 13 = Meta_equal
+-keycode 14 = Delete Delete
+- control keycode 14 = BackSpace
+- alt keycode 14 = Meta_Delete
++# Note:
++# The way in which the modifiers are handled are quite different
++# than how they were handled in the 2.4.6-rmk1-np2-embedix kernel.
++#
++# Here, we simply pass up Fn as Control, and the german accent key
++# as Altgr, and simply use a proper keymap. Said keymap is as
++# follows.
++# keymaps 0-2,4-5,8,12,20
++keycode 14 = BackSpace
++ shift keycode 14 = BackSpace
++ control keycode 14 = Delete
++ shiftl control keycode 14 = bracketleft
++ control shiftr keycode 14 = bracketleft
+ keycode 15 = Tab Tab
+- alt keycode 15 = Meta_Tab
++ shift keycode 15 = backslash
++ control keycode 15 = Caps_Lock
++ shiftl control keycode 15 = Caps_Lock
++ control shiftr keycode 15 = Caps_Lock
+ keycode 16 = q
++ control keycode 16 = one
++ shiftl control keycode 16 = Control_q
++ control shiftr keycode 16 = Meta_q
+ keycode 17 = w
+-keycode 18 = e
+- altgr keycode 18 = Hex_E
++ control keycode 17 = two
++ shiftl control keycode 17 = Control_w
++ control shiftr keycode 17 = Meta_w
++keycode 18 = e
++ control keycode 18 = three
++ shiftl control keycode 18 = Control_e
++ control shiftr keycode 18 = Meta_e
+ keycode 19 = r
++ control keycode 19 = four
++ shiftr control keycode 19 = Control_r
++ control shiftl keycode 19 = Meta_r
+ keycode 20 = t
++ control keycode 20 = five
++ shiftl control keycode 20 = Control_t
++ control shiftr keycode 20 = Meta_t
+ keycode 21 = y
++ control keycode 21 = six
++ shiftl control keycode 21 = Control_y
++ control shiftr keycode 21 = Meta_y
+ keycode 22 = u
++ control keycode 22 = seven
++ shiftl control keycode 22 = Control_u
++ control shiftr keycode 22 = Meta_u
+ keycode 23 = i
++ control keycode 23 = eight
++ shiftl control keycode 23 = Control_i
++ control shiftr keycode 23 = Meta_i
+ keycode 24 = o
++ control keycode 24 = nine
++ shiftl control keycode 24 = Control_o
++ control shiftr keycode 24 = Meta_o
+ keycode 25 = p
+-keycode 26 = bracketleft braceleft
+- control keycode 26 = Escape
+- alt keycode 26 = Meta_bracketleft
+-keycode 27 = bracketright braceright asciitilde
+- control keycode 27 = Control_bracketright
+- alt keycode 27 = Meta_bracketright
++ control keycode 25 = zero
++ shiftl control keycode 25 = Control_p
++ control shiftr keycode 25 = Meta_p
+ keycode 28 = Return
+- alt keycode 28 = Meta_Control_m
++ control keycode 28 = greater
++ shiftl control keycode 28 = braceright
++ control shiftr keycode 28 = braceright
+ keycode 29 = Control
+-keycode 30 = a
+- altgr keycode 30 = Hex_A
++keycode 30 = a
++ control keycode 30 = exclam
++ shiftl control keycode 30 = Control_a
++ control shiftr keycode 30 = Meta_a
+ keycode 31 = s
+-keycode 32 = d
+- altgr keycode 32 = Hex_D
+-keycode 33 = f
+- altgr keycode 33 = Hex_F
++ control keycode 31 = at
++ shiftl control keycode 31 = Control_s
++ control shiftr keycode 31 = Meta_s
++keycode 32 = d
++ control keycode 32 = numbersign
++ shiftl control keycode 32 = Control_d
++ control shiftr keycode 32 = Meta_d
++keycode 33 = f
++ control keycode 33 = dollar
++ shiftl control keycode 33 = Control_f
++ control shiftr keycode 33 = Meta_f
+ keycode 34 = g
++ control keycode 34 = percent
++ shiftl control keycode 34 = Control_g
++ control shiftr keycode 34 = Meta_g
+ keycode 35 = h
++ control keycode 35 = underscore
++ shiftl control keycode 35 = BackSpace
++ control shiftr keycode 35 = BackSpace
+ keycode 36 = j
++ control keycode 36 = ampersand
++ shiftl control keycode 36 = Linefeed
++ control shiftr keycode 36 = Linefeed
+ keycode 37 = k
++ control keycode 37 = asterisk
++ shiftl control keycode 37 = Control_k
++ control shiftr keycode 37 = Meta_k
+ keycode 38 = l
+-keycode 39 = semicolon colon
+- alt keycode 39 = Meta_semicolon
+-keycode 40 = apostrophe quotedbl
+- control keycode 40 = Control_g
+- alt keycode 40 = Meta_apostrophe
+-keycode 41 = grave asciitilde
+- control keycode 41 = nul
+- alt keycode 41 = Meta_grave
++ control keycode 38 = bracketleft
++ shiftl control keycode 51 = parenleft
++ control shiftr keycode 51 = parenleft
++keycode 40 = apostrophe quotedbl
++ control keycode 40 = asciitilde
++ shiftl control keycode 40 = asciicircum
++ control shiftr keycode 40 = asciicircum
+ keycode 42 = Shift
+-keycode 43 = backslash bar
+- control keycode 43 = Control_backslash
+- alt keycode 43 = Meta_backslash
+ keycode 44 = z
++ control keycode 44 = Control_z
++ shiftl control keycode 44 = Control_z
++ control shiftr keycode 44 = Meta_z
+ keycode 45 = x
+-keycode 46 = c
+- altgr keycode 46 = Hex_C
++ control keycode 45 = Control_x
++ shiftl control keycode 45 = Control_x
++ control shiftr keycode 45 = Meta_x
++keycode 46 = c
++ control keycode 46 = Control_c
++ shiftl control keycode 46 = Control_c
++ control shiftr keycode 46 = Meta_c
+ keycode 47 = v
+-keycode 48 = b
+- altgr keycode 48 = Hex_B
++ control keycode 47 = Control_v
++ shiftl control keycode 47 = Control_v
++ control shiftr keycode 47 = Meta_v
++## current location ##
++keycode 48 = b
++ control keycode 48 = minus
++ shiftl control keycode 48 = Control_b
++ control shiftr keycode 48 = Meta_b
+ keycode 49 = n
++ control keycode 49 = plus
++ shiftl control keycode 49 = Control_n
++ control shiftr keycode 49 = Meta_n
+ keycode 50 = m
+-keycode 51 = comma less
+- alt keycode 51 = Meta_comma
+-keycode 52 = period greater
+- control keycode 52 = Compose
+- alt keycode 52 = Meta_period
+-keycode 53 = slash question
+- control keycode 53 = Delete
+- alt keycode 53 = Meta_slash
+-keycode 54 = Shift
++ control keycode 50 = equal
++ shiftl control keycode 50 = Control_m
++ control shiftr keycode 50 = Meta_m
++keycode 51 = comma
++ shift keycode 51 = semicolon
++ control keycode 51 = bracketright
++ shiftl control keycode 51 = parenright
++ control shiftr keycode 51 = parenright
++keycode 52 = period
++ shift keycode 52 = colon
++ control keycode 52 = less
++ shiftl control keycode 52 = braceleft
++ control shiftr keycode 52 = braceleft
++keycode 53 = slash
++ shift keycode 53 = question
++ control keycode 53 = Num_Lock
++ shiftl control keycode 53 = Num_Lock
++ control shiftr keycode 53 = Num_Lock
++keycode 54 = AltGr
+ keycode 55 = KP_Multiply
+ keycode 56 = Alt
+-keycode 57 = space space
+- control keycode 57 = nul
+- alt keycode 57 = Meta_space
+-keycode 58 = Caps_Lock
+-keycode 59 = F1 F11 Console_13
+- control keycode 59 = F1
+- alt keycode 59 = Console_1
+- control alt keycode 59 = Console_1
+-keycode 60 = F2 F12 Console_14
+- control keycode 60 = F2
+- alt keycode 60 = Console_2
+- control alt keycode 60 = Console_2
+-keycode 61 = F3 F13 Console_15
+- control keycode 61 = F3
+- alt keycode 61 = Console_3
+- control alt keycode 61 = Console_3
+-keycode 62 = F4 F14 Console_16
+- control keycode 62 = F4
+- alt keycode 62 = Console_4
+- control alt keycode 62 = Console_4
+-keycode 63 = F5 F15 Console_17
+- control keycode 63 = F5
+- alt keycode 63 = Console_5
+- control alt keycode 63 = Console_5
+-keycode 64 = F6 F16 Console_18
+- control keycode 64 = F6
+- alt keycode 64 = Console_6
+- control alt keycode 64 = Console_6
+-keycode 65 = F7 F17 Console_19
+- control keycode 65 = F7
+- alt keycode 65 = Console_7
+- control alt keycode 65 = Console_7
+-keycode 66 = F8 F18 Console_20
+- control keycode 66 = F8
+- alt keycode 66 = Console_8
+- control alt keycode 66 = Console_8
+-keycode 67 = F9 F19 Console_21
+- control keycode 67 = F9
+- alt keycode 67 = Console_9
+- control alt keycode 67 = Console_9
+-keycode 68 = F10 F20 Console_22
+- control keycode 68 = F10
+- alt keycode 68 = Console_10
+- control alt keycode 68 = Console_10
+-keycode 69 = Num_Lock
+- shift keycode 69 = Bare_Num_Lock
+-keycode 70 = Scroll_Lock Show_Memory Show_Registers
+- control keycode 70 = Show_State
+- alt keycode 70 = Scroll_Lock
+-keycode 71 = KP_7
+- alt keycode 71 = Ascii_7
+- altgr keycode 71 = Hex_7
+-keycode 72 = KP_8
+- alt keycode 72 = Ascii_8
+- altgr keycode 72 = Hex_8
+-keycode 73 = KP_9
+- alt keycode 73 = Ascii_9
+- altgr keycode 73 = Hex_9
+-keycode 74 = KP_Subtract
+-keycode 75 = KP_4
+- alt keycode 75 = Ascii_4
+- altgr keycode 75 = Hex_4
+-keycode 76 = KP_5
+- alt keycode 76 = Ascii_5
+- altgr keycode 76 = Hex_5
+-keycode 77 = KP_6
+- alt keycode 77 = Ascii_6
+- altgr keycode 77 = Hex_6
+-keycode 78 = KP_Add
+-keycode 79 = KP_1
+- alt keycode 79 = Ascii_1
+- altgr keycode 79 = Hex_1
+-keycode 80 = KP_2
+- alt keycode 80 = Ascii_2
+- altgr keycode 80 = Hex_2
+-keycode 81 = KP_3
+- alt keycode 81 = Ascii_3
+- altgr keycode 81 = Hex_3
+-keycode 82 = KP_0
+- alt keycode 82 = Ascii_0
+- altgr keycode 82 = Hex_0
+-keycode 83 = KP_Period
+-# altgr control keycode 83 = Boot
+- control alt keycode 83 = Boot
+-keycode 84 = Last_Console
+-keycode 85 =
+-keycode 86 = less greater bar
+- alt keycode 86 = Meta_less
+-keycode 87 = F11 F11 Console_23
+- control keycode 87 = F11
+- alt keycode 87 = Console_11
+- control alt keycode 87 = Console_11
+-keycode 88 = F12 F12 Console_24
+- control keycode 88 = F12
+- alt keycode 88 = Console_12
+- control alt keycode 88 = Console_12
+-keycode 89 =
+-keycode 90 =
+-keycode 91 =
+-keycode 92 =
+-keycode 93 =
+-keycode 94 =
+-keycode 95 =
+-keycode 96 = KP_Enter
+-keycode 97 = Control
+-keycode 98 = KP_Divide
++keycode 57 = space
++ shift keycode 57 = bar
++ control keycode 57 = nul
++ shiftl control keycode 57 = grave
++ control shiftr keycode 57 = grave
++keycode 67 = Control
++keycode 87 = Return
+ keycode 99 = Control_backslash
+ control keycode 99 = Control_backslash
+- alt keycode 99 = Control_backslash
+ keycode 100 = AltGr
+-keycode 101 = Break
+-keycode 102 = Find
+ keycode 103 = Up
+-keycode 104 = Prior
+- shift keycode 104 = Scroll_Backward
+ keycode 105 = Left
+- alt keycode 105 = Decr_Console
+ keycode 106 = Right
+- alt keycode 106 = Incr_Console
+ keycode 107 = Select
+ keycode 108 = Down
+-keycode 109 = Next
+- shift keycode 109 = Scroll_Forward
+-keycode 110 = Insert
+-keycode 111 = Remove
+-# altgr control keycode 111 = Boot
+- control alt keycode 111 = Boot
+-keycode 112 = Macro
+-keycode 113 = F13
+-keycode 114 = F14
+-keycode 115 = Help
+-keycode 116 = Do
+-keycode 117 = F17
+-keycode 118 = KP_MinPlus
+-keycode 119 = Pause
+-keycode 120 =
+-keycode 121 =
+-keycode 122 =
+-keycode 123 =
+-keycode 124 =
+-keycode 125 =
+-keycode 126 =
+-keycode 127 =
++keycode 116 = Escape
+ string F1 = "\033[[A"
+ string F2 = "\033[[B"
+ string F3 = "\033[[C"
+Index: linux-2.6.26/drivers/char/Makefile
+===================================================================
+--- linux-2.6.26.orig/drivers/char/Makefile 2008-07-13 23:51:29.000000000 +0200
++++ linux-2.6.26/drivers/char/Makefile 2008-07-24 21:57:12.744280423 +0200
+@@ -127,7 +127,7 @@
+ # Uncomment if you're changing the keymap and have an appropriate
+ # loadkeys version for the map. By default, we'll use the shipped
+ # versions.
+-# GENERATE_KEYMAP := 1
++ GENERATE_KEYMAP := 1
+
+ ifdef GENERATE_KEYMAP
+
diff --git a/packages/linux/linux-rp-2.6.26/defconfig-collie b/packages/linux/linux-rp-2.6.26/defconfig-collie
index 271bfd5881..9e3e96288a 100644
--- a/packages/linux/linux-rp-2.6.26/defconfig-collie
+++ b/packages/linux/linux-rp-2.6.26/defconfig-collie
@@ -1,13 +1,13 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.24-rc8
-# Mon Jan 21 22:14:20 2008
+# Linux kernel version: 2.6.26
+# Fri Jul 25 00:01:53 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
-# CONFIG_GENERIC_TIME is not set
-# CONFIG_GENERIC_CLOCKEVENTS is not set
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
@@ -21,6 +21,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_ZONE_DMA=y
CONFIG_ARCH_MTD_XIP=y
CONFIG_VECTORS_BASE=0xffff0000
@@ -42,23 +43,22 @@ CONFIG_SYSVIPC_SYSCTL=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
# CONFIG_TASKSTATS is not set
-# CONFIG_USER_NS is not set
-# CONFIG_PID_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_CGROUPS is not set
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_FAIR_USER_SCHED=y
-# CONFIG_FAIR_CGROUP_SCHED is not set
-# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_EMBEDDED=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -66,27 +66,37 @@ CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
# CONFIG_ELF_CORE is not set
+CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_DMA_ATTRS is not set
+CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
+# CONFIG_KMOD is not set
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -105,6 +115,7 @@ CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
#
# System Type
@@ -133,6 +144,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
@@ -142,6 +154,7 @@ CONFIG_ARCH_SA1100=y
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_MSM7X00A is not set
#
# SA11x0 Implementations
@@ -176,6 +189,7 @@ CONFIG_CPU_32=y
CONFIG_CPU_SA1100=y
CONFIG_CPU_32v4=y
CONFIG_CPU_ABRT_EV4=y
+CONFIG_CPU_PABRT_NOIFAR=y
CONFIG_CPU_CACHE_V4WB=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_TLB_V4WB=y
@@ -190,7 +204,6 @@ CONFIG_CPU_CP15_MMU=y
# CONFIG_OUTER_CACHE is not set
CONFIG_SHARP_LOCOMO=y
CONFIG_SHARP_PARAM=y
-CONFIG_SHARPSL_PM=y
CONFIG_SHARP_SCOOP=y
#
@@ -199,9 +212,9 @@ CONFIG_SHARP_SCOOP=y
CONFIG_ISA=y
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCCARD=m
+CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=m
+CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_PCMCIA_IOCTL=y
@@ -210,18 +223,21 @@ CONFIG_PCMCIA_IOCTL=y
#
# CONFIG_I82365 is not set
# CONFIG_TCIC is not set
-CONFIG_PCMCIA_SA1100=m
+CONFIG_PCMCIA_SA1100=y
#
# Kernel Features
#
-# CONFIG_TICK_ONESHOT is not set
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_PREEMPT=y
-CONFIG_NO_IDLE_HZ=y
CONFIG_HZ=100
-CONFIG_AEABI=y
-CONFIG_OABI_COMPAT=y
+# CONFIG_AEABI is not set
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_NODES_SHIFT=2
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
@@ -232,6 +248,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_NEED_MULTIPLE_NODES=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
@@ -245,7 +262,7 @@ CONFIG_ALIGNMENT_TRAP=y
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttySA0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 mem=32M fbcon=rotate:1 dyntick=enable debug"
+CONFIG_CMDLINE="console=ttySA0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 mem=64M fbcon=rotate:1 dyntick=enable debug"
# CONFIG_XIP_KERNEL is not set
CONFIG_KEXEC=y
CONFIG_ATAGS_PROC=y
@@ -262,9 +279,8 @@ CONFIG_ATAGS_PROC=y
#
# At least one emulation must be selected
#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_NWFPE_XP is not set
-# CONFIG_FPE_FASTFPE is not set
+# CONFIG_FPE_NWFPE is not set
+CONFIG_FPE_FASTFPE=y
#
# Userspace binary formats
@@ -272,18 +288,13 @@ CONFIG_FPE_NWFPE=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_MISC=m
+CONFIG_ARTHUR=m
#
# Power management options
#
-CONFIG_PM=y
-# CONFIG_PM_LEGACY is not set
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND_UP_POSSIBLE=y
-CONFIG_SUSPEND=y
-CONFIG_APM_EMULATION=m
-CONFIG_INPUT_APMPOWER=m
+# CONFIG_PM is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
#
# Networking
@@ -293,34 +304,36 @@ CONFIG_NET=y
#
# Networking options
#
-CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=m
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
+# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_NET_KEY is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE 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 is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=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_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-# CONFIG_INET_LRO is not set
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_LRO=m
+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"
@@ -333,114 +346,288 @@ CONFIG_IPV6=m
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
-# CONFIG_IPV6_MIP6 is not set
+CONFIG_IPV6_MIP6=m
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_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#
-# CONFIG_NETFILTER_NETLINK is not set
-# CONFIG_NF_CONNTRACK_ENABLED is not set
-# CONFIG_NF_CONNTRACK is not set
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XTABLES=m
-# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+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 is not set
-# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
-# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
-# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
-# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_MAC is not set
-# CONFIG_NETFILTER_XT_MATCH_MARK is not set
-# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
-# CONFIG_NETFILTER_XT_MATCH_REALM is not set
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
-# CONFIG_NETFILTER_XT_MATCH_STRING is not set
-# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
-# CONFIG_NETFILTER_XT_MATCH_TIME is not set
-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
-# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=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_OWNER=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_RATEEST=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
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
# IP: Netfilter Configuration
#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
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_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_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
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# 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
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=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_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# DECnet: Netfilter Configuration
+#
+CONFIG_DECNET_NF_GRABULATOR=m
+
+#
+# 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_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_IP_DCCP_ACKVEC=y
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_DCCP_CCID2=m
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=m
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=m
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+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_TIPC=m
+# CONFIG_TIPC_ADVANCED is not set
+# CONFIG_TIPC_DEBUG is not set
+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=m
+CONFIG_COPS=m
+# CONFIG_COPS_DAYNA is not set
+# CONFIG_COPS_TANGENT is not set
+CONFIG_IPDDP=m
+# CONFIG_IPDDP_ENCAP is not set
+# CONFIG_IPDDP_DECAP is not set
+CONFIG_X25=m
+CONFIG_LAPB=m
# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_SCHED is not set
+CONFIG_WAN_ROUTER=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+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
+
+#
+# Classification
+#
+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_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+# CONFIG_NET_EMATCH is not set
+# CONFIG_NET_CLS_ACT is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_SCH_FIFO=y
#
# Network testing
#
-# CONFIG_NET_PKTGEN is not set
+CONFIG_NET_PKTGEN=m
# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
CONFIG_IRDA=m
#
# IrDA protocols
#
CONFIG_IRLAN=m
-CONFIG_IRNET=m
+# CONFIG_IRNET is not set
CONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set
@@ -466,15 +653,6 @@ CONFIG_IRTTY_SIR=m
# 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=m
@@ -482,41 +660,64 @@ CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
+# CONFIG_BT_RFCOMM_TTY is not set
CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
CONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#
-# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
+# CONFIG_BT_HCIUART_H4 is not set
+# CONFIG_BT_HCIUART_BCSP is not set
# CONFIG_BT_HCIUART_LL is not set
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
-# CONFIG_AF_RXRPC is not set
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_RXKAD is not set
#
# Wireless
#
-# CONFIG_CFG80211 is not set
+CONFIG_CFG80211=m
+CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
-# CONFIG_MAC80211 is not set
+CONFIG_MAC80211=m
+
+#
+# Rate control algorithm selection
+#
+CONFIG_MAC80211_RC_DEFAULT_PID=y
+# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
+
+#
+# Selecting 'y' for an algorithm will
+#
+
+#
+# build the algorithm into mac80211.
+#
+CONFIG_MAC80211_RC_DEFAULT="pid"
+CONFIG_MAC80211_RC_PID=y
+# CONFIG_MAC80211_MESH is not set
+# CONFIG_MAC80211_LEDS is not set
+# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
+# CONFIG_MAC80211_DEBUG 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_SOFTMAC is not set
# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_DEBUG is not set
#
# Device Drivers
@@ -527,38 +728,39 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
-CONFIG_MTD=y
+CONFIG_MTD=m
# 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 is not set
-# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_CONCAT=m
+# CONFIG_MTD_PARTITIONS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
-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
-# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_BLKDEVS=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
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+CONFIG_MTD_OOPS=m
#
# RAM/ROM/Flash chip drivers
#
-# CONFIG_MTD_CFI is not set
+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
@@ -569,27 +771,37 @@ 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_SHARP=y
+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=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+# CONFIG_MTD_XIP is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_SA1100=y
-# CONFIG_MTD_PLATRAM 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_PLATRAM=m
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
@@ -603,58 +815,56 @@ CONFIG_MTD_SA1100=y
#
# UBI - Unsorted block images
#
-# CONFIG_MTD_UBI is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+
+#
+# UBI debugging options
+#
+# CONFIG_MTD_UBI_DEBUG is not set
# CONFIG_PARPORT is not set
# CONFIG_PNP is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP 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
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+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_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
CONFIG_IDE=m
CONFIG_IDE_MAX_HWIFS=4
CONFIG_BLK_DEV_IDE=m
#
-# Please see Documentation/ide.txt for help/info on IDE drives
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=m
# CONFIG_IDEDISK_MULTI_MODE is not set
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_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS is not set
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEFLOPPY=m
+CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y
#
# IDE chipset support/bugfixes
#
-# CONFIG_IDE_GENERIC is not set
-# CONFIG_BLK_DEV_PLATFORM is not set
-# CONFIG_IDE_ARM is not set
-
-#
-# Other IDE chipsets support
-#
-
-#
-# Note: most of these also require special kernel boot parameters
-#
-# CONFIG_BLK_DEV_4DRIVES is not set
-# CONFIG_BLK_DEV_ALI14XX is not set
-# CONFIG_BLK_DEV_DTC2278 is not set
-# CONFIG_BLK_DEV_HT6560B is not set
-# CONFIG_BLK_DEV_QD65XX is not set
-# CONFIG_BLK_DEV_UMC8672 is not set
+CONFIG_BLK_DEV_PLATFORM=m
# CONFIG_BLK_DEV_IDEDMA is not set
-CONFIG_IDE_ARCH_OBSOLETE_INIT=y
# CONFIG_BLK_DEV_HD is not set
#
@@ -663,8 +873,8 @@ CONFIG_IDE_ARCH_OBSOLETE_INIT=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=m
CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y
#
@@ -676,12 +886,12 @@ CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=m
-# CONFIG_CHR_DEV_SCH is not set
+CONFIG_CHR_DEV_SCH=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
-CONFIG_SCSI_MULTI_LUN=y
+# 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
@@ -690,30 +900,34 @@ CONFIG_SCSI_WAIT_SCAN=m
#
# 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_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_AHA152X is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_ADVANSYS is not set
-# CONFIG_SCSI_IN2000 is not set
-# CONFIG_SCSI_DTC3280 is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GENERIC_NCR5380 is not set
-# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
-# CONFIG_SCSI_NCR53C406A is not set
-# CONFIG_SCSI_PAS16 is not set
-# CONFIG_SCSI_PSI240I is not set
-# CONFIG_SCSI_QLOGIC_FAS is not set
-# CONFIG_SCSI_SYM53C416 is not set
-# CONFIG_SCSI_T128 is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-# CONFIG_ATA is not set
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+# CONFIG_SCSI_SAS_ATA is not set
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
+CONFIG_SCSI_SRP_ATTRS=m
+# CONFIG_SCSI_SRP_TGT_ATTRS is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_SATA_PMP=y
+CONFIG_ATA_SFF=y
+# CONFIG_SATA_MV is not set
+# CONFIG_PATA_LEGACY is not set
+CONFIG_PATA_PCMCIA=m
+# CONFIG_PATA_QDI is not set
+# CONFIG_PATA_WINBOND_VLB is not set
+# CONFIG_PATA_PLATFORM is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
@@ -722,29 +936,12 @@ CONFIG_NETDEVICES=y
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
-# CONFIG_VETH is not set
+CONFIG_VETH=m
# CONFIG_ARCNET is not set
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
+# CONFIG_NET_ETHERNET is not set
CONFIG_MII=m
-# CONFIG_AX88796 is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_NET_VENDOR_SMC is not set
-# CONFIG_SMC91X is not set
-# CONFIG_DM9000 is not set
-# CONFIG_NET_VENDOR_RACAL is not set
-# CONFIG_AT1700 is not set
-# CONFIG_DEPCA is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_ISA is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_NET_PCI is not set
-# CONFIG_B44 is not set
-CONFIG_NETDEV_1000=y
-CONFIG_NETDEV_10000=y
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
#
@@ -764,36 +961,56 @@ CONFIG_ATMEL=m
CONFIG_PCMCIA_ATMEL=m
CONFIG_AIRO_CS=m
CONFIG_PCMCIA_WL3501=m
+CONFIG_P54_COMMON=m
+# CONFIG_IWLWIFI_LEDS is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
CONFIG_HOSTAP_CS=m
+CONFIG_B43=m
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_PIO=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_DEBUG=y
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_RT2X00=m
CONFIG_NET_PCMCIA=y
-# CONFIG_PCMCIA_3C589 is not set
-# CONFIG_PCMCIA_3C574 is not set
-# CONFIG_PCMCIA_FMVJ18X is not set
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
CONFIG_PCMCIA_PCNET=m
-# CONFIG_PCMCIA_NMCLAN is not set
-# CONFIG_PCMCIA_SMC91C92 is not set
-# CONFIG_PCMCIA_XIRC2PS is not set
-# CONFIG_PCMCIA_AXNET is not set
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
# CONFIG_WAN is not set
+# CONFIG_ATM_DRIVERS 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_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+# CONFIG_PPPOATM is not set
# CONFIG_PPPOL2TP is not set
-# CONFIG_SLIP is not set
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED 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
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+CONFIG_NETCONSOLE=m
+# CONFIG_NETCONSOLE_DYNAMIC is not set
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_ISDN is not set
#
@@ -806,14 +1023,10 @@ CONFIG_INPUT=y
#
# Userland interfaces
#
-CONFIG_INPUT_MOUSEDEV=m
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640
-# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-CONFIG_INPUT_POWER=m
+CONFIG_INPUT_EVBUG=m
#
# Input Device Drivers
@@ -822,7 +1035,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ATKBD is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_LOCOMO=m
+CONFIG_KEYBOARD_LOCOMO=y
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
@@ -830,8 +1043,19 @@ CONFIG_KEYBOARD_LOCOMO=m
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# 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_UCB1400 is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=m
#
# Hardware I/O ports
@@ -846,13 +1070,14 @@ CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=m
-CONFIG_SERIAL_8250_CS=m
+# 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
@@ -875,17 +1100,46 @@ CONFIG_HW_RANDOM=m
#
# PCMCIA character devices
#
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
-# CONFIG_I2C is not set
-
-#
-# SPI support
-#
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_ALGOBIT=m
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ELEKTOR is not set
+CONFIG_I2C_GPIO=m
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_PCA_ISA is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_SENSORS_TSL2550 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
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
@@ -894,6 +1148,7 @@ CONFIG_SPI_MASTER=y
# SPI Master Controller Drivers
#
# CONFIG_SPI_BITBANG is not set
+CONFIG_SPI_LOCOMO=y
#
# SPI Protocol Masters
@@ -901,21 +1156,66 @@ CONFIG_SPI_MASTER=y
# CONFIG_SPI_AT25 is not set
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+CONFIG_HAVE_GPIO_LIB=y
+
+#
+# GPIO Support
+#
+# CONFIG_DEBUG_GPIO is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
+CONFIG_POWER_SUPPLY=m
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+# CONFIG_BATTERY_DS2760 is not set
# CONFIG_HWMON is not set
-# CONFIG_WATCHDOG is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_SA1100_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_WDT is not set
#
# Sonics Silicon Backplane
#
CONFIG_SSB_POSSIBLE=y
-# CONFIG_SSB is not set
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_ASIC3_DS1WM is not set
#
# Multimedia Capabilities Port drivers
@@ -923,22 +1223,49 @@ CONFIG_SSB_POSSIBLE=y
CONFIG_MCP=y
CONFIG_MCP_SA11X0=y
CONFIG_MCP_UCB1200=y
-CONFIG_MCP_UCB1200_TS=m
-# CONFIG_MCP_COLLIE_TS is not set
+# CONFIG_MCP_UCB1200_TS is not set
+CONFIG_MCP_COLLIE_TS=y
#
# Multimedia devices
#
+
+#
+# Multimedia core support
+#
CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
-CONFIG_VIDEO_V4L2=y
+# CONFIG_DVB_CORE is not set
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L1=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_SAA5246A is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_TUNER_3036 is not set
+# CONFIG_SOC_CAMERA is not set
CONFIG_RADIO_ADAPTERS=y
# CONFIG_RADIO_CADET is not set
# CONFIG_RADIO_RTRACK is not set
@@ -951,7 +1278,6 @@ CONFIG_RADIO_ADAPTERS=y
# CONFIG_RADIO_TRUST is not set
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set
-# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
#
@@ -969,8 +1295,8 @@ CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_DEFERRED_IO is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
@@ -1020,87 +1346,33 @@ CONFIG_FONT_8x8=y
#
# Sound
#
-CONFIG_SOUND=m
-
-#
-# 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=m
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# ALSA ARM devices
-#
-
-#
-# SPI devices
-#
-
-#
-# PCMCIA devices
-#
-# CONFIG_SND_VXPOCKET is not set
-# CONFIG_SND_PDAUDIOCF is not set
-
-#
-# System on Chip audio support
-#
-# CONFIG_SND_SOC is not set
-
-#
-# SoC Audio support for SuperH
-#
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
-# CONFIG_HIDRAW is not set
# CONFIG_USB_SUPPORT is not set
-CONFIG_MMC=m
-CONFIG_MMC_DEBUG=y
-CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD Card Drivers
#
-CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
#
# MMC/SD Host Controller Drivers
#
-CONFIG_MMC_SPI=m
+CONFIG_MMC_SPI=y
CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
#
# LED drivers
#
-CONFIG_LEDS_LOCOMO=m
+CONFIG_LEDS_LOCOMO=y
# CONFIG_LEDS_GPIO is not set
#
@@ -1108,10 +1380,14 @@ CONFIG_LEDS_LOCOMO=m
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
-# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
@@ -1119,22 +1395,40 @@ CONFIG_RTC_CLASS=m
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
# CONFIG_RTC_DRV_TEST is not set
#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+
+#
# SPI RTC drivers
#
-# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
#
# Platform RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_V3020 is not set
@@ -1142,33 +1436,50 @@ CONFIG_RTC_INTF_DEV=y
#
# on-CPU RTC drivers
#
-CONFIG_RTC_DRV_SA1100=m
+CONFIG_RTC_DRV_SA1100=y
+CONFIG_UIO=m
+CONFIG_UIO_SMX=m
#
# File systems
#
-CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
+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=m
-CONFIG_FS_MBCACHE=m
-# 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_EXT4DEV_FS=m
+CONFIG_EXT4DEV_FS_XATTR=y
+# CONFIG_EXT4DEV_FS_POSIX_ACL is not set
+# CONFIG_EXT4DEV_FS_SECURITY is not set
+CONFIG_JBD=y
+CONFIG_JBD2=m
+CONFIG_FS_MBCACHE=y
+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
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_POSIX_ACL is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_DEBUG is not set
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_DNOTIFY=y
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=m
@@ -1176,8 +1487,11 @@ CONFIG_FUSE_FS=m
#
# CD-ROM/DVD Filesystems
#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
+CONFIG_ISO9660_FS=m
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
@@ -1187,7 +1501,9 @@ 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
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
#
# Pseudo filesystems
@@ -1198,66 +1514,89 @@ CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
+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_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_AFFS_FS=m
+# CONFIG_ECRYPT_FS is not set
+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=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_SYSFS is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_JFFS2_ZLIB=y
-# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_LZO=y
CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# 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
+CONFIG_VXFS_FS=m
+CONFIG_MINIX_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
-# CONFIG_NFS_DIRECTIO is not set
-# CONFIG_NFSD is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
-# CONFIG_SUNRPC_BIND34 is not set
+CONFIG_SUNRPC_BIND34=y
CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_RPCSEC_GSS_SPKM3=m
CONFIG_SMB_FS=m
-CONFIG_SMB_NLS_DEFAULT=y
-CONFIG_SMB_NLS_REMOTE="cp437"
+# 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 is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS 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_AFS_DEBUG is not set
+CONFIG_9P_FS=m
#
# Partition Types
@@ -1281,7 +1620,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
@@ -1321,9 +1660,6 @@ CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
-CONFIG_INSTRUMENTATION=y
-# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
#
# Kernel hacking
@@ -1331,6 +1667,7 @@ CONFIG_INSTRUMENTATION=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
@@ -1341,6 +1678,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1356,81 +1694,127 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
CONFIG_FRAME_POINTER=y
-# CONFIG_FORCED_INLINING is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_SAMPLES is not set
# CONFIG_DEBUG_USER is not set
CONFIG_DEBUG_ERRORS=y
+# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_LL is not set
#
# Security options
#
-# CONFIG_KEYS is not set
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set
CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_HASH=m
CONFIG_CRYPTO_MANAGER=m
-CONFIG_CRYPTO_HMAC=m
-# CONFIG_CRYPTO_XCBC is not set
+CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_GF128MUL is not set
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_CBC=m
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_XTS is not set
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_DES=m
-# CONFIG_CRYPTO_FCRYPT is not set
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_SERPENT=m
+
+#
+# Ciphers
+#
CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-# CONFIG_CRYPTO_SEED is not set
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+
+#
+# Compression
+#
CONFIG_CRYPTO_DEFLATE=m
-# CONFIG_CRYPTO_LZO is not set
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_CAMELLIA is not set
-CONFIG_CRYPTO_TEST=m
-# CONFIG_CRYPTO_AUTHENC is not set
+CONFIG_CRYPTO_LZO=m
# CONFIG_CRYPTO_HW is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
+# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+# CONFIG_GENERIC_FIND_NEXT_BIT is not set
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
-CONFIG_CRC_ITU_T=m
+CONFIG_CRC_ITU_T=y
CONFIG_CRC32=y
-CONFIG_CRC7=m
+CONFIG_CRC7=y
CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=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
diff --git a/packages/linux/linux-rp-2.6.26/initramfs-config-collie b/packages/linux/linux-rp-2.6.26/initramfs-config-collie
new file mode 100644
index 0000000000..925d498b21
--- /dev/null
+++ b/packages/linux/linux-rp-2.6.26/initramfs-config-collie
@@ -0,0 +1,810 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.26
+# Thu Jul 24 23:13:04 2008
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_MMU=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=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_ARCH_SUPPORTS_AOUT=y
+CONFIG_ZONE_DMA=y
+CONFIG_ARCH_MTD_XIP=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+# CONFIG_ELF_CORE is not set
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_DMA_ATTRS is not set
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_MODULES is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_BSG 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"
+CONFIG_CLASSIC_RCU=y
+
+#
+# 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_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_ORION5X 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_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_MSM7X00A is not set
+
+#
+# SA11x0 Implementations
+#
+# CONFIG_SA1100_ASSABET is not set
+# CONFIG_SA1100_CERF is not set
+CONFIG_SA1100_COLLIE=y
+# 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_JORNADA720 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
+
+#
+# Boot options
+#
+
+#
+# Power management
+#
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_SA1100=y
+CONFIG_CPU_32v4=y
+CONFIG_CPU_ABRT_EV4=y
+CONFIG_CPU_PABRT_NOIFAR=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
+CONFIG_SHARP_LOCOMO=y
+CONFIG_SHARP_PARAM=y
+CONFIG_SHARP_SCOOP=y
+
+#
+# Bus support
+#
+CONFIG_ISA=y
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_PCCARD=y
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=y
+# CONFIG_PCMCIA_LOAD_CIS is not set
+# CONFIG_PCMCIA_IOCTL is not set
+
+#
+# PC-card bridges
+#
+# CONFIG_I82365 is not set
+# CONFIG_TCIC is not set
+CONFIG_PCMCIA_SA1100=y
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+# CONFIG_PREEMPT is not set
+CONFIG_HZ=100
+# CONFIG_AEABI is not set
+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=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_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_LEDS is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttySA0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 mem=64M fbcon=rotate:1 dyntick=enable debug"
+# CONFIG_XIP_KERNEL is not set
+CONFIG_KEXEC=y
+CONFIG_ATAGS_PROC=y
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_FPE_NWFPE is not set
+CONFIG_FPE_FASTFPE=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+# CONFIG_PM is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+
+#
+# Networking
+#
+# CONFIG_NET is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+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 is not set
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+# CONFIG_MTD_CHAR is not set
+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
+# CONFIG_MTD_OOPS 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_CFI_NOSWAP is not set
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP 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 is not set
+# 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_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_SA1100=y
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# 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
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+# CONFIG_PNP is not set
+# CONFIG_BLK_DEV is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=y
+CONFIG_IDE_MAX_HWIFS=4
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+# CONFIG_BLK_DEV_IDEDISK is not set
+# 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
+# CONFIG_IDE_PROC_FS is not set
+
+#
+# IDE chipset support/bugfixes
+#
+# CONFIG_BLK_DEV_PLATFORM 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_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV 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_LOCOMO=y
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# 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_DEVKMEM 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_UNIX98_PTYS is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 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
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+# CONFIG_I2C is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+CONFIG_SPI_LOCOMO=y
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_AT25 is not set
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_HAVE_GPIO_LIB=y
+
+#
+# GPIO Support
+#
+
+#
+# I2C GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_ASIC3_DS1WM is not set
+
+#
+# Multimedia Capabilities Port drivers
+#
+# CONFIG_MCP_SA11X0 is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+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_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# 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_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_CORGI is not set
+CONFIG_BACKLIGHT_LOCOMO=y
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT 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_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+# 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 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+# CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD Host Controller Drivers
+#
+CONFIG_MMC_SPI=y
+# CONFIG_NEW_LEDS is not set
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+# CONFIG_UIO 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_DNOTIFY is not set
+# CONFIG_INOTIFY is not set
+# CONFIG_QUOTA 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_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# 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_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_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_SYSFS is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_JFFS2_RUBIN=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# 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
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_NLS is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+# 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 is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_SAMPLES is not set
+# CONFIG_DEBUG_USER is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+# CONFIG_GENERIC_FIND_NEXT_BIT is not set
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+CONFIG_CRC7=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/packages/linux/linux-rp.inc b/packages/linux/linux-rp.inc
index 2309235139..28f3d0dc00 100644
--- a/packages/linux/linux-rp.inc
+++ b/packages/linux/linux-rp.inc
@@ -24,6 +24,7 @@ CMDLINE_CON_collie = "console=ttySA0,115200n8 console=tty1 noinitrd"
CMDLINE_CON_qemuarm = "console=ttyAMA0,115200n8 console=tty1 noinitrd"
CMDLINE_CON_zylonite = "console=ttyS0,38400"
CMDLINE_ROOT ?= "root=/dev/mtdblock2 rootfstype=jffs2"
+CMDLINE_ROOT_collie = "root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=3 rw"
CMDLINE_ROOT_spitz ?= "root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw"
#CMDLINE_ROOT_spitz = "root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=3 rw"
CMDLINE_OTHER = "dyntick=enable"
diff --git a/packages/linux/linux-rp_2.6.24.bb b/packages/linux/linux-rp_2.6.24.bb
index 8c5d2f8ea5..ca249ef7ff 100644
--- a/packages/linux/linux-rp_2.6.24.bb
+++ b/packages/linux/linux-rp_2.6.24.bb
@@ -102,12 +102,10 @@ SRC_URI_append_collie = "\
${TKSRC}/pcmcia_suspend.patch;patch=1 \
${TKSRC}/locomo_spi-6.patch;patch=1 \
${TKSRC}/config.patch;patch=1 \
- ${TKSRC}/locomokeyb-2.patch;patch=1 \
${TKSRC}/mmc-spi.patch;patch=1 \
${TKSRC}/linux-2.6.24-SIMpad-rtc-sa1100.patch;patch=1 \
${TKSRC}/sa1100_spinlock.patch;patch=1 \
${TKSRC}/sa1100-dma.patch;patch=1 \
- ${TKSRC}/sa1100_udc_g_ether-2.patch;patch=1 \
"
SRC_URI_append_poodle = "\
diff --git a/packages/linux/linux-rp_2.6.26.bb b/packages/linux/linux-rp_2.6.26.bb
index 74ed5920e8..6284f0510f 100644
--- a/packages/linux/linux-rp_2.6.26.bb
+++ b/packages/linux/linux-rp_2.6.26.bb
@@ -6,6 +6,7 @@ DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_qemuarm = "-1"
DEFAULT_PREFERENCE_qemux86 = "-1"
DEFAULT_PREFERENCE_spitz = "1"
+DEFAULT_PREFERENCE_collie = "1"
# Handy URLs
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046
@@ -59,10 +60,11 @@ SRC_URI = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2 \
file://defconfig-qemux86 \
file://defconfig-bootcdx86 \
file://defconfig-htcuniversal \
+ file://defconfig-collie \
+ file://initramfs-config-collie \
file://defconfig-zylonite"
# Disabled until the patchset is updated:
# file://defconfig-tosa
-# file://defconfig-collie
# file://defconfig-poodle
@@ -78,23 +80,8 @@ SRC_URI = "${KERNELORG_MIRROR}pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2 \
SRC_URI_append_collie = "\
- ${TKSRC}/mtd-sharp-flash-hack-r4.patch;patch=1 \
- ${TKSRC}/mcp-sa11x0-r0.patch;patch=1 \
- ${TKSRC}/locomo-r1.patch;patch=1 \
- ${TKSRC}/collie-kexec-r1.patch;patch=1 \
- ${TKSRC}/sharpsl_pm-4.patch;patch=1 \
- ${TKSRC}/collie_pm-3.patch;patch=1 \
- ${TKSRC}/ucb1x00_suspend.patch;patch=1 \
- ${TKSRC}/collie-ts.patch;patch=1 \
- ${TKSRC}/pcmcia_suspend.patch;patch=1 \
- ${TKSRC}/locomo_spi-6.patch;patch=1 \
- ${TKSRC}/config.patch;patch=1 \
- ${TKSRC}/locomokeyb-2.patch;patch=1 \
- ${TKSRC}/mmc-spi.patch;patch=1 \
- ${TKSRC}/linux-2.6.24-SIMpad-rtc-sa1100.patch;patch=1 \
- ${TKSRC}/sa1100_spinlock.patch;patch=1 \
- ${TKSRC}/sa1100-dma.patch;patch=1 \
- ${TKSRC}/sa1100_udc_g_ether-2.patch;patch=1 \
+ file://collie.patch;patch=1 \
+ file://collie_keymap.patch;patch=1 \
"
SRC_URI_append_poodle = "\
diff --git a/packages/lirc/lirc-modules_0.8.3+cvs20080713.bb b/packages/lirc/lirc-modules_0.8.3+cvs20080713.bb
new file mode 100644
index 0000000000..7dfba0d789
--- /dev/null
+++ b/packages/lirc/lirc-modules_0.8.3+cvs20080713.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls. This package contains the lirc kernel modules."
+SECTION = "base"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.lirc.org"
+LICENSE = "GPL"
+DEPENDS = "virtual/kernel fakeroot-native setserial"
+PR = "r0"
+
+SRCDATE=${@bb.data.getVar('PV', d, 1)[9:]}
+
+SRC_URI = "cvs://anonymous@lirc.cvs.sourceforge.net/cvsroot/lirc;module=lirc;method=pserver;cvsdate=${SRCDATE}"
+S = "${WORKDIR}/lirc"
+
+
+inherit autotools module
+
+require lirc-config.inc
+
+MAKE_TARGETS = "KERNEL_PATH=${STAGING_KERNEL_DIR} MAKE='make V=1' -C drivers"
+
+fakeroot do_install() {
+ oe_runmake -C drivers DESTDIR="${D}" moduledir="/lib/modules/${KERNEL_VERSION}/lirc" install
+ rm -rf ${D}/dev
+}
+
+# this is for distributions that don't use udev
+pkg_postinst_append() {
+if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi
+}
+
+FILES_${PN} = "/lib/modules"
diff --git a/packages/mesa/files/mklib-cross.patch b/packages/mesa/files/mklib-cross.patch
new file mode 100644
index 0000000000..fbe86e3c4d
--- /dev/null
+++ b/packages/mesa/files/mklib-cross.patch
@@ -0,0 +1,14 @@
+--- s/bin/mklib~ 2008-02-19 15:30:18.000000000 +0000
++++ s/bin/mklib 2008-07-27 11:15:25.000000000 +0100
+@@ -204,9 +204,9 @@
+ if [ "x$LINK" = "x" ] ; then
+ # -linker was not specified so set default link command now
+ if [ $CPLUSPLUS = 1 ] ; then
+- LINK=g++
++ LINK=$CXX
+ else
+- LINK=gcc
++ LINK=$CC
+ fi
+ fi
+
diff --git a/packages/mesa/mesa-dri_6.5.2.bb b/packages/mesa/mesa-dri_6.5.2.bb
index fffbfee780..29d169b1a8 100644
--- a/packages/mesa/mesa-dri_6.5.2.bb
+++ b/packages/mesa/mesa-dri_6.5.2.bb
@@ -1,5 +1,7 @@
include mesa-common.inc
+SRC_URI += " file://mklib-cross.patch;patch=1"
+
FILESPATH = "${FILE_DIRNAME}/mesa-${PV}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
PACKAGES_DYNAMIC = "mesa-dri-driver-*"
diff --git a/packages/mesa/mesa-dri_7.0.3.bb b/packages/mesa/mesa-dri_7.0.3.bb
new file mode 100644
index 0000000000..87b3dcf9e1
--- /dev/null
+++ b/packages/mesa/mesa-dri_7.0.3.bb
@@ -0,0 +1,42 @@
+include mesa-common.inc
+
+# suppress mklib-rpath-link patch from mesa-common
+SRC_URI = "${SOURCEFORGE_MIRROR}/mesa3d/MesaLib-${PV}.tar.bz2 file://mklib-cross.patch;patch=1"
+
+FILESPATH = "${FILE_DIRNAME}/mesa-${PV}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
+
+PACKAGES_DYNAMIC = "mesa-dri-driver-*"
+
+PR = "r0"
+
+DEPENDS += "libdrm"
+# DRI is useless without the kernel drivers
+RRECOMMENDS += " kernel-module-drm kernel-module-radeon "
+
+do_configure() {
+ cd configs
+
+ ln -sf linux-dri 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
+ sed -e "s%OPT_FLAGS *= *.*%OPT_FLAGS = ${TARGET_CFLAGS}%" -i current
+ sed -e "s%X11_INCLUDES *= *.*%X11_INCLUDES = -I${STAGING_INCDIR}/X11%" -i current
+ sed -e "s%EXTRA_LIB_PATH *= *.*%EXTRA_LIB_PATH = ${LDFLAGS}%" -i current
+ sed -i s:\$\(CC\):gcc:g ../src/mesa/x86/Makefile
+ echo "SRC_DIRS = mesa" >> current
+ echo "DRI_DRIVER_INSTALL_DIR = ${D}${libdir}/dri" >> current
+}
+
+do_install() {
+ oe_runmake -C src/mesa/drivers/dri install
+}
+
+FILES_${PN}-dbg += "${libdir}/dri/.debug"
+
+python populate_packages_prepend () {
+ import re, os.path
+
+ do_split_packages(d, root=bb.data.expand('${libdir}/dri', d), file_regex='(.*)_dri\.so', output_pattern='mesa-dri-driver-%s', description='%s DRI driver')
+}
+
diff --git a/packages/meta/external-toolchain.bb b/packages/meta/external-toolchain.bb
index c7e1d5d3c4..ad30ff7c50 100644
--- a/packages/meta/external-toolchain.bb
+++ b/packages/meta/external-toolchain.bb
@@ -6,6 +6,7 @@ PROVIDES = "\
linux-libc-headers \
virtual/${TARGET_PREFIX}gcc \
virtual/${TARGET_PREFIX}gcc-initial \
+ virtual/${TARGET_PREFIX}gcc-intermediate \
virtual/${TARGET_PREFIX}binutils \
virtual/${TARGET_PREFIX}libc-for-gcc \
virtual/libc \
diff --git a/packages/mono/README b/packages/mono/README
index 61bba80c07..7f777718c1 100644
--- a/packages/mono/README
+++ b/packages/mono/README
@@ -1,6 +1,12 @@
Notes on Mono support in OE.
===============================
+Mono 1.9.1 status
+
+- mono-native and mono-mcs-intermediate error out during compile, but in a
+ dev shell they compile fine -- very strange.
+
+===============================
Cross Compiling Mono
Cross compiling mono requires a two stage build because the mono mcs directory
diff --git a/packages/mono/files/libgc_cppflags.patch b/packages/mono/files/libgc_cppflags.patch
new file mode 100644
index 0000000000..d4a51179d1
--- /dev/null
+++ b/packages/mono/files/libgc_cppflags.patch
@@ -0,0 +1,46 @@
+Index: mono-1.9.1/configure.in
+===================================================================
+--- mono-1.9.1.orig/configure.in 2008-07-16 23:37:52.000000000 -0400
++++ mono-1.9.1/configure.in 2008-07-16 23:38:23.000000000 -0400
+@@ -660,13 +660,6 @@
+ ;;
+
+ xincluded)
+- AC_CONFIG_SUBDIRS(libgc)
+-
+- # Pass CPPFLAGS to libgc configure
+- # Maybe we should use a separate variable for this to avoid passing useless and
+- # potentially problematic defines to libgc (like -D_FILE_OFFSET_BITS=64)
+- export CPPFLAGS
+-
+ found_boehm=yes
+ gc_headers=yes
+ use_included_gc=yes
+@@ -714,9 +707,6 @@
+ CPPFLAGS="$CPPFLAGS -DLARGE_CONFIG"
+ fi
+
+-# tell libgc/configure about what we want
+-ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args"
+-
+ AM_CONDITIONAL(INCLUDED_LIBGC, test x$use_included_gc = xyes)
+ AC_SUBST(LIBGC_CFLAGS)
+ AC_SUBST(LIBGC_LIBS)
+@@ -1970,6 +1960,17 @@
+ CPPFLAGS="$CPPFLAGS -DNO_UNALIGNED_ACCESS"
+ fi
+
++case "x$gc" in
++ xincluded)
++ # Pass CPPFLAGS to libgc configure
++ # We should use a separate variable for this to avoid passing useless and
++ # potentially problematic defines to libgc (like -D_FILE_OFFSET_BITS=64)
++ # This should be executed late so we pick up the final version of CPPFLAGS
++ ac_configure_args="$ac_configure_args --disable-embed-check --with-libgc-threads=$libgc_threads $libgc_configure_args \"CPPFLAGS=$CPPFLAGS\""
++ AC_CONFIG_SUBDIRS(libgc)
++ ;;
++esac
++
+ PREVIEW=yes
+ AC_ARG_WITH(preview, [ --with-preview=yes,no If you want to install the 2.0 FX preview],[
+ if test x$with_preview = xno; then
diff --git a/packages/mono/mono-1.9.1/.mtn2git_empty b/packages/mono/mono-1.9.1/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mono/mono-1.9.1/.mtn2git_empty
diff --git a/packages/mono/mono-mcs-intermediate_1.9.1.bb b/packages/mono/mono-mcs-intermediate_1.9.1.bb
new file mode 100644
index 0000000000..afa2d2be32
--- /dev/null
+++ b/packages/mono/mono-mcs-intermediate_1.9.1.bb
@@ -0,0 +1,15 @@
+# This is a straw-man recipe for step 1 in the two-step build of
+# mono. Because it's impossible to build the mcs directory
+# in cross-compile mode, this recipe will do a native build,
+# then tar the resulting install tree for usage by the mono
+# package in step 2.
+# See http://www.mono-project.com/Mono:ARM
+
+require mono_1.9.1.inc
+require mono-mcs-intermediate.inc
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI += "file://libgc_cppflags.patch;patch=1"
+
+
diff --git a/packages/mono/mono-native_1.9.1.bb b/packages/mono/mono-native_1.9.1.bb
new file mode 100644
index 0000000000..3c18cf7601
--- /dev/null
+++ b/packages/mono/mono-native_1.9.1.bb
@@ -0,0 +1,27 @@
+require mono_1.9.1.inc
+PR = "r3"
+DEPENDS = "glib-2.0-native perl-native"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI += "file://mono-fix-libdir-path.patch;patch=1 \
+ file://libgc_cppflags.patch;patch=1 \
+ "
+
+PARALLEL_MAKE = ""
+
+inherit native
+
+do_stage_prepend() {
+ install -m 755 ${S}/mono/monoburg/monoburg ${STAGING_BINDIR}
+}
+
+do_fix_libtool_name() {
+ # inherit native will make that all native tools that are being
+ # built are prefixed with something like "i686-linux-",
+ # including libtool. Fix up some hardcoded libtool names:
+ for i in "${S}"/runtime/*-wrapper.in; do
+ sed -e "s/libtool/${BUILD_SYS}-libtool/" -i "${i}"
+ done
+}
+addtask fix_libtool_name after do_patch before do_configure
diff --git a/packages/mono/mono_1.9.1-files.inc b/packages/mono/mono_1.9.1-files.inc
new file mode 100644
index 0000000000..461eb85ff5
--- /dev/null
+++ b/packages/mono/mono_1.9.1-files.inc
@@ -0,0 +1,1426 @@
+# This is a generated file, please do not edit directly
+# Use collect-files.py instead. -- Henryk <henryk@openmoko.org>
+FILES_mono-jit-dbg = "/usr/bin/mono*.mdb \
+ /usr/bin/mono*/*.mdb"
+FILES_mono-jit = "/usr/bin/mono"
+FILES_mono-gac-dbg = "/usr/bin/gacutil*.mdb \
+ /usr/bin/gacutil*/*.mdb \
+ /usr/lib/mono/1.0/gacutil.exe*.mdb \
+ /usr/lib/mono/1.0/gacutil.exe*/*.mdb"
+FILES_mono-gac = "/usr/bin/gacutil \
+ /usr/lib/mono/1.0/gacutil.exe"
+FILES_mono-mjs-dbg = "/usr/bin/mjs*.mdb \
+ /usr/bin/mjs*/*.mdb \
+ /usr/lib/mono/1.0/mjs.exe*.mdb \
+ /usr/lib/mono/1.0/mjs.exe*/*.mdb"
+FILES_mono-mjs = "/usr/bin/mjs \
+ /usr/lib/mono/1.0/mjs.exe*"
+FILES_mono-gmcs-dbg = "/usr/bin/gmcs*.mdb \
+ /usr/bin/gmcs*/*.mdb \
+ /usr/lib/mono/2.0/gmcs.exe*.mdb \
+ /usr/lib/mono/2.0/gmcs.exe*/*.mdb"
+FILES_mono-gmcs = "/usr/bin/gmcs \
+ /usr/lib/mono/2.0/gmcs.exe*"
+FILES_mono-utils-dbg = "/usr/bin/pedump*.mdb \
+ /usr/bin/pedump*/*.mdb \
+ /usr/bin/monodis*.mdb \
+ /usr/bin/monodis*/*.mdb \
+ /usr/bin/monograph*.mdb \
+ /usr/bin/monograph*/*.mdb \
+ /usr/bin/mono-find-provides*.mdb \
+ /usr/bin/mono-find-provides*/*.mdb \
+ /usr/bin/mono-find-requires*.mdb \
+ /usr/bin/mono-find-requires*/*.mdb"
+FILES_mono-utils = "/usr/bin/pedump \
+ /usr/bin/monodis \
+ /usr/bin/monograph \
+ /usr/bin/mono-find-provides \
+ /usr/bin/mono-find-requires"
+FILES_libmono-peapi1.0-cil-dbg = "/usr/lib/mono/gac/PEAPI/1.0.*/*.mdb \
+ /usr/lib/mono/gac/PEAPI/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/PEAPI/1.0.*/.debug/ \
+ /usr/lib/mono/gac/PEAPI/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/PEAPI.dll*.mdb \
+ /usr/lib/mono/1.0/PEAPI.dll*/*.mdb"
+FILES_libmono-peapi1.0-cil = "/usr/lib/mono/gac/PEAPI/1.0.*/ \
+ /usr/lib/mono/1.0/PEAPI.dll"
+FILES_libmono-cairo1.0-cil-dbg = "/usr/lib/mono/gac/Mono.Cairo/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Cairo/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Cairo/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Cairo/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Mono.Cairo.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Cairo.dll*/*.mdb \
+ /usr/lib/pkgconfig/mono-cairo.pc*.mdb \
+ /usr/lib/pkgconfig/mono-cairo.pc*/*.mdb"
+FILES_libmono-cairo1.0-cil = "/usr/lib/mono/gac/Mono.Cairo/1.0.*/ \
+ /usr/lib/mono/1.0/Mono.Cairo.dll \
+ /usr/lib/pkgconfig/mono-cairo.pc"
+FILES_libmono-system-web2.0-cil-dbg = "/usr/lib/mono/gac/System.Web/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Web/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Web/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Web/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Web.Services/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Web.Services/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Web.Services/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Web.Services/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/2.0/System.Web.dll*.mdb \
+ /usr/lib/mono/2.0/System.Web.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Web.Services.dll*.mdb \
+ /usr/lib/mono/2.0/System.Web.Services.dll*/*.mdb"
+FILES_libmono-system-web2.0-cil = "/usr/lib/mono/gac/System.Web/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Web.Services/2.0.0.0__*/ \
+ /usr/lib/mono/2.0/System.Web.dll \
+ /usr/lib/mono/2.0/System.Web.Services.dll"
+FILES_mono-1.0-devel-dbg = "/usr/bin/al*.mdb \
+ /usr/bin/al*/*.mdb \
+ /usr/bin/caspol*.mdb \
+ /usr/bin/caspol*/*.mdb \
+ /usr/bin/cert2spc*.mdb \
+ /usr/bin/cert2spc*/*.mdb \
+ /usr/bin/certmgr*.mdb \
+ /usr/bin/certmgr*/*.mdb \
+ /usr/bin/chktrust*.mdb \
+ /usr/bin/chktrust*/*.mdb \
+ /usr/bin/cilc*.mdb \
+ /usr/bin/cilc*/*.mdb \
+ /usr/bin/disco*.mdb \
+ /usr/bin/disco*/*.mdb \
+ /usr/bin/dtd2xsd*.mdb \
+ /usr/bin/dtd2xsd*/*.mdb \
+ /usr/bin/dtd2rng*.mdb \
+ /usr/bin/dtd2rng*/*.mdb \
+ /usr/bin/genxs*.mdb \
+ /usr/bin/genxs*/*.mdb \
+ /usr/bin/ilasm*.mdb \
+ /usr/bin/ilasm*/*.mdb \
+ /usr/bin/installvst*.mdb \
+ /usr/bin/installvst*/*.mdb \
+ /usr/bin/macpack*.mdb \
+ /usr/bin/macpack*/*.mdb \
+ /usr/bin/mkbundle*.mdb \
+ /usr/bin/mkbundle*/*.mdb \
+ /usr/bin/mono-api-diff*.mdb \
+ /usr/bin/mono-api-diff*/*.mdb \
+ /usr/bin/mono-api-info*.mdb \
+ /usr/bin/mono-api-info*/*.mdb \
+ /usr/bin/mono-shlib-cop*.mdb \
+ /usr/bin/mono-shlib-cop*/*.mdb \
+ /usr/bin/mono-xmltool*.mdb \
+ /usr/bin/mono-xmltool*/*.mdb \
+ /usr/bin/monop*.mdb \
+ /usr/bin/monop*/*.mdb \
+ /usr/bin/monolinker*.mdb \
+ /usr/bin/monolinker*/*.mdb \
+ /usr/bin/mozroots*.mdb \
+ /usr/bin/mozroots*/*.mdb \
+ /usr/bin/permview*.mdb \
+ /usr/bin/permview*/*.mdb \
+ /usr/bin/resgen*.mdb \
+ /usr/bin/resgen*/*.mdb \
+ /usr/bin/secutil*.mdb \
+ /usr/bin/secutil*/*.mdb \
+ /usr/bin/setreg*.mdb \
+ /usr/bin/setreg*/*.mdb \
+ /usr/bin/signcode*.mdb \
+ /usr/bin/signcode*/*.mdb \
+ /usr/bin/sn*.mdb \
+ /usr/bin/sn*/*.mdb \
+ /usr/bin/soapsuds*.mdb \
+ /usr/bin/soapsuds*/*.mdb \
+ /usr/bin/sqlsharp*.mdb \
+ /usr/bin/sqlsharp*/*.mdb \
+ /usr/bin/wsdl*.mdb \
+ /usr/bin/wsdl*/*.mdb \
+ /usr/bin/xsd*.mdb \
+ /usr/bin/xsd*/*.mdb \
+ /usr/lib/mono/1.0/CorCompare.exe*.mdb \
+ /usr/lib/mono/1.0/CorCompare.exe*/*.mdb \
+ /usr/lib/mono/1.0/al.exe*.mdb \
+ /usr/lib/mono/1.0/al.exe*/*.mdb \
+ /usr/lib/mono/1.0/browsercaps-updater.exe*.mdb \
+ /usr/lib/mono/1.0/browsercaps-updater.exe*/*.mdb \
+ /usr/lib/mono/1.0/caspol.exe*.mdb \
+ /usr/lib/mono/1.0/caspol.exe*/*.mdb \
+ /usr/lib/mono/1.0/cert2spc.exe*.mdb \
+ /usr/lib/mono/1.0/cert2spc.exe*/*.mdb \
+ /usr/lib/mono/1.0/certmgr.exe*.mdb \
+ /usr/lib/mono/1.0/certmgr.exe*/*.mdb \
+ /usr/lib/mono/1.0/chktrust.exe*.mdb \
+ /usr/lib/mono/1.0/chktrust.exe*/*.mdb \
+ /usr/lib/mono/1.0/cilc.exe*.mdb \
+ /usr/lib/mono/1.0/cilc.exe*/*.mdb \
+ /usr/lib/mono/1.0/culevel.exe*.mdb \
+ /usr/lib/mono/1.0/culevel.exe*/*.mdb \
+ /usr/lib/mono/1.0/disco.exe*.mdb \
+ /usr/lib/mono/1.0/disco.exe*/*.mdb \
+ /usr/lib/mono/1.0/dtd2rng.exe*.mdb \
+ /usr/lib/mono/1.0/dtd2rng.exe*/*.mdb \
+ /usr/lib/mono/1.0/dtd2xsd.exe*.mdb \
+ /usr/lib/mono/1.0/dtd2xsd.exe*/*.mdb \
+ /usr/lib/mono/1.0/genxs.exe*.mdb \
+ /usr/lib/mono/1.0/genxs.exe*/*.mdb \
+ /usr/lib/mono/1.0/ictool.exe*.mdb \
+ /usr/lib/mono/1.0/ictool.exe*/*.mdb \
+ /usr/lib/mono/1.0/ilasm.exe*.mdb \
+ /usr/lib/mono/1.0/ilasm.exe*/*.mdb \
+ /usr/lib/mono/1.0/installvst.exe*.mdb \
+ /usr/lib/mono/1.0/installvst.exe*/*.mdb \
+ /usr/lib/mono/1.0/macpack.exe*.mdb \
+ /usr/lib/mono/1.0/macpack.exe*/*.mdb \
+ /usr/lib/mono/1.0/makecert.exe*.mdb \
+ /usr/lib/mono/1.0/makecert.exe*/*.mdb \
+ /usr/lib/mono/1.0/mkbundle.exe*.mdb \
+ /usr/lib/mono/1.0/mkbundle.exe*/*.mdb \
+ /usr/lib/mono/1.0/mono-api-diff.exe*.mdb \
+ /usr/lib/mono/1.0/mono-api-diff.exe*/*.mdb \
+ /usr/lib/mono/1.0/mono-api-info.exe*.mdb \
+ /usr/lib/mono/1.0/mono-api-info.exe*/*.mdb \
+ /usr/lib/mono/1.0/mono-shlib-cop.exe*.mdb \
+ /usr/lib/mono/1.0/mono-shlib-cop.exe*/*.mdb \
+ /usr/lib/mono/1.0/mono-xmltool.exe*.mdb \
+ /usr/lib/mono/1.0/mono-xmltool.exe*/*.mdb \
+ /usr/lib/mono/1.0/monolinker.exe*.mdb \
+ /usr/lib/mono/1.0/monolinker.exe*/*.mdb \
+ /usr/lib/mono/1.0/monop.exe*.mdb \
+ /usr/lib/mono/1.0/monop.exe*/*.mdb \
+ /usr/lib/mono/1.0/mozroots.exe*.mdb \
+ /usr/lib/mono/1.0/mozroots.exe*/*.mdb \
+ /usr/lib/mono/1.0/permview.exe*.mdb \
+ /usr/lib/mono/1.0/permview.exe*/*.mdb \
+ /usr/lib/mono/1.0/resgen.exe*.mdb \
+ /usr/lib/mono/1.0/resgen.exe*/*.mdb \
+ /usr/lib/mono/1.0/secutil.exe*.mdb \
+ /usr/lib/mono/1.0/secutil.exe*/*.mdb \
+ /usr/lib/mono/1.0/setreg.exe*.mdb \
+ /usr/lib/mono/1.0/setreg.exe*/*.mdb \
+ /usr/lib/mono/1.0/signcode.exe*.mdb \
+ /usr/lib/mono/1.0/signcode.exe*/*.mdb \
+ /usr/lib/mono/1.0/sn.exe*.mdb \
+ /usr/lib/mono/1.0/sn.exe*/*.mdb \
+ /usr/lib/mono/1.0/soapsuds.exe*.mdb \
+ /usr/lib/mono/1.0/soapsuds.exe*/*.mdb \
+ /usr/lib/mono/1.0/sqlsharp.exe*.mdb \
+ /usr/lib/mono/1.0/sqlsharp.exe*/*.mdb \
+ /usr/lib/mono/1.0/wsdl.exe*.mdb \
+ /usr/lib/mono/1.0/wsdl.exe*/*.mdb \
+ /usr/lib/mono/1.0/xsd.exe*.mdb \
+ /usr/lib/mono/1.0/xsd.exe*/*.mdb"
+FILES_mono-1.0-devel = "/usr/bin/al \
+ /usr/bin/caspol \
+ /usr/bin/cert2spc \
+ /usr/bin/certmgr \
+ /usr/bin/chktrust \
+ /usr/bin/cilc \
+ /usr/bin/disco \
+ /usr/bin/dtd2xsd \
+ /usr/bin/dtd2rng \
+ /usr/bin/genxs \
+ /usr/bin/ilasm \
+ /usr/bin/installvst \
+ /usr/bin/macpack \
+ /usr/bin/mkbundle \
+ /usr/bin/mono-api-diff \
+ /usr/bin/mono-api-info \
+ /usr/bin/mono-shlib-cop \
+ /usr/bin/mono-xmltool \
+ /usr/bin/monop \
+ /usr/bin/monolinker \
+ /usr/bin/mozroots \
+ /usr/bin/permview \
+ /usr/bin/resgen \
+ /usr/bin/secutil \
+ /usr/bin/setreg \
+ /usr/bin/signcode \
+ /usr/bin/sn \
+ /usr/bin/soapsuds \
+ /usr/bin/sqlsharp \
+ /usr/bin/wsdl \
+ /usr/bin/xsd \
+ /usr/lib/mono/1.0/CorCompare.exe \
+ /usr/lib/mono/1.0/al.exe \
+ /usr/lib/mono/1.0/browsercaps-updater.exe \
+ /usr/lib/mono/1.0/caspol.exe \
+ /usr/lib/mono/1.0/cert2spc.exe \
+ /usr/lib/mono/1.0/certmgr.exe \
+ /usr/lib/mono/1.0/chktrust.exe \
+ /usr/lib/mono/1.0/cilc.exe \
+ /usr/lib/mono/1.0/culevel.exe \
+ /usr/lib/mono/1.0/disco.exe \
+ /usr/lib/mono/1.0/dtd2rng.exe \
+ /usr/lib/mono/1.0/dtd2xsd.exe \
+ /usr/lib/mono/1.0/genxs.exe \
+ /usr/lib/mono/1.0/ictool.exe \
+ /usr/lib/mono/1.0/ilasm.exe \
+ /usr/lib/mono/1.0/installvst.exe \
+ /usr/lib/mono/1.0/macpack.exe \
+ /usr/lib/mono/1.0/makecert.exe \
+ /usr/lib/mono/1.0/mkbundle.exe \
+ /usr/lib/mono/1.0/mono-api-diff.exe \
+ /usr/lib/mono/1.0/mono-api-info.exe \
+ /usr/lib/mono/1.0/mono-shlib-cop.exe* \
+ /usr/lib/mono/1.0/mono-xmltool.exe \
+ /usr/lib/mono/1.0/monolinker.exe \
+ /usr/lib/mono/1.0/monop.exe \
+ /usr/lib/mono/1.0/mozroots.exe \
+ /usr/lib/mono/1.0/permview.exe \
+ /usr/lib/mono/1.0/resgen.exe \
+ /usr/lib/mono/1.0/secutil.exe \
+ /usr/lib/mono/1.0/setreg.exe \
+ /usr/lib/mono/1.0/signcode.exe \
+ /usr/lib/mono/1.0/sn.exe \
+ /usr/lib/mono/1.0/soapsuds.exe \
+ /usr/lib/mono/1.0/sqlsharp.exe \
+ /usr/lib/mono/1.0/wsdl.exe \
+ /usr/lib/mono/1.0/xsd.exe"
+FILES_prj2make-sharp-dbg = "/usr/bin/prj2make*.mdb \
+ /usr/bin/prj2make*/*.mdb \
+ /usr/lib/mono/1.0/prj2make.exe*.mdb \
+ /usr/lib/mono/1.0/prj2make.exe*/*.mdb"
+FILES_prj2make-sharp = "/usr/bin/prj2make \
+ /usr/lib/mono/1.0/prj2make.exe*"
+FILES_libmono-accessibility2.0-cil-dbg = "/usr/lib/mono/gac/Accessibility/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Accessibility/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Accessibility/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Accessibility/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Accessibility.dll*.mdb \
+ /usr/lib/mono/2.0/Accessibility.dll*/*.mdb"
+FILES_libmono-accessibility2.0-cil = "/usr/lib/mono/gac/Accessibility/2.0.*/ \
+ /usr/lib/mono/2.0/Accessibility.dll"
+FILES_libmono-microsoft7.0-cil-dbg = "/usr/lib/mono/gac/Microsoft.JScript/7.0.*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.JScript/7.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.JScript/7.0.*/.debug/ \
+ /usr/lib/mono/gac/Microsoft.JScript/7.0.*/../.debug/ \
+ /usr/lib/mono/gac/Microsoft.VisualC/7.0.*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.VisualC/7.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.VisualC/7.0.*/.debug/ \
+ /usr/lib/mono/gac/Microsoft.VisualC/7.0.*/../.debug/ \
+ /usr/lib/mono/gac/Microsoft.Vsa/7.0.*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.Vsa/7.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.Vsa/7.0.*/.debug/ \
+ /usr/lib/mono/gac/Microsoft.Vsa/7.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Microsoft.JScript.dll*.mdb \
+ /usr/lib/mono/1.0/Microsoft.JScript.dll*/*.mdb \
+ /usr/lib/mono/1.0/Microsoft.VisualC.dll*.mdb \
+ /usr/lib/mono/1.0/Microsoft.VisualC.dll*/*.mdb \
+ /usr/lib/mono/1.0/Microsoft.Vsa.dll*.mdb \
+ /usr/lib/mono/1.0/Microsoft.Vsa.dll*/*.mdb"
+FILES_libmono-microsoft7.0-cil = "/usr/lib/mono/gac/Microsoft.JScript/7.0.*/ \
+ /usr/lib/mono/gac/Microsoft.VisualC/7.0.*/ \
+ /usr/lib/mono/gac/Microsoft.Vsa/7.0.*/ \
+ /usr/lib/mono/1.0/Microsoft.JScript.dll \
+ /usr/lib/mono/1.0/Microsoft.VisualC.dll \
+ /usr/lib/mono/1.0/Microsoft.Vsa.dll"
+FILES_libmono-mozilla0.2-cil-dbg = "/usr/lib/mono/gac/Mono.Mozilla/0.2.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Mozilla/0.2.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Mozilla/0.2.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Mozilla/0.2.0.0__*/../.debug/ \
+ /usr/lib/mono/2.0/Mono.Mozilla.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Mozilla.dll*/*.mdb"
+FILES_libmono-mozilla0.2-cil = "/usr/lib/mono/gac/Mono.Mozilla/0.2.0.0__*/ \
+ /usr/lib/mono/2.0/Mono.Mozilla.dll"
+FILES_libmono-security1.0-cil-dbg = "/usr/lib/mono/gac/Mono.Security/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Security/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Mono.Security.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Security.dll*/*.mdb"
+FILES_libmono-security1.0-cil = "/usr/lib/mono/gac/Mono.Security/1.0.*/ \
+ /usr/lib/mono/1.0/Mono.Security.dll"
+FILES_libmono-relaxng2.0-cil-dbg = "/usr/lib/mono/gac/Commons.Xml.Relaxng/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Commons.Xml.Relaxng/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Commons.Xml.Relaxng/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Commons.Xml.Relaxng/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Commons.Xml.Relaxng.dll*.mdb \
+ /usr/lib/mono/2.0/Commons.Xml.Relaxng.dll*/*.mdb"
+FILES_libmono-relaxng2.0-cil = "/usr/lib/mono/gac/Commons.Xml.Relaxng/2.0.*/ \
+ /usr/lib/mono/2.0/Commons.Xml.Relaxng.dll"
+FILES_libmono-sharpzip2.84-cil-dbg = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.84.*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.84.*/*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.84.*/.debug/ \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.84.*/../.debug/ \
+ /usr/lib/mono/2.0/ICSharpCode.SharpZipLib.dll*.mdb \
+ /usr/lib/mono/2.0/ICSharpCode.SharpZipLib.dll*/*.mdb"
+FILES_libmono-sharpzip2.84-cil = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.84.*/ \
+ /usr/lib/mono/2.0/ICSharpCode.SharpZipLib.dll"
+FILES_libmono-system-data2.0-cil-dbg = "/usr/lib/mono/gac/System.Data/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Data/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Data/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Data/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/System.Data.dll*.mdb \
+ /usr/lib/mono/2.0/System.Data.dll*/*.mdb"
+FILES_libmono-system-data2.0-cil = "/usr/lib/mono/gac/System.Data/2.0.*/ \
+ /usr/lib/mono/2.0/System.Data.dll"
+FILES_libmono-cairo2.0-cil-dbg = "/usr/lib/mono/gac/Mono.Cairo/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Cairo/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Cairo/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Cairo/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Mono.Cairo.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Cairo.dll*/*.mdb"
+FILES_libmono-cairo2.0-cil = "/usr/lib/mono/gac/Mono.Cairo/2.0.*/ \
+ /usr/lib/mono/2.0/Mono.Cairo.dll"
+FILES_libmono-corlib2.0-cil-dbg = "/usr/lib/mono/2.0/mscorlib.dll*.mdb \
+ /usr/lib/mono/2.0/mscorlib.dll*/*.mdb"
+FILES_libmono-corlib2.0-cil = "/usr/lib/mono/2.0/mscorlib.dll*"
+FILES_libmono-security2.0-cil-dbg = "/usr/lib/mono/gac/Mono.Security/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Security/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Mono.Security.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Security.dll*/*.mdb"
+FILES_libmono-security2.0-cil = "/usr/lib/mono/gac/Mono.Security/2.0.*/ \
+ /usr/lib/mono/2.0/Mono.Security.dll"
+FILES_libmono-microsoft8.0-cil-dbg = "/usr/lib/mono/gac/Microsoft.JScript/8.0.*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.JScript/8.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.JScript/8.0.*/.debug/ \
+ /usr/lib/mono/gac/Microsoft.JScript/8.0.*/../.debug/ \
+ /usr/lib/mono/gac/Microsoft.VisualC/8.0.*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.VisualC/8.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.VisualC/8.0.*/.debug/ \
+ /usr/lib/mono/gac/Microsoft.VisualC/8.0.*/../.debug/ \
+ /usr/lib/mono/gac/Microsoft.Vsa/8.0.*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.Vsa/8.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.Vsa/8.0.*/.debug/ \
+ /usr/lib/mono/gac/Microsoft.Vsa/8.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Microsoft.JScript.dll*.mdb \
+ /usr/lib/mono/2.0/Microsoft.JScript.dll*/*.mdb \
+ /usr/lib/mono/2.0/Microsoft.VisualC.dll*.mdb \
+ /usr/lib/mono/2.0/Microsoft.VisualC.dll*/*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Vsa.dll*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Vsa.dll*/*.mdb"
+FILES_libmono-microsoft8.0-cil = "/usr/lib/mono/gac/Microsoft.JScript/8.0.*/ \
+ /usr/lib/mono/gac/Microsoft.VisualC/8.0.*/ \
+ /usr/lib/mono/gac/Microsoft.Vsa/8.0.*/ \
+ /usr/lib/mono/2.0/Microsoft.JScript.dll \
+ /usr/lib/mono/2.0/Microsoft.VisualC.dll \
+ /usr/lib/mono/2.0/Microsoft.Vsa.dll"
+FILES_libmono-corlib1.0-cil-dbg = "/usr/lib/mono/1.0/mscorlib.dll*.mdb \
+ /usr/lib/mono/1.0/mscorlib.dll*/*.mdb"
+FILES_libmono-corlib1.0-cil = "/usr/lib/mono/1.0/mscorlib.dll*"
+FILES_libmono-system-web1.0-cil-dbg = "/usr/lib/mono/gac/System.Web/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Web/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Web/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Web/1.0.*/../.debug/ \
+ /usr/lib/mono/gac/System.Web.Services/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Web.Services/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Web.Services/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Web.Services/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/System.Web.dll*.mdb \
+ /usr/lib/mono/1.0/System.Web.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Web.Services.dll*.mdb \
+ /usr/lib/mono/1.0/System.Web.Services.dll*/*.mdb"
+FILES_libmono-system-web1.0-cil = "/usr/lib/mono/gac/System.Web/1.0.*/ \
+ /usr/lib/mono/gac/System.Web.Services/1.0.*/ \
+ /usr/lib/mono/1.0/System.Web.dll \
+ /usr/lib/mono/1.0/System.Web.Services.dll"
+FILES_libmono-system-runtime2.0-cil-dbg = "/usr/lib/mono/gac/System.Runtime.*/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Runtime.*/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Runtime.*/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Runtime.*/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/System.Runtime.*.dll*.mdb \
+ /usr/lib/mono/2.0/System.Runtime.*.dll*/*.mdb"
+FILES_libmono-system-runtime2.0-cil = "/usr/lib/mono/gac/System.Runtime.*/2.0.*/ \
+ /usr/lib/mono/2.0/System.Runtime.*.dll"
+FILES_libmono-cscompmgd8.0-cil-dbg = "/usr/lib/mono/gac/cscompmgd/8.0.*/*.mdb \
+ /usr/lib/mono/gac/cscompmgd/8.0.*/*/*.mdb \
+ /usr/lib/mono/gac/cscompmgd/8.0.*/.debug/ \
+ /usr/lib/mono/gac/cscompmgd/8.0.*/../.debug/ \
+ /usr/lib/mono/2.0/cscompmgd.dll*.mdb \
+ /usr/lib/mono/2.0/cscompmgd.dll*/*.mdb"
+FILES_libmono-cscompmgd8.0-cil = "/usr/lib/mono/gac/cscompmgd/8.0.*/ \
+ /usr/lib/mono/2.0/cscompmgd.dll"
+FILES_libmono-cscompmgd7.0-cil-dbg = "/usr/lib/mono/gac/cscompmgd/7.0.*/*.mdb \
+ /usr/lib/mono/gac/cscompmgd/7.0.*/*/*.mdb \
+ /usr/lib/mono/gac/cscompmgd/7.0.*/.debug/ \
+ /usr/lib/mono/gac/cscompmgd/7.0.*/../.debug/ \
+ /usr/lib/mono/1.0/cscompmgd.dll*.mdb \
+ /usr/lib/mono/1.0/cscompmgd.dll*/*.mdb"
+FILES_libmono-cscompmgd7.0-cil = "/usr/lib/mono/gac/cscompmgd/7.0.*/ \
+ /usr/lib/mono/1.0/cscompmgd.dll"
+FILES_libmono-firebirdsql1.7-cil-dbg = "/usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/*.mdb \
+ /usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/*/*.mdb \
+ /usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/.debug/ \
+ /usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/../.debug/ \
+ /usr/lib/mono/1.0/FirebirdSql.Data.Firebird.dll*.mdb \
+ /usr/lib/mono/1.0/FirebirdSql.Data.Firebird.dll*/*.mdb"
+FILES_libmono-firebirdsql1.7-cil = "/usr/lib/mono/gac/FirebirdSql.Data.Firebird/1.7.*/ \
+ /usr/lib/mono/1.0/FirebirdSql.Data.Firebird.dll"
+FILES_mono-jay-dbg = "/usr/bin/jay*.mdb \
+ /usr/bin/jay*/*.mdb"
+FILES_mono-jay = "/usr/bin/jay"
+FILES_libmono-data-tds1.0-cil-dbg = "/usr/lib/mono/gac/Mono.Data.Tds/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Tds/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Tds/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.Tds/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Mono.Data.Tds.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.Tds.dll*/*.mdb"
+FILES_libmono-data-tds1.0-cil = "/usr/lib/mono/gac/Mono.Data.Tds/1.0.*/ \
+ /usr/lib/mono/1.0/Mono.Data.Tds.dll"
+FILES_libmono-sqlite1.0-cil-dbg = "/usr/lib/mono/gac/Mono.Data.Sqlite/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Sqlite/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Sqlite/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.Sqlite/1.0.*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Mono.Data.Sqlite.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.Sqlite.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.SqliteClient.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.SqliteClient.dll*/*.mdb"
+FILES_libmono-sqlite1.0-cil = "/usr/lib/mono/gac/Mono.Data.Sqlite/1.0.*/ \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/1.0.*/ \
+ /usr/lib/mono/1.0/Mono.Data.Sqlite.dll \
+ /usr/lib/mono/1.0/Mono.Data.SqliteClient.dll"
+FILES_mono-2.0-devel-dbg = "/etc/mono/mconfig*.mdb \
+ /etc/mono/mconfig*/*.mdb \
+ /usr/bin/al2*.mdb \
+ /usr/bin/al2*/*.mdb \
+ /usr/bin/httpcfg*.mdb \
+ /usr/bin/httpcfg*/*.mdb \
+ /usr/bin/ilasm2*.mdb \
+ /usr/bin/ilasm2*/*.mdb \
+ /usr/bin/mconfig*.mdb \
+ /usr/bin/mconfig*/*.mdb \
+ /usr/bin/mkbundle2*.mdb \
+ /usr/bin/mkbundle2*/*.mdb \
+ /usr/bin/mono-api-info2*.mdb \
+ /usr/bin/mono-api-info2*/*.mdb \
+ /usr/bin/monop2*.mdb \
+ /usr/bin/monop2*/*.mdb \
+ /usr/bin/resgen2*.mdb \
+ /usr/bin/resgen2*/*.mdb \
+ /usr/bin/sgen*.mdb \
+ /usr/bin/sgen*/*.mdb \
+ /usr/bin/wsdl2*.mdb \
+ /usr/bin/wsdl2*/*.mdb \
+ /usr/lib/mono/2.0/al.exe*.mdb \
+ /usr/lib/mono/2.0/al.exe*/*.mdb \
+ /usr/lib/mono/2.0/httpcfg.exe*.mdb \
+ /usr/lib/mono/2.0/httpcfg.exe*/*.mdb \
+ /usr/lib/mono/2.0/ilasm.exe*.mdb \
+ /usr/lib/mono/2.0/ilasm.exe*/*.mdb \
+ /usr/lib/mono/2.0/mconfig.exe*.mdb \
+ /usr/lib/mono/2.0/mconfig.exe*/*.mdb \
+ /usr/lib/mono/2.0/mkbundle.exe*.mdb \
+ /usr/lib/mono/2.0/mkbundle.exe*/*.mdb \
+ /usr/lib/mono/2.0/mono-api-info.exe*.mdb \
+ /usr/lib/mono/2.0/mono-api-info.exe*/*.mdb \
+ /usr/lib/mono/2.0/monop.exe*.mdb \
+ /usr/lib/mono/2.0/monop.exe*/*.mdb \
+ /usr/lib/mono/2.0/resgen.exe*.mdb \
+ /usr/lib/mono/2.0/resgen.exe*/*.mdb \
+ /usr/lib/mono/2.0/sgen.exe*.mdb \
+ /usr/lib/mono/2.0/sgen.exe*/*.mdb \
+ /usr/lib/mono/2.0/wsdl.exe*.mdb \
+ /usr/lib/mono/2.0/wsdl.exe*/*.mdb"
+FILES_mono-2.0-devel = "/etc/mono/mconfig \
+ /usr/bin/al2 \
+ /usr/bin/httpcfg \
+ /usr/bin/ilasm2 \
+ /usr/bin/mconfig \
+ /usr/bin/mkbundle2 \
+ /usr/bin/mono-api-info2 \
+ /usr/bin/monop2 \
+ /usr/bin/resgen2 \
+ /usr/bin/sgen \
+ /usr/bin/wsdl2 \
+ /usr/lib/mono/2.0/al.exe \
+ /usr/lib/mono/2.0/httpcfg.exe \
+ /usr/lib/mono/2.0/ilasm.exe \
+ /usr/lib/mono/2.0/mconfig.exe \
+ /usr/lib/mono/2.0/mkbundle.exe \
+ /usr/lib/mono/2.0/mono-api-info.exe \
+ /usr/lib/mono/2.0/monop.exe \
+ /usr/lib/mono/2.0/resgen.exe \
+ /usr/lib/mono/2.0/sgen.exe \
+ /usr/lib/mono/2.0/wsdl.exe"
+FILES_libmono-relaxng1.0-cil-dbg = "/usr/lib/mono/gac/Commons.Xml.Relaxng/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Commons.Xml.Relaxng/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Commons.Xml.Relaxng/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Commons.Xml.Relaxng/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Commons.Xml.Relaxng.dll*.mdb \
+ /usr/lib/mono/1.0/Commons.Xml.Relaxng.dll*/*.mdb"
+FILES_libmono-relaxng1.0-cil = "/usr/lib/mono/gac/Commons.Xml.Relaxng/1.0.*/ \
+ /usr/lib/mono/1.0/Commons.Xml.Relaxng.dll"
+FILES_libmono-i18n2.0-cil-dbg = "/usr/lib/mono/gac/I18N*/2.0.*/*.mdb \
+ /usr/lib/mono/gac/I18N*/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/I18N*/2.0.*/.debug/ \
+ /usr/lib/mono/gac/I18N*/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/I18N*.dll*.mdb \
+ /usr/lib/mono/2.0/I18N*.dll*/*.mdb"
+FILES_libmono-i18n2.0-cil = "/usr/lib/mono/gac/I18N*/2.0.*/ \
+ /usr/lib/mono/2.0/I18N*.dll"
+FILES_libmono-accessibility1.0-cil-dbg = "/usr/lib/mono/gac/Accessibility/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Accessibility/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Accessibility/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Accessibility/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Accessibility.dll*.mdb \
+ /usr/lib/mono/1.0/Accessibility.dll*/*.mdb"
+FILES_libmono-accessibility1.0-cil = "/usr/lib/mono/gac/Accessibility/1.0.*/ \
+ /usr/lib/mono/1.0/Accessibility.dll"
+FILES_mono-common-dbg = "/etc/mono*.mdb \
+ /etc/mono*/*.mdb \
+ /usr/share/mono-1.0/mono/cil/cil-opcodes.xml*.mdb \
+ /usr/share/mono-1.0/mono/cil/cil-opcodes.xml*/*.mdb"
+FILES_mono-common = "/etc/mono \
+ /usr/share/mono-1.0/mono/cil/cil-opcodes.xml"
+FILES_libmono-oracle1.0-cil-dbg = "/usr/lib/mono/gac/System.Data.OracleClient/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Data.OracleClient/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Data.OracleClient/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Data.OracleClient/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/System.Data.OracleClient.dll*.mdb \
+ /usr/lib/mono/1.0/System.Data.OracleClient.dll*/*.mdb"
+FILES_libmono-oracle1.0-cil = "/usr/lib/mono/gac/System.Data.OracleClient/1.0.*/ \
+ /usr/lib/mono/1.0/System.Data.OracleClient.dll"
+FILES_libmono-system-data1.0-cil-dbg = "/usr/lib/mono/gac/System.Data/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Data/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Data/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Data/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/System.Data.dll*.mdb \
+ /usr/lib/mono/1.0/System.Data.dll*/*.mdb"
+FILES_libmono-system-data1.0-cil = "/usr/lib/mono/gac/System.Data/1.0.*/ \
+ /usr/lib/mono/1.0/System.Data.dll"
+FILES_libmono-bytefx0.7.6.2-cil-dbg = "/usr/lib/mono/gac/ByteFX.Data/0.7.6.2*/*.mdb \
+ /usr/lib/mono/gac/ByteFX.Data/0.7.6.2*/*/*.mdb \
+ /usr/lib/mono/gac/ByteFX.Data/0.7.6.2*/.debug/ \
+ /usr/lib/mono/gac/ByteFX.Data/0.7.6.2*/../.debug/ \
+ /usr/lib/mono/2.0/ByteFX.Data.dll*.mdb \
+ /usr/lib/mono/2.0/ByteFX.Data.dll*/*.mdb"
+FILES_libmono-bytefx0.7.6.2-cil = "/usr/lib/mono/gac/ByteFX.Data/0.7.6.2*/ \
+ /usr/lib/mono/2.0/ByteFX.Data.dll"
+FILES_libmono0-dbg = "/usr/lib/libmono*.so.*.mdb \
+ /usr/lib/libmono*.so.*/*.mdb \
+ /usr/lib/libMonoPosixHelper.so*.mdb \
+ /usr/lib/libMonoPosixHelper.so*/*.mdb \
+ /usr/lib/libMonoSupportW.so*.mdb \
+ /usr/lib/libMonoSupportW.so*/*.mdb"
+FILES_libmono0 = "/usr/lib/libmono*.so.* \
+ /usr/lib/libMonoPosixHelper.so \
+ /usr/lib/libMonoSupportW.so"
+FILES_libmono-dev-dbg = "/usr/lib/libmono*.a*.mdb \
+ /usr/lib/libmono*.a*/*.mdb \
+ /usr/lib/libMono*.a*.mdb \
+ /usr/lib/libMono*.a*/*.mdb \
+ /usr/lib/libmono*.so*.mdb \
+ /usr/lib/libmono*.so*/*.mdb \
+ /usr/lib/libMonoSupportW.a*.mdb \
+ /usr/lib/libMonoSupportW.a*/*.mdb \
+ /usr/lib/pkgconfig/mono.pc*.mdb \
+ /usr/lib/pkgconfig/mono.pc*/*.mdb \
+ /usr/lib/pkgconfig/dotnet.pc*.mdb \
+ /usr/lib/pkgconfig/dotnet.pc*/*.mdb \
+ /usr/include/*.mdb \
+ /usr/include/*/*.mdb \
+ /usr/include/.debug/ \
+ /usr/include/../.debug/"
+FILES_libmono-dev = "/usr/lib/libmono*.a \
+ /usr/lib/libMono*.a \
+ /usr/lib/libmono*.so \
+ /usr/lib/libMonoSupportW.a \
+ /usr/lib/pkgconfig/mono.pc \
+ /usr/lib/pkgconfig/dotnet.pc \
+ /usr/include/"
+FILES_mono-xbuild-dbg = "/usr/bin/xbuild*.mdb \
+ /usr/bin/xbuild*/*.mdb \
+ /usr/lib/mono/2.0/xbuild.exe*.mdb \
+ /usr/lib/mono/2.0/xbuild.exe*/*.mdb \
+ /usr/lib/mono/2.0/xbuild.rsp*.mdb \
+ /usr/lib/mono/2.0/xbuild.rsp*/*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Build.xsd*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Build.xsd*/*.mdb \
+ /usr/lib/mono/2.0/Microsoft.CSharp.targets*.mdb \
+ /usr/lib/mono/2.0/Microsoft.CSharp.targets*/*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Common.tasks*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Common.tasks*/*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Common.targets*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Common.targets*/*.mdb \
+ /usr/lib/mono/2.0/Microsoft.VisualBasic.targets*.mdb \
+ /usr/lib/mono/2.0/Microsoft.VisualBasic.targets*/*.mdb \
+ /usr/lib/mono/2.0/MSBuild/*.mdb \
+ /usr/lib/mono/2.0/MSBuild/*/*.mdb \
+ /usr/lib/mono/2.0/MSBuild/.debug/ \
+ /usr/lib/mono/2.0/MSBuild/../.debug/"
+FILES_mono-xbuild = "/usr/bin/xbuild \
+ /usr/lib/mono/2.0/xbuild.exe* \
+ /usr/lib/mono/2.0/xbuild.rsp \
+ /usr/lib/mono/2.0/Microsoft.Build.xsd \
+ /usr/lib/mono/2.0/Microsoft.CSharp.targets \
+ /usr/lib/mono/2.0/Microsoft.Common.tasks \
+ /usr/lib/mono/2.0/Microsoft.Common.targets \
+ /usr/lib/mono/2.0/Microsoft.VisualBasic.targets \
+ /usr/lib/mono/2.0/MSBuild/"
+FILES_libmono-sharpzip0.6-cil-dbg = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.6.*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.6.*/*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.6.*/.debug/ \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.6.*/../.debug/ \
+ /usr/lib/mono/compat-1.0/ICSharpCode.SharpZipLib.dll*.mdb \
+ /usr/lib/mono/compat-1.0/ICSharpCode.SharpZipLib.dll*/*.mdb"
+FILES_libmono-sharpzip0.6-cil = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.6.*/ \
+ /usr/lib/mono/compat-1.0/ICSharpCode.SharpZipLib.dll"
+FILES_mono-smcs-dbg = "/usr/bin/smcs*.mdb \
+ /usr/bin/smcs*/*.mdb \
+ /usr/lib/mono/2.1/smcs.exe*.mdb \
+ /usr/lib/mono/2.1/smcs.exe*/*.mdb"
+FILES_mono-smcs = "/usr/bin/smcs \
+ /usr/lib/mono/2.1/smcs.exe*"
+FILES_libmono-data-tds2.0-cil-dbg = "/usr/lib/mono/gac/Mono.Data.Tds/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Tds/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Tds/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.Tds/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Mono.Data.Tds.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.Tds.dll*/*.mdb"
+FILES_libmono-data-tds2.0-cil = "/usr/lib/mono/gac/Mono.Data.Tds/2.0.*/ \
+ /usr/lib/mono/2.0/Mono.Data.Tds.dll"
+FILES_libmono-system2.1-cil-dbg = "/usr/lib/mono/gac/System/2.1.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System/2.1.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System/2.1.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System/2.1.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Core/2.1.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Core/2.1.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Core/2.1.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Core/2.1.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Xml.Core/2.1.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Xml.Core/2.1.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Xml.Core/2.1.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Xml.Core/2.1.0.0__*/../.debug/ \
+ /usr/lib/mono/2.1/System.dll*.mdb \
+ /usr/lib/mono/2.1/System.dll*/*.mdb \
+ /usr/lib/mono/2.1/System.Core.dll*.mdb \
+ /usr/lib/mono/2.1/System.Core.dll*/*.mdb \
+ /usr/lib/mono/2.1/System.Xml.Core.dll*.mdb \
+ /usr/lib/mono/2.1/System.Xml.Core.dll*/*.mdb"
+FILES_libmono-system2.1-cil = "/usr/lib/mono/gac/System/2.1.0.0__*/ \
+ /usr/lib/mono/gac/System.Core/2.1.0.0__*/ \
+ /usr/lib/mono/gac/System.Xml.Core/2.1.0.0__*/ \
+ /usr/lib/mono/2.1/System.dll \
+ /usr/lib/mono/2.1/System.Core.dll \
+ /usr/lib/mono/2.1/System.Xml.Core.dll"
+FILES_mono-1.0-service-dbg = "/usr/bin/mono-service*.mdb \
+ /usr/bin/mono-service*/*.mdb \
+ /usr/lib/mono/1.0/mono-service.exe*.mdb \
+ /usr/lib/mono/1.0/mono-service.exe*/*.mdb"
+FILES_mono-1.0-service = "/usr/bin/mono-service \
+ /usr/lib/mono/1.0/mono-service.exe*"
+FILES_libmono-system-messaging1.0-cil-dbg = "/usr/lib/mono/gac/System.Messaging/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Messaging/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Messaging/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Messaging/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/System.Messaging.dll*.mdb \
+ /usr/lib/mono/1.0/System.Messaging.dll*/*.mdb"
+FILES_libmono-system-messaging1.0-cil = "/usr/lib/mono/gac/System.Messaging/1.0.*/ \
+ /usr/lib/mono/1.0/System.Messaging.dll"
+FILES_libmono-winforms2.0-cil-dbg = "/usr/lib/mono/gac/System.Windows.Forms/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Windows.Forms/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Windows.Forms/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Windows.Forms/2.0.*/../.debug/ \
+ /usr/lib/mono/gac/System.Drawing.Design/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing.Design/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing.Design/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Drawing.Design/2.0.*/../.debug/ \
+ /usr/lib/mono/gac/System.Design/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Design/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Design/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Design/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/System.Windows.Forms.dll*.mdb \
+ /usr/lib/mono/2.0/System.Windows.Forms.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Drawing.Design.dll*.mdb \
+ /usr/lib/mono/2.0/System.Drawing.Design.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Design.dll*.mdb \
+ /usr/lib/mono/2.0/System.Design.dll*/*.mdb"
+FILES_libmono-winforms2.0-cil = "/usr/lib/mono/gac/System.Windows.Forms/2.0.*/ \
+ /usr/lib/mono/gac/System.Drawing.Design/2.0.*/ \
+ /usr/lib/mono/gac/System.Design/2.0.*/ \
+ /usr/lib/mono/2.0/System.Windows.Forms.dll \
+ /usr/lib/mono/2.0/System.Drawing.Design.dll \
+ /usr/lib/mono/2.0/System.Design.dll"
+FILES_libmono-npgsql1.0-cil-dbg = "/usr/lib/mono/gac/Npgsql/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Npgsql/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Npgsql/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Npgsql/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Npgsql.dll*.mdb \
+ /usr/lib/mono/1.0/Npgsql.dll*/*.mdb"
+FILES_libmono-npgsql1.0-cil = "/usr/lib/mono/gac/Npgsql/1.0.*/ \
+ /usr/lib/mono/1.0/Npgsql.dll"
+FILES_libmono-winforms1.0-cil-dbg = "/usr/lib/mono/gac/System.Windows.Forms/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Windows.Forms/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Windows.Forms/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Windows.Forms/1.0.*/../.debug/ \
+ /usr/lib/mono/gac/System.Drawing.Design/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing.Design/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing.Design/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Drawing.Design/1.0.*/../.debug/ \
+ /usr/lib/mono/gac/System.Design/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Design/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Design/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Design/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/System.Windows.Forms.dll*.mdb \
+ /usr/lib/mono/1.0/System.Windows.Forms.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Drawing.Design.dll*.mdb \
+ /usr/lib/mono/1.0/System.Drawing.Design.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Design.dll*.mdb \
+ /usr/lib/mono/1.0/System.Design.dll*/*.mdb"
+FILES_libmono-winforms1.0-cil = "/usr/lib/mono/gac/System.Windows.Forms/1.0.*/ \
+ /usr/lib/mono/gac/System.Drawing.Design/1.0.*/ \
+ /usr/lib/mono/gac/System.Design/1.0.*/ \
+ /usr/lib/mono/1.0/System.Windows.Forms.dll \
+ /usr/lib/mono/1.0/System.Drawing.Design.dll \
+ /usr/lib/mono/1.0/System.Design.dll"
+FILES_libmono-i18n1.0-cil-dbg = "/usr/lib/mono/gac/I18N*/1.0.*/*.mdb \
+ /usr/lib/mono/gac/I18N*/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/I18N*/1.0.*/.debug/ \
+ /usr/lib/mono/gac/I18N*/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/I18N*.dll*.mdb \
+ /usr/lib/mono/1.0/I18N*.dll*/*.mdb"
+FILES_libmono-i18n1.0-cil = "/usr/lib/mono/gac/I18N*/1.0.*/ \
+ /usr/lib/mono/1.0/I18N*.dll"
+FILES_libmono-bytefx0.7.6.1-cil-dbg = "/usr/lib/mono/gac/ByteFX.Data/0.7.6.1*/*.mdb \
+ /usr/lib/mono/gac/ByteFX.Data/0.7.6.1*/*/*.mdb \
+ /usr/lib/mono/gac/ByteFX.Data/0.7.6.1*/.debug/ \
+ /usr/lib/mono/gac/ByteFX.Data/0.7.6.1*/../.debug/ \
+ /usr/lib/mono/1.0/ByteFX.Data.dll*.mdb \
+ /usr/lib/mono/1.0/ByteFX.Data.dll*/*.mdb"
+FILES_libmono-bytefx0.7.6.1-cil = "/usr/lib/mono/gac/ByteFX.Data/0.7.6.1*/ \
+ /usr/lib/mono/1.0/ByteFX.Data.dll"
+FILES_libmono-db2-1.0-cil-dbg = "/usr/lib/mono/gac/IBM.Data.DB2/1.0.*/*.mdb \
+ /usr/lib/mono/gac/IBM.Data.DB2/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/IBM.Data.DB2/1.0.*/.debug/ \
+ /usr/lib/mono/gac/IBM.Data.DB2/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/IBM.Data.DB2.dll*.mdb \
+ /usr/lib/mono/1.0/IBM.Data.DB2.dll*/*.mdb"
+FILES_libmono-db2-1.0-cil = "/usr/lib/mono/gac/IBM.Data.DB2/1.0.*/ \
+ /usr/lib/mono/1.0/IBM.Data.DB2.dll"
+FILES_libmono-microsoft-build2.0-cil-dbg = "/usr/lib/mono/gac/Microsoft.Build.*/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.Build.*/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Microsoft.Build.*/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Microsoft.Build.*/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Microsoft.Build.*.dll*.mdb \
+ /usr/lib/mono/2.0/Microsoft.Build.*.dll*/*.mdb"
+FILES_libmono-microsoft-build2.0-cil = "/usr/lib/mono/gac/Microsoft.Build.*/2.0.*/ \
+ /usr/lib/mono/2.0/Microsoft.Build.*.dll"
+FILES_libmono-system-ldap1.0-cil-dbg = "/usr/lib/mono/gac/System.DirectoryServices/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.DirectoryServices/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.DirectoryServices/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.DirectoryServices/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/System.DirectoryServices.dll*.mdb \
+ /usr/lib/mono/1.0/System.DirectoryServices.dll*/*.mdb"
+FILES_libmono-system-ldap1.0-cil = "/usr/lib/mono/gac/System.DirectoryServices/1.0.*/ \
+ /usr/lib/mono/1.0/System.DirectoryServices.dll"
+FILES_libmono-ldap1.0-cil-dbg = "/usr/lib/mono/gac/Novell.Directory.Ldap/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Novell.Directory.Ldap/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Novell.Directory.Ldap/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Novell.Directory.Ldap/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/Novell.Directory.Ldap.dll*.mdb \
+ /usr/lib/mono/1.0/Novell.Directory.Ldap.dll*/*.mdb"
+FILES_libmono-ldap1.0-cil = "/usr/lib/mono/gac/Novell.Directory.Ldap/1.0.*/ \
+ /usr/lib/mono/1.0/Novell.Directory.Ldap.dll"
+FILES_libmono-system-ldap2.0-cil-dbg = "/usr/lib/mono/gac/System.DirectoryServices/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.DirectoryServices/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.DirectoryServices/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.DirectoryServices/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/System.DirectoryServices.dll*.mdb \
+ /usr/lib/mono/2.0/System.DirectoryServices.dll*/*.mdb"
+FILES_libmono-system-ldap2.0-cil = "/usr/lib/mono/gac/System.DirectoryServices/2.0.*/ \
+ /usr/lib/mono/2.0/System.DirectoryServices.dll"
+FILES_libmono-system-messaging2.0-cil-dbg = "/usr/lib/mono/gac/System.Messaging/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Messaging/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Messaging/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Messaging/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/System.Messaging.dll*.mdb \
+ /usr/lib/mono/2.0/System.Messaging.dll*/*.mdb"
+FILES_libmono-system-messaging2.0-cil = "/usr/lib/mono/gac/System.Messaging/2.0.*/ \
+ /usr/lib/mono/2.0/System.Messaging.dll"
+FILES_mono-2.0-service-dbg = "/usr/bin/mono-service2*.mdb \
+ /usr/bin/mono-service2*/*.mdb \
+ /usr/lib/mono/2.0/mono-service.exe*.mdb \
+ /usr/lib/mono/2.0/mono-service.exe*/*.mdb"
+FILES_mono-2.0-service = "/usr/bin/mono-service2 \
+ /usr/lib/mono/2.0/mono-service.exe*"
+FILES_libmono-sharpzip0.84-cil-dbg = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.84.*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.84.*/*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.84.*/.debug/ \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.84.*/../.debug/ \
+ /usr/lib/mono/1.0/ICSharpCode.SharpZipLib.dll*.mdb \
+ /usr/lib/mono/1.0/ICSharpCode.SharpZipLib.dll*/*.mdb"
+FILES_libmono-sharpzip0.84-cil = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/0.84.*/ \
+ /usr/lib/mono/1.0/ICSharpCode.SharpZipLib.dll"
+FILES_libmono-corlib2.1-cil-dbg = "/usr/lib/mono/2.1/mscorlib.dll*.mdb \
+ /usr/lib/mono/2.1/mscorlib.dll*/*.mdb"
+FILES_libmono-corlib2.1-cil = "/usr/lib/mono/2.1/mscorlib.dll*"
+FILES_libmono-sqlite2.0-cil-dbg = "/usr/lib/mono/gac/Mono.Data.Sqlite/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Sqlite/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.Sqlite/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.Sqlite/2.0.*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Mono.Data.Sqlite.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.Sqlite.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.SqliteClient.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.SqliteClient.dll*/*.mdb"
+FILES_libmono-sqlite2.0-cil = "/usr/lib/mono/gac/Mono.Data.Sqlite/2.0.*/ \
+ /usr/lib/mono/gac/Mono.Data.SqliteClient/2.0.*/ \
+ /usr/lib/mono/2.0/Mono.Data.Sqlite.dll \
+ /usr/lib/mono/2.0/Mono.Data.SqliteClient.dll"
+FILES_libmono-ldap2.0-cil-dbg = "/usr/lib/mono/gac/Novell.Directory.Ldap/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Novell.Directory.Ldap/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Novell.Directory.Ldap/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Novell.Directory.Ldap/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Novell.Directory.Ldap.dll*.mdb \
+ /usr/lib/mono/2.0/Novell.Directory.Ldap.dll*/*.mdb"
+FILES_libmono-ldap2.0-cil = "/usr/lib/mono/gac/Novell.Directory.Ldap/2.0.*/ \
+ /usr/lib/mono/2.0/Novell.Directory.Ldap.dll"
+FILES_libmono-npgsql2.0-cil-dbg = "/usr/lib/mono/gac/Npgsql/2.0.*/*.mdb \
+ /usr/lib/mono/gac/Npgsql/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Npgsql/2.0.*/.debug/ \
+ /usr/lib/mono/gac/Npgsql/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Npgsql.dll*.mdb \
+ /usr/lib/mono/2.0/Npgsql.dll*/*.mdb"
+FILES_libmono-npgsql2.0-cil = "/usr/lib/mono/gac/Npgsql/2.0.*/ \
+ /usr/lib/mono/2.0/Npgsql.dll"
+FILES_libmono-system-runtime1.0-cil-dbg = "/usr/lib/mono/gac/System.Runtime.*/1.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Runtime.*/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Runtime.*/1.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Runtime.*/1.0.*/../.debug/ \
+ /usr/lib/mono/1.0/System.Runtime.*.dll*.mdb \
+ /usr/lib/mono/1.0/System.Runtime.*.dll*/*.mdb"
+FILES_libmono-system-runtime1.0-cil = "/usr/lib/mono/gac/System.Runtime.*/1.0.*/ \
+ /usr/lib/mono/1.0/System.Runtime.*.dll"
+FILES_libmono-peapi2.0-cil-dbg = "/usr/lib/mono/gac/PEAPI/2.0.*/*.mdb \
+ /usr/lib/mono/gac/PEAPI/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/PEAPI/2.0.*/.debug/ \
+ /usr/lib/mono/gac/PEAPI/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/PEAPI.dll*.mdb \
+ /usr/lib/mono/2.0/PEAPI.dll*/*.mdb"
+FILES_libmono-peapi2.0-cil = "/usr/lib/mono/gac/PEAPI/2.0.*/ \
+ /usr/lib/mono/2.0/PEAPI.dll"
+FILES_libmono-c5-1.0-cil-dbg = "/usr/lib/mono/gac/Mono.C5/1.0.*/*.mdb \
+ /usr/lib/mono/gac/Mono.C5/1.0.*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.C5/1.0.*/.debug/ \
+ /usr/lib/mono/gac/Mono.C5/1.0.*/../.debug/ \
+ /usr/lib/mono/2.0/Mono.C5.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.C5.dll*/*.mdb"
+FILES_libmono-c5-1.0-cil = "/usr/lib/mono/gac/Mono.C5/1.0.*/ \
+ /usr/lib/mono/2.0/Mono.C5.dll"
+FILES_libmono-oracle2.0-cil-dbg = "/usr/lib/mono/gac/System.Data.OracleClient/2.0.*/*.mdb \
+ /usr/lib/mono/gac/System.Data.OracleClient/2.0.*/*/*.mdb \
+ /usr/lib/mono/gac/System.Data.OracleClient/2.0.*/.debug/ \
+ /usr/lib/mono/gac/System.Data.OracleClient/2.0.*/../.debug/ \
+ /usr/lib/mono/2.0/System.Data.OracleClient.dll*.mdb \
+ /usr/lib/mono/2.0/System.Data.OracleClient.dll*/*.mdb"
+FILES_libmono-oracle2.0-cil = "/usr/lib/mono/gac/System.Data.OracleClient/2.0.*/ \
+ /usr/lib/mono/2.0/System.Data.OracleClient.dll"
+FILES_libmono-sharpzip2.6-cil-dbg = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.6.*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.6.*/*/*.mdb \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.6.*/.debug/ \
+ /usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.6.*/../.debug/ \
+ /usr/lib/mono/compat-2.0/ICSharpCode.SharpZipLib.dll*.mdb \
+ /usr/lib/mono/compat-2.0/ICSharpCode.SharpZipLib.dll*/*.mdb"
+FILES_libmono-sharpzip2.6-cil = "/usr/lib/mono/gac/ICSharpCode.SharpZipLib/2.6.*/ \
+ /usr/lib/mono/compat-2.0/ICSharpCode.SharpZipLib.dll"
+FILES_mono-mcs-dbg = "/usr/bin/mcs*.mdb \
+ /usr/bin/mcs*/*.mdb \
+ /usr/lib/mono/1.0/mcs.exe*.mdb \
+ /usr/lib/mono/1.0/mcs.exe*/*.mdb"
+FILES_mono-mcs = "/usr/bin/mcs \
+ /usr/lib/mono/1.0/mcs.exe*"
+FILES_libmono-system1.0-cil-dbg = "/usr/lib/mono/1.0/CustomMarshalers.dll*.mdb \
+ /usr/lib/mono/1.0/CustomMarshalers.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Configuration.Install.dll*.mdb \
+ /usr/lib/mono/1.0/System.Configuration.Install.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Drawing.dll*.mdb \
+ /usr/lib/mono/1.0/System.Drawing.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.EnterpriseServices.dll*.mdb \
+ /usr/lib/mono/1.0/System.EnterpriseServices.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Management.dll*.mdb \
+ /usr/lib/mono/1.0/System.Management.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Security.dll*.mdb \
+ /usr/lib/mono/1.0/System.Security.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.ServiceProcess.dll*.mdb \
+ /usr/lib/mono/1.0/System.ServiceProcess.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.Xml.dll*.mdb \
+ /usr/lib/mono/1.0/System.Xml.dll*/*.mdb \
+ /usr/lib/mono/1.0/System.dll*.mdb \
+ /usr/lib/mono/1.0/System.dll*/*.mdb \
+ /usr/lib/mono/gac/CustomMarshalers/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/CustomMarshalers/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/CustomMarshalers/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/CustomMarshalers/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Configuration.Install/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Configuration.Install/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Configuration.Install/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Configuration.Install/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Drawing/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Drawing/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.EnterpriseServices/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System.EnterpriseServices/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.EnterpriseServices/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System.EnterpriseServices/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Management/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Management/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Management/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Management/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Security/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Security/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Security/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Security/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.ServiceProcess/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System.ServiceProcess/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.ServiceProcess/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System.ServiceProcess/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Xml/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Xml/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Xml/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Xml/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/System/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/System/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/System/1.0.5000.0__*/../.debug/"
+FILES_libmono-system1.0-cil = "/usr/lib/mono/1.0/CustomMarshalers.dll \
+ /usr/lib/mono/1.0/System.Configuration.Install.dll \
+ /usr/lib/mono/1.0/System.Drawing.dll \
+ /usr/lib/mono/1.0/System.EnterpriseServices.dll \
+ /usr/lib/mono/1.0/System.Management.dll \
+ /usr/lib/mono/1.0/System.Security.dll \
+ /usr/lib/mono/1.0/System.ServiceProcess.dll \
+ /usr/lib/mono/1.0/System.Xml.dll \
+ /usr/lib/mono/1.0/System.dll \
+ /usr/lib/mono/gac/CustomMarshalers/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System.Configuration.Install/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System.Drawing/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System.EnterpriseServices/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System.Management/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System.Security/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System.ServiceProcess/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System.Xml/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/System/1.0.5000.0__*/"
+FILES_libmono-system2.0-cil-dbg = "/usr/lib/mono/2.0/CustomMarshalers.dll*.mdb \
+ /usr/lib/mono/2.0/CustomMarshalers.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Configuration.Install.dll*.mdb \
+ /usr/lib/mono/2.0/System.Configuration.Install.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Configuration.dll*.mdb \
+ /usr/lib/mono/2.0/System.Configuration.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Core.dll*.mdb \
+ /usr/lib/mono/2.0/System.Core.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Drawing.dll*.mdb \
+ /usr/lib/mono/2.0/System.Drawing.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.EnterpriseServices.dll*.mdb \
+ /usr/lib/mono/2.0/System.EnterpriseServices.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Management.dll*.mdb \
+ /usr/lib/mono/2.0/System.Management.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Security.dll*.mdb \
+ /usr/lib/mono/2.0/System.Security.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.ServiceProcess.dll*.mdb \
+ /usr/lib/mono/2.0/System.ServiceProcess.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Transactions.dll*.mdb \
+ /usr/lib/mono/2.0/System.Transactions.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Xml.dll*.mdb \
+ /usr/lib/mono/2.0/System.Xml.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.Xml.Linq.dll*.mdb \
+ /usr/lib/mono/2.0/System.Xml.Linq.dll*/*.mdb \
+ /usr/lib/mono/2.0/System.dll*.mdb \
+ /usr/lib/mono/2.0/System.dll*/*.mdb \
+ /usr/lib/mono/gac/CustomMarshalers/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/CustomMarshalers/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/CustomMarshalers/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/CustomMarshalers/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Configuration.Install/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Configuration.Install/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Configuration.Install/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Configuration.Install/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Configuration/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Configuration/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Configuration/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Configuration/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Core/3.5.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Core/3.5.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Core/3.5.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Core/3.5.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Drawing/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Drawing/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Drawing/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.EnterpriseServices/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.EnterpriseServices/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.EnterpriseServices/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.EnterpriseServices/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Management/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Management/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Management/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Management/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Security/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Security/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Security/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Security/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.ServiceProcess/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.ServiceProcess/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.ServiceProcess/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.ServiceProcess/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Transactions/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Transactions/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Transactions/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Transactions/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Xml/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Xml/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Xml/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Xml/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System.Xml.Linq/3.5.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System.Xml.Linq/3.5.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System.Xml.Linq/3.5.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System.Xml.Linq/3.5.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/System/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/System/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/System/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/System/2.0.0.0__*/../.debug/"
+FILES_libmono-system2.0-cil = "/usr/lib/mono/2.0/CustomMarshalers.dll \
+ /usr/lib/mono/2.0/System.Configuration.Install.dll \
+ /usr/lib/mono/2.0/System.Configuration.dll \
+ /usr/lib/mono/2.0/System.Core.dll \
+ /usr/lib/mono/2.0/System.Drawing.dll \
+ /usr/lib/mono/2.0/System.EnterpriseServices.dll \
+ /usr/lib/mono/2.0/System.Management.dll \
+ /usr/lib/mono/2.0/System.Security.dll \
+ /usr/lib/mono/2.0/System.ServiceProcess.dll \
+ /usr/lib/mono/2.0/System.Transactions.dll \
+ /usr/lib/mono/2.0/System.Xml.dll \
+ /usr/lib/mono/2.0/System.Xml.Linq.dll \
+ /usr/lib/mono/2.0/System.dll \
+ /usr/lib/mono/gac/CustomMarshalers/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Configuration.Install/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Configuration/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Core/3.5.0.0__*/ \
+ /usr/lib/mono/gac/System.Drawing/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.EnterpriseServices/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Management/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Security/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.ServiceProcess/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Transactions/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Xml/2.0.0.0__*/ \
+ /usr/lib/mono/gac/System.Xml.Linq/3.5.0.0__*/ \
+ /usr/lib/mono/gac/System/2.0.0.0__*/"
+FILES_libmono1.0-cil-dbg = "/usr/lib/mono/1.0/Mono.CompilerServices.SymbolWriter.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.CompilerServices.SymbolWriter.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.SybaseClient.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.SybaseClient.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.TdsClient.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.TdsClient.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Data.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.GetOptions.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.GetOptions.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.Http.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Http.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.Posix.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Posix.dll*/*.mdb \
+ /usr/lib/mono/1.0/Mono.Security.Win32.dll*.mdb \
+ /usr/lib/mono/1.0/Mono.Security.Win32.dll*/*.mdb \
+ /usr/lib/mono/1.0/OpenSystem.C.dll*.mdb \
+ /usr/lib/mono/1.0/OpenSystem.C.dll*/*.mdb \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.GetOptions/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.GetOptions/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.GetOptions/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.GetOptions/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Http/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Http/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Http/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Http/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Posix/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Posix/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Posix/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Posix/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Security.Win32/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security.Win32/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security.Win32/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Security.Win32/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/OpenSystem.C/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/OpenSystem.C/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/OpenSystem.C/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/OpenSystem.C/1.0.5000.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Cecil/*.mdb \
+ /usr/lib/mono/gac/Mono.Cecil/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Cecil/.debug/ \
+ /usr/lib/mono/gac/Mono.Cecil/../.debug/ \
+ /usr/lib/mono/gac/Mono.Cecil.Mdb/*.mdb \
+ /usr/lib/mono/gac/Mono.Cecil.Mdb/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Cecil.Mdb/.debug/ \
+ /usr/lib/mono/gac/Mono.Cecil.Mdb/../.debug/ \
+ /usr/lib/mono/gac/mono-service/1.0.5000.0__*/*.mdb \
+ /usr/lib/mono/gac/mono-service/1.0.5000.0__*/*/*.mdb \
+ /usr/lib/mono/gac/mono-service/1.0.5000.0__*/.debug/ \
+ /usr/lib/mono/gac/mono-service/1.0.5000.0__*/../.debug/ \
+ /usr/lib/pkgconfig/cecil.pc*.mdb \
+ /usr/lib/pkgconfig/cecil.pc*/*.mdb"
+FILES_libmono1.0-cil = "/usr/lib/mono/1.0/Mono.CompilerServices.SymbolWriter.dll \
+ /usr/lib/mono/1.0/Mono.Data.SybaseClient.dll \
+ /usr/lib/mono/1.0/Mono.Data.TdsClient.dll \
+ /usr/lib/mono/1.0/Mono.Data.dll \
+ /usr/lib/mono/1.0/Mono.GetOptions.dll \
+ /usr/lib/mono/1.0/Mono.Http.dll \
+ /usr/lib/mono/1.0/Mono.Posix.dll \
+ /usr/lib/mono/1.0/Mono.Security.Win32.dll \
+ /usr/lib/mono/1.0/OpenSystem.C.dll \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.Data/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.GetOptions/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.Http/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.Posix/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.Security.Win32/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/OpenSystem.C/1.0.5000.0__*/ \
+ /usr/lib/mono/gac/Mono.Cecil/ \
+ /usr/lib/mono/gac/Mono.Cecil.Mdb/ \
+ /usr/lib/mono/gac/mono-service/1.0.5000.0__*/ \
+ /usr/lib/pkgconfig/cecil.pc"
+FILES_libmono2.0-cil-dbg = "/usr/lib/mono/2.0/Mono.CompilerServices.SymbolWriter.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.CompilerServices.SymbolWriter.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.SybaseClient.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.SybaseClient.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.TdsClient.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.TdsClient.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Data.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.GetOptions.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.GetOptions.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Http.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Http.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Posix.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Posix.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Security.Win32.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Security.Win32.dll*/*.mdb \
+ /usr/lib/mono/2.0/Mono.Web.dll*.mdb \
+ /usr/lib/mono/2.0/Mono.Web.dll*/*.mdb \
+ /usr/lib/mono/2.0/OpenSystem.C.dll*.mdb \
+ /usr/lib/mono/2.0/OpenSystem.C.dll*/*.mdb \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Data/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Data/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Data/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.GetOptions/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.GetOptions/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.GetOptions/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.GetOptions/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Http/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Http/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Http/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Http/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Posix/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Posix/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Posix/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Posix/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Security.Win32/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security.Win32/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Security.Win32/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Security.Win32/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/Mono.Web/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/Mono.Web/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/Mono.Web/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/Mono.Web/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/OpenSystem.C/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/OpenSystem.C/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/OpenSystem.C/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/OpenSystem.C/2.0.0.0__*/../.debug/ \
+ /usr/lib/mono/gac/mono-service/2.0.0.0__*/*.mdb \
+ /usr/lib/mono/gac/mono-service/2.0.0.0__*/*/*.mdb \
+ /usr/lib/mono/gac/mono-service/2.0.0.0__*/.debug/ \
+ /usr/lib/mono/gac/mono-service/2.0.0.0__*/../.debug/"
+FILES_libmono2.0-cil = "/usr/lib/mono/2.0/Mono.CompilerServices.SymbolWriter.dll \
+ /usr/lib/mono/2.0/Mono.Data.SybaseClient.dll \
+ /usr/lib/mono/2.0/Mono.Data.TdsClient.dll \
+ /usr/lib/mono/2.0/Mono.Data.dll \
+ /usr/lib/mono/2.0/Mono.GetOptions.dll \
+ /usr/lib/mono/2.0/Mono.Http.dll \
+ /usr/lib/mono/2.0/Mono.Posix.dll \
+ /usr/lib/mono/2.0/Mono.Security.Win32.dll \
+ /usr/lib/mono/2.0/Mono.Web.dll \
+ /usr/lib/mono/2.0/OpenSystem.C.dll \
+ /usr/lib/mono/gac/Mono.CompilerServices.SymbolWriter/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.Data.SybaseClient/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.Data.TdsClient/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.Data/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.GetOptions/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.Http/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.Posix/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.Security.Win32/2.0.0.0__*/ \
+ /usr/lib/mono/gac/Mono.Web/2.0.0.0__*/ \
+ /usr/lib/mono/gac/OpenSystem.C/2.0.0.0__*/ \
+ /usr/lib/mono/gac/mono-service/2.0.0.0__*/"
+
+PACKAGES = "mono-jit-dbg \
+ mono-jit \
+ mono-gac-dbg \
+ mono-gac \
+ mono-mjs-dbg \
+ mono-mjs \
+ mono-gmcs-dbg \
+ mono-gmcs \
+ mono-utils-dbg \
+ mono-utils \
+ libmono-peapi1.0-cil-dbg \
+ libmono-peapi1.0-cil \
+ libmono-cairo1.0-cil-dbg \
+ libmono-cairo1.0-cil \
+ libmono-system-web2.0-cil-dbg \
+ libmono-system-web2.0-cil \
+ mono-1.0-devel-dbg \
+ mono-1.0-devel \
+ prj2make-sharp-dbg \
+ prj2make-sharp \
+ libmono-accessibility2.0-cil-dbg \
+ libmono-accessibility2.0-cil \
+ libmono-microsoft7.0-cil-dbg \
+ libmono-microsoft7.0-cil \
+ libmono-mozilla0.2-cil-dbg \
+ libmono-mozilla0.2-cil \
+ libmono-security1.0-cil-dbg \
+ libmono-security1.0-cil \
+ libmono-relaxng2.0-cil-dbg \
+ libmono-relaxng2.0-cil \
+ libmono-sharpzip2.84-cil-dbg \
+ libmono-sharpzip2.84-cil \
+ libmono-system-data2.0-cil-dbg \
+ libmono-system-data2.0-cil \
+ libmono-cairo2.0-cil-dbg \
+ libmono-cairo2.0-cil \
+ libmono-corlib2.0-cil-dbg \
+ libmono-corlib2.0-cil \
+ libmono-security2.0-cil-dbg \
+ libmono-security2.0-cil \
+ libmono-microsoft8.0-cil-dbg \
+ libmono-microsoft8.0-cil \
+ libmono-corlib1.0-cil-dbg \
+ libmono-corlib1.0-cil \
+ libmono-system-web1.0-cil-dbg \
+ libmono-system-web1.0-cil \
+ libmono-system-runtime2.0-cil-dbg \
+ libmono-system-runtime2.0-cil \
+ libmono-cscompmgd8.0-cil-dbg \
+ libmono-cscompmgd8.0-cil \
+ libmono-cscompmgd7.0-cil-dbg \
+ libmono-cscompmgd7.0-cil \
+ libmono-firebirdsql1.7-cil-dbg \
+ libmono-firebirdsql1.7-cil \
+ mono-jay-dbg \
+ mono-jay \
+ libmono-data-tds1.0-cil-dbg \
+ libmono-data-tds1.0-cil \
+ libmono-sqlite1.0-cil-dbg \
+ libmono-sqlite1.0-cil \
+ mono-2.0-devel-dbg \
+ mono-2.0-devel \
+ libmono-relaxng1.0-cil-dbg \
+ libmono-relaxng1.0-cil \
+ libmono-i18n2.0-cil-dbg \
+ libmono-i18n2.0-cil \
+ libmono-accessibility1.0-cil-dbg \
+ libmono-accessibility1.0-cil \
+ mono-common-dbg \
+ mono-common \
+ libmono-oracle1.0-cil-dbg \
+ libmono-oracle1.0-cil \
+ libmono-system-data1.0-cil-dbg \
+ libmono-system-data1.0-cil \
+ libmono-bytefx0.7.6.2-cil-dbg \
+ libmono-bytefx0.7.6.2-cil \
+ libmono0-dbg \
+ libmono0 \
+ libmono-dev-dbg \
+ libmono-dev \
+ mono-xbuild-dbg \
+ mono-xbuild \
+ libmono-sharpzip0.6-cil-dbg \
+ libmono-sharpzip0.6-cil \
+ mono-smcs-dbg \
+ mono-smcs \
+ libmono-data-tds2.0-cil-dbg \
+ libmono-data-tds2.0-cil \
+ libmono-system2.1-cil-dbg \
+ libmono-system2.1-cil \
+ mono-1.0-service-dbg \
+ mono-1.0-service \
+ libmono-system-messaging1.0-cil-dbg \
+ libmono-system-messaging1.0-cil \
+ libmono-winforms2.0-cil-dbg \
+ libmono-winforms2.0-cil \
+ libmono-npgsql1.0-cil-dbg \
+ libmono-npgsql1.0-cil \
+ libmono-winforms1.0-cil-dbg \
+ libmono-winforms1.0-cil \
+ libmono-i18n1.0-cil-dbg \
+ libmono-i18n1.0-cil \
+ libmono-bytefx0.7.6.1-cil-dbg \
+ libmono-bytefx0.7.6.1-cil \
+ libmono-db2-1.0-cil-dbg \
+ libmono-db2-1.0-cil \
+ libmono-microsoft-build2.0-cil-dbg \
+ libmono-microsoft-build2.0-cil \
+ libmono-system-ldap1.0-cil-dbg \
+ libmono-system-ldap1.0-cil \
+ libmono-ldap1.0-cil-dbg \
+ libmono-ldap1.0-cil \
+ libmono-system-ldap2.0-cil-dbg \
+ libmono-system-ldap2.0-cil \
+ libmono-system-messaging2.0-cil-dbg \
+ libmono-system-messaging2.0-cil \
+ mono-2.0-service-dbg \
+ mono-2.0-service \
+ libmono-sharpzip0.84-cil-dbg \
+ libmono-sharpzip0.84-cil \
+ libmono-corlib2.1-cil-dbg \
+ libmono-corlib2.1-cil \
+ libmono-sqlite2.0-cil-dbg \
+ libmono-sqlite2.0-cil \
+ libmono-ldap2.0-cil-dbg \
+ libmono-ldap2.0-cil \
+ libmono-npgsql2.0-cil-dbg \
+ libmono-npgsql2.0-cil \
+ libmono-system-runtime1.0-cil-dbg \
+ libmono-system-runtime1.0-cil \
+ libmono-peapi2.0-cil-dbg \
+ libmono-peapi2.0-cil \
+ libmono-c5-1.0-cil-dbg \
+ libmono-c5-1.0-cil \
+ libmono-oracle2.0-cil-dbg \
+ libmono-oracle2.0-cil \
+ libmono-sharpzip2.6-cil-dbg \
+ libmono-sharpzip2.6-cil \
+ mono-mcs-dbg \
+ mono-mcs \
+ libmono-system1.0-cil-dbg \
+ libmono-system1.0-cil \
+ libmono-system2.0-cil-dbg \
+ libmono-system2.0-cil \
+ libmono1.0-cil-dbg \
+ libmono1.0-cil \
+ libmono2.0-cil-dbg \
+ libmono2.0-cil"
diff --git a/packages/mono/mono_1.9.1.bb b/packages/mono/mono_1.9.1.bb
new file mode 100644
index 0000000000..4be75d99a7
--- /dev/null
+++ b/packages/mono/mono_1.9.1.bb
@@ -0,0 +1,80 @@
+require mono_1.9.1.inc
+
+DEPENDS = "mono-native mono-mcs-intermediate glib-2.0 perl-native"
+
+DEFAULT_PREFERENCE = "-1"
+
+PR = "r1"
+
+SRC_URI += "file://configure.patch;patch=1"
+
+# Per http://www.mono-project.com/Mono:ARM
+EXTRA_OECONF += " --disable-mcs-build "
+# Instead, get the mcs tree from a different build (see mono-mcs-intermediate)
+
+do_install_prepend() {
+ install -d ${D}
+ pushd ${D}
+ tar -xzf ${STAGING_DATADIR_NATIVE}/mono-mcs/mono-mcs-${PV}.tar.gz
+ popd
+}
+
+do_install_append() {
+ # mono-mcs-intermediate builds and installs jay (a Yacc for Java and C#),
+ # however, jay is not being cross-compiled and thus only
+ # available for the buildhost architecture, so remove it
+ # entirely
+ pushd ${D}
+ rm -rf ./usr/share/man/man1/jay.1 ./usr/share/jay \
+ ./usr/share/jay/README.jay \
+ ./usr/bin/jay
+ popd
+
+ # Not packaged with the default rules and apparently
+ # not used for anything
+ rm -rf ${D}${datadir}/mono-1.0/mono/cil/cil-opcodes.xml
+}
+
+inherit mono
+
+# Import file definitions from Debian
+require mono_1.2.5.1-files.inc
+
+# Add some packages
+PACKAGES_append = " mono-doc mono mono-runtime"
+
+FILES_mono-doc_append = " /usr/share/libgc-mono/ "
+
+FILES_mono = ""
+ALLOW_EMPTY_mono = "1"
+RDEPENDS_mono = "mono-common mono-jit"
+
+FILES_mono-runtime = ""
+ALLOW_EMPTY_mono-runtime = "1"
+RDEPENDS_mono-runtime = "mono-jit mono-gac"
+
+RDEPENDS_mono-jit = "mono-common"
+
+FILES_libmono-dev =+ " /usr/lib/libmono.la /usr/lib/libmono-profiler-cov.la /usr/lib/libmono-profiler-aot.la \
+ /usr/lib/libMonoPosixHelper.la /usr/lib/libMonoSupportW.la"
+FILES_libmono-dbg =+ " /usr/lib/.debug/libmono*.so.* /usr/lib/.debug/libikvm-native.so \
+ /usr/lib/.debug/libMonoPosixHelper.so /usr/lib/.debug/libMonoSupportW.so"
+
+# Packages not included in Debian
+PACKAGES_prepend = "libnunit2.2-cil-dbg libnunit2.2-cil-dev libnunit2.2-cil \
+ libmono-cecil0.5-cil-dbg libmono-cecil0.5-cil-dev libmono-cecil0.5-cil \
+ libmono-db2-1.0-cil-dbg libmono-db2-1.0-cil-dev libmono-db2-1.0-cil"
+
+FILES_libnunit2.2-cil = "/usr/lib/mono/gac/nunit.*/2.2.* /usr/lib/mono/1.0/nunit.*.dll"
+FILES_libnunit2.2-cil-dev = "/usr/lib/pkgconfig/mono-nunit.pc"
+FILES_libnunit2.2-cil-dbg = "/usr/lib/mono/gac/nunit*/2.2.*/nunit.*.dll.mdb"
+
+FILES_libmono-cecil0.5-cil = "/usr/lib/mono/gac/Mono.Cecil/0.5.*"
+FILES_libmono-cecil0.5-cil-dbg = "/usr/lib/mono/gac/Mono.Cecil/0.5.0.1__0738eb9f132ed756/Mono.Cecil.dll.mdb"
+
+FILES_libmono-db2-1.0-cil = "/usr/lib/mono/gac/IBM.Data.DB2/1.0* /usr/lib/mono/1.0/IBM.Data.DB2.dll"
+FILES_libmono-db2-1.0-cil-dbg = "/usr/lib/mono/gac/IBM.Data.DB2/1.0*/IBM.Data.DB2.dll.mdb"
+
+# Move .pc files
+FILES_libmono-cairo1.0-cil-dev = "/usr/lib/pkgconfig/mono-cairo.pc"
+PACKAGES =+ " libmono-cairo1.0-cil-dev "
diff --git a/packages/mono/mono_1.9.1.inc b/packages/mono/mono_1.9.1.inc
new file mode 100644
index 0000000000..120ec70f4d
--- /dev/null
+++ b/packages/mono/mono_1.9.1.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Mono Programming Language"
+SECTION = "devel/mono"
+LICENSE = "GPL LGPL X11"
+
+SRC_URI = "http://ftp.novell.com/pub/mono/sources/mono/mono-1.9.1.tar.bz2 \
+ "
+
+# file://mono-libgc-configure.patch;patch=1"
+
+S = "${WORKDIR}/mono-1.9.1"
+
+inherit autotools
+EXTRA_OECONF_arm = "--without-tls"
+EXTRA_OECONF_mipsel = "--without-tls"
+
diff --git a/packages/mythtv/files/armv5te/.mtn2git_empty b/packages/mythtv/files/armv5te/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mythtv/files/armv5te/.mtn2git_empty
diff --git a/packages/mythtv/files/armv5te/configh b/packages/mythtv/files/armv5te/configh
new file mode 100644
index 0000000000..46c647e2d5
--- /dev/null
+++ b/packages/mythtv/files/armv5te/configh
@@ -0,0 +1,6 @@
+#define HAVE_LLRINT 1
+#define HAVE_ROUNDF 1
+#define ARCH_ARMV4L 1
+#define ENABLE_ARMV4L 1
+#define HAVE_ARMV5TE 1
+#define ENABLE_ARMV5TE 1
diff --git a/packages/mythtv/files/armv5te/configmak b/packages/mythtv/files/armv5te/configmak
new file mode 100644
index 0000000000..aa9978515d
--- /dev/null
+++ b/packages/mythtv/files/armv5te/configmak
@@ -0,0 +1,3 @@
+ARCH_ARMV4L=yes
+HAVE_ARMV5TE=yes
+
diff --git a/packages/mythtv/files/armv6/.mtn2git_empty b/packages/mythtv/files/armv6/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mythtv/files/armv6/.mtn2git_empty
diff --git a/packages/mythtv/files/armv6/configh b/packages/mythtv/files/armv6/configh
new file mode 100644
index 0000000000..2301e723d6
--- /dev/null
+++ b/packages/mythtv/files/armv6/configh
@@ -0,0 +1,8 @@
+#define HAVE_LLRINT 1
+#define HAVE_ROUNDF 1
+#define ARCH_ARMV4L 1
+#define ENABLE_ARMV4L 1
+#define HAVE_ARMV5TE 1
+#define ENABLE_ARMV5TE 1
+#define HAVE_ARMV6 1
+#define ENABLE_ARMV6 1
diff --git a/packages/mythtv/files/armv6/configmak b/packages/mythtv/files/armv6/configmak
new file mode 100644
index 0000000000..4db5dc0dfd
--- /dev/null
+++ b/packages/mythtv/files/armv6/configmak
@@ -0,0 +1,3 @@
+ARCH_ARMV4L=yes
+HAVE_ARMV5TE=yes
+HAVE_ARMV6=yes
diff --git a/packages/mythtv/files/armv7a/.mtn2git_empty b/packages/mythtv/files/armv7a/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mythtv/files/armv7a/.mtn2git_empty
diff --git a/packages/mythtv/files/armv7a/configh b/packages/mythtv/files/armv7a/configh
new file mode 100644
index 0000000000..245e40f56a
--- /dev/null
+++ b/packages/mythtv/files/armv7a/configh
@@ -0,0 +1,14 @@
+#define HAVE_LLRINT 1
+#define HAVE_ROUNDF 1
+#define ARCH_ARMV4L 1
+#define ENABLE_ARMV4L 1
+#define HAVE_ARMV5TE 1
+#define ENABLE_ARMV5TE 1
+#define HAVE_ARMV6 1
+#define ENABLE_ARMV6 1
+#define HAVE_ARMV6T2 1
+#define ENABLE_ARMV6T2 1
+#define HAVE_ARMVFP 1
+#define ENABLE_ARMVFP 1
+#define HAVE_NEON 1
+#define ENABLE_NEON 1
diff --git a/packages/mythtv/files/armv7a/configmak b/packages/mythtv/files/armv7a/configmak
new file mode 100644
index 0000000000..50d549f794
--- /dev/null
+++ b/packages/mythtv/files/armv7a/configmak
@@ -0,0 +1,6 @@
+ARCH_ARMV4L=yes
+HAVE_ARMV5TE=yes
+HAVE_ARMV6=yes
+HAVE_ARMV6T2=yes
+HAVE_ARMVFP=yes
+HAVE_NEON=yes
diff --git a/packages/mythtv/files/configh b/packages/mythtv/files/configh
new file mode 100644
index 0000000000..2fe7658383
--- /dev/null
+++ b/packages/mythtv/files/configh
@@ -0,0 +1,2 @@
+#define HAVE_LLRINT 1
+#define HAVE_ROUNDF 1
diff --git a/packages/mythtv/files/configmak b/packages/mythtv/files/configmak
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mythtv/files/configmak
diff --git a/packages/mythtv/mythtv-0.21/.mtn2git_empty b/packages/mythtv/mythtv-0.21/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mythtv/mythtv-0.21/.mtn2git_empty
diff --git a/packages/mythtv/mythtv-0.21/configure.patch b/packages/mythtv/mythtv-0.21/configure.patch
new file mode 100644
index 0000000000..3b0b9a313a
--- /dev/null
+++ b/packages/mythtv/mythtv-0.21/configure.patch
@@ -0,0 +1,183 @@
+--- /tmp/configure 2008-06-30 08:40:35.000000000 +0200
++++ mythtv/configure 2008-07-23 09:51:41.000000000 +0200
+@@ -475,12 +475,13 @@
+ }
+
+ check_cmd(){
+- log "$@"
++ echo "Checking $@"
++ log "$@"
+ "$@" >>$logfile 2>&1
+ }
+
+ check_cc(){
+- log check_cc "$@"
++ log check_cc "$@"
+ cat >$TMPC
+ log_file $TMPC
+ check_cmd $cc $CFLAGS $ECFLAGS $OPTFLAGS "$@" -c -o $TMPO $TMPC
+@@ -1115,11 +1116,11 @@
+ fi
+
+ # machine
+-arch=`uname -m`
++disabled cross_compile && arch=`uname -m`
+ arch_raw="$arch"
+ cpu="generic"
+ cpu_override="no"
+-processor=`uname -p 2>/dev/null`
++disabled cross_compile && processor=`uname -p 2>/dev/null`
+ processor_flags=""
+ tune="generic"
+
+@@ -1183,7 +1184,7 @@
+ lamemp3="yes"
+ lirc="yes"
+ mac_bundle="no"
+-opengl="yes"
++opengl="no"
+ v4l="yes"
+ x11="yes"
+ x11_include_path="/usr/X11R6/include"
+@@ -1212,7 +1213,7 @@
+ # build settings
+ SHFLAGS='-shared -Wl,-soname,$@'
+ VHOOKSHFLAGS='$(SHFLAGS)'
+-LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
++#LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
+ FFSERVERLDFLAGS=-Wl,-E
+ LDCONFIG="ldconfig"
+ LIBPREF="lib"
+@@ -1707,7 +1708,7 @@
+
+ has_library()
+ {
+- if test -f /etc/ld.so.conf ; then
++ if test -f /etc/ld.so.conf && disabled cross_compile ; then
+ LIBPATHS=`cat /etc/ld.so.conf | grep -v "#" | grep -v "include"`
+ else
+ LIBPATHS=''
+@@ -1718,7 +1719,7 @@
+ LIBPATHS="$LIBPATHS `echo $DYLD_LIBRARY_PATH | sed s/':'/' '/g` "
+
+ # recurse down just one level, should be enough in most cases
+- if test -f /etc/ld.so.conf ; then
++ if test -f /etc/ld.so.conf && disabled cross_compile ; then
+ INCL=`cat /etc/ld.so.conf | grep -v "#" | grep "^include"`
+ SRCH=`echo "$INCL" | sed '{ s/^include \//\//; s/^include /\/etc\//}'`
+ for x in $SRCH ; do
+@@ -1727,9 +1728,9 @@
+ done
+ fi
+
+- LIBPATHS="`echo $LIBPATHS /$libdir_name /usr/$libdir_name /usr/local/$libdir_name /usr/X11R6/$libdir_name | sed s/'\/ '/' '/g` "
++ enabled cross_compile || LIBPATHS="`echo $LIBPATHS /$libdir_name /usr/$libdir_name /usr/local/$libdir_name /usr/X11R6/$libdir_name | sed s/'\/ '/' '/g` "
+
+- HAS_IT="no"
++ HAS_IT="yes"
+ for LIBPATH in $LIBPATHS ; do
+ if test x`ls $LIBPATH/$1* 2> /dev/null | head -n 1` != x"" ; then
+ echo "$1 IS at $LIBPATH"
+@@ -1745,17 +1746,18 @@
+
+ has_header()
+ {
+- HPATHS="/usr/local/include /usr/include /usr/include/g++-v3 /usr/X11R6/include"
++ enabled cross_compile || HPATHS="/usr/local/include /usr/include /usr/include/g++-v3 /usr/X11R6/include"
+ INCL=`echo $DYLD_LIBRARY_PATH $LD_LIBRARY_PATH | sed s/':'/' '/g`
+ HPATHS="$HPATHS "$(echo $INCL | sed "s/$libdir_name/include/g")
+
+- HAS_IT="no"
++ HAS_IT="yes"
+ for HPATH in $HPATHS ; do
+ if test x`ls $HPATH/$1* 2> /dev/null | head -n 1` != x"" ; then
+ HAS_IT="yes"
+ fi
+ done
+- expr $HAS_IT : "yes" > /dev/null
++ echo "$1: $HAS_IT"
++ expr $HAS_IT : "yes" > /dev/null
+ }
+
+ append CCONFIG "$compile_type"
+@@ -1861,13 +1863,15 @@
+ if test x"$cmov" = x"default"; then
+ disable cmov
+ if enabled cpu_override; then
+- is_x86_cmov_cpu "$cpu" && enable cmov
++ disabled cross_compile && is_x86_cmov_cpu "$cpu" && enable cmov
+ disabled cmov || is_x86_slow_cmov_cpu "$cpu" || enable fast_cmov
+ elif expr "$processor_flags" : ".*cmov" > /dev/null ; then
+- enable cmov
++ disabled cross_compile && enable cmov
+ fi
+ fi
+
++enabled cross_compile && disable cmov
++
+ # use different default ARCHFLAGS for CPU missing cmov (Via C3 ...)
+ if test x"$arch" = x"x86_32" && disabled cmov && disabled cpu_override; then
+ ARCHFLAGS="-march=i586"
+@@ -2239,7 +2243,7 @@
+ EOF
+
+ if $cc $CFLAGS $ECFLAGS -o $TMPE $TMPC 2>/dev/null ; then
+-$TMPE && cpuclipspositive="yes"
++enabled cross_compile || $TMPE && cpuclipspositive="yes"
+ fi
+
+ # test negative wrap
+@@ -2254,7 +2258,7 @@
+ EOF
+
+ if $cc $CFLAGS $ECFLAGS -o $TMPE $TMPC 2>/dev/null ; then
+-$TMPE && cpuclipsnegative="yes"
++enabled cross_compile || $TMPE && cpuclipsnegative="yes"
+ fi
+
+ # test for distcc
+@@ -2607,33 +2611,9 @@
+ check_ldflags -Wl,--warn-common
+ check_ldflags $LDLATEFLAGS
+
+-# GCC version
+-cat > $TMPC << EOF
+-int main(int argc, char **argv)
+-{
+- int ret = 0;
+- if (argc == 1)
+- {
+- #if defined(__GNUC__)
+- ret = __GNUC__;
+- #endif
+- }
+- else
+- {
+- #if defined(__GNUC_MINOR__)
+- ret = __GNUC_MINOR__;
+- #endif
+- }
+- return ret;
+-}
+-EOF
+-
+-if $cc $CFLAGS $TMPC -o $TMPE ; then
+- $TMPE
+- GCC_MAJOR=$?
+- $TMPE "minor"
+- GCC_MINOR=$?
+-fi
++gcc_version=$($cc -v 2>&1 | grep version | cut -s -d' ' -f 3)
++GCC_MAJOR=$(echo ${gcc_version} | cut -s -d'.' -f1)
++GCC_MINOR=$(echo ${gcc_version} | cut -s -d'.' -f2)
+
+ if enabled symbol_visibility; then
+ if test x"$GCC_MAJOR" = x"4" ; then
+@@ -2727,6 +2707,7 @@
+
+ check_header GL/gl.h
+ has_library libGL || has_library libopengl32 || disable opengl
++enabled cross_compile && disable opengl
+
+ VENDOR_XVMC_LIBS=""
+ check_header X11/extensions/XvMClib.h
diff --git a/packages/mythtv/mythtv-0.21/ffmpeg-arm-update.diff b/packages/mythtv/mythtv-0.21/ffmpeg-arm-update.diff
new file mode 100644
index 0000000000..d0e32eb512
--- /dev/null
+++ b/packages/mythtv/mythtv-0.21/ffmpeg-arm-update.diff
@@ -0,0 +1,1669 @@
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/dsputil_arm.c mythtv/libs/libavcodec/armv4l/dsputil_arm.c
+--- mythtv.orig/libs/libavcodec/armv4l/dsputil_arm.c 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/dsputil_arm.c 2008-07-24 19:54:00.753198000 +0200
+@@ -19,12 +19,14 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#include "dsputil.h"
++#include "libavcodec/dsputil.h"
+ #ifdef HAVE_IPP
+-#include "ipp.h"
++#include <ipp.h>
+ #endif
+
+ extern void dsputil_init_iwmmxt(DSPContext* c, AVCodecContext *avctx);
++extern void ff_float_init_arm_vfp(DSPContext* c, AVCodecContext *avctx);
++extern void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx);
+
+ extern void j_rev_dct_ARM(DCTELEM *data);
+ extern void simple_idct_ARM(DCTELEM *data);
+@@ -41,6 +43,12 @@
+ extern void ff_simple_idct_add_armv6(uint8_t *dest, int line_size,
+ DCTELEM *data);
+
++extern void ff_simple_idct_neon(DCTELEM *data);
++extern void ff_simple_idct_put_neon(uint8_t *dest, int line_size,
++ DCTELEM *data);
++extern void ff_simple_idct_add_neon(uint8_t *dest, int line_size,
++ DCTELEM *data);
++
+ /* XXX: local hack */
+ static void (*ff_put_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
+ static void (*ff_add_pixels_clamped)(const DCTELEM *block, uint8_t *pixels, int line_size);
+@@ -202,6 +210,24 @@
+ }
+ #endif
+
++#ifdef HAVE_ARMV5TE
++static void prefetch_arm(void *mem, int stride, int h)
++{
++ asm volatile(
++ "1: \n\t"
++ "subs %0, %0, #1 \n\t"
++ "pld [%1] \n\t"
++ "add %1, %1, %2 \n\t"
++ "bgt 1b \n\t"
++ : "+r"(h), "+r"(mem) : "r"(stride));
++}
++#endif
++
++int mm_support(void)
++{
++ return ENABLE_IWMMXT * MM_IWMMXT;
++}
++
+ void dsputil_init_armv4l(DSPContext* c, AVCodecContext *avctx)
+ {
+ int idct_algo= avctx->idct_algo;
+@@ -209,49 +235,60 @@
+ ff_put_pixels_clamped = c->put_pixels_clamped;
+ ff_add_pixels_clamped = c->add_pixels_clamped;
+
+- if(idct_algo == FF_IDCT_AUTO){
++ if (avctx->lowres == 0) {
++ if(idct_algo == FF_IDCT_AUTO){
+ #if defined(HAVE_IPP)
+- idct_algo = FF_IDCT_IPP;
++ idct_algo = FF_IDCT_IPP;
++#elif defined(HAVE_NEON)
++ idct_algo = FF_IDCT_SIMPLENEON;
+ #elif defined(HAVE_ARMV6)
+- idct_algo = FF_IDCT_SIMPLEARMV6;
++ idct_algo = FF_IDCT_SIMPLEARMV6;
+ #elif defined(HAVE_ARMV5TE)
+- idct_algo = FF_IDCT_SIMPLEARMV5TE;
++ idct_algo = FF_IDCT_SIMPLEARMV5TE;
+ #else
+- idct_algo = FF_IDCT_ARM;
++ idct_algo = FF_IDCT_ARM;
+ #endif
+- }
++ }
+
+- if(idct_algo==FF_IDCT_ARM){
+- c->idct_put= j_rev_dct_ARM_put;
+- c->idct_add= j_rev_dct_ARM_add;
+- c->idct = j_rev_dct_ARM;
+- c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;/* FF_NO_IDCT_PERM */
+- } else if (idct_algo==FF_IDCT_SIMPLEARM){
+- c->idct_put= simple_idct_ARM_put;
+- c->idct_add= simple_idct_ARM_add;
+- c->idct = simple_idct_ARM;
+- c->idct_permutation_type= FF_NO_IDCT_PERM;
++ if(idct_algo==FF_IDCT_ARM){
++ c->idct_put= j_rev_dct_ARM_put;
++ c->idct_add= j_rev_dct_ARM_add;
++ c->idct = j_rev_dct_ARM;
++ c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;/* FF_NO_IDCT_PERM */
++ } else if (idct_algo==FF_IDCT_SIMPLEARM){
++ c->idct_put= simple_idct_ARM_put;
++ c->idct_add= simple_idct_ARM_add;
++ c->idct = simple_idct_ARM;
++ c->idct_permutation_type= FF_NO_IDCT_PERM;
+ #ifdef HAVE_ARMV6
+- } else if (idct_algo==FF_IDCT_SIMPLEARMV6){
+- c->idct_put= ff_simple_idct_put_armv6;
+- c->idct_add= ff_simple_idct_add_armv6;
+- c->idct = ff_simple_idct_armv6;
+- c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
++ } else if (idct_algo==FF_IDCT_SIMPLEARMV6){
++ c->idct_put= ff_simple_idct_put_armv6;
++ c->idct_add= ff_simple_idct_add_armv6;
++ c->idct = ff_simple_idct_armv6;
++ c->idct_permutation_type= FF_LIBMPEG2_IDCT_PERM;
+ #endif
+ #ifdef HAVE_ARMV5TE
+- } else if (idct_algo==FF_IDCT_SIMPLEARMV5TE){
+- c->idct_put= simple_idct_put_armv5te;
+- c->idct_add= simple_idct_add_armv5te;
+- c->idct = simple_idct_armv5te;
+- c->idct_permutation_type = FF_NO_IDCT_PERM;
++ } else if (idct_algo==FF_IDCT_SIMPLEARMV5TE){
++ c->idct_put= simple_idct_put_armv5te;
++ c->idct_add= simple_idct_add_armv5te;
++ c->idct = simple_idct_armv5te;
++ c->idct_permutation_type = FF_NO_IDCT_PERM;
+ #endif
+ #ifdef HAVE_IPP
+- } else if (idct_algo==FF_IDCT_IPP){
+- c->idct_put= simple_idct_ipp_put;
+- c->idct_add= simple_idct_ipp_add;
+- c->idct = simple_idct_ipp;
+- c->idct_permutation_type= FF_NO_IDCT_PERM;
++ } else if (idct_algo==FF_IDCT_IPP){
++ c->idct_put= simple_idct_ipp_put;
++ c->idct_add= simple_idct_ipp_add;
++ c->idct = simple_idct_ipp;
++ c->idct_permutation_type= FF_NO_IDCT_PERM;
++#endif
++#ifdef HAVE_NEON
++ } else if (idct_algo==FF_IDCT_SIMPLENEON){
++ c->idct_put= ff_simple_idct_put_neon;
++ c->idct_add= ff_simple_idct_add_neon;
++ c->idct = ff_simple_idct_neon;
++ c->idct_permutation_type = FF_NO_IDCT_PERM;
+ #endif
++ }
+ }
+
+ c->put_pixels_tab[0][0] = put_pixels16_arm;
+@@ -271,7 +308,17 @@
+ c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y2_arm; //OK
+ c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_arm;
+
++#ifdef HAVE_ARMV5TE
++ c->prefetch = prefetch_arm;
++#endif
++
+ #ifdef HAVE_IWMMXT
+ dsputil_init_iwmmxt(c, avctx);
+ #endif
++#ifdef HAVE_ARMVFP
++ ff_float_init_arm_vfp(c, avctx);
++#endif
++#ifdef HAVE_NEON
++ ff_dsputil_init_neon(c, avctx);
++#endif
+ }
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/dsputil_arm_s.S mythtv/libs/libavcodec/armv4l/dsputil_arm_s.S
+--- mythtv.orig/libs/libavcodec/armv4l/dsputil_arm_s.S 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/dsputil_arm_s.S 2008-07-24 19:54:00.753198000 +0200
+@@ -19,6 +19,13 @@
+ @ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ @
+
++#include "config.h"
++
++#ifndef HAVE_PLD
++.macro pld reg
++.endm
++#endif
++
+ .macro ADJ_ALIGN_QUADWORD_D shift, Rd0, Rd1, Rd2, Rd3, Rn0, Rn1, Rn2, Rn3, Rn4
+ mov \Rd0, \Rn0, lsr #(\shift * 8)
+ mov \Rd1, \Rn1, lsr #(\shift * 8)
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/dsputil_iwmmxt.c mythtv/libs/libavcodec/armv4l/dsputil_iwmmxt.c
+--- mythtv.orig/libs/libavcodec/armv4l/dsputil_iwmmxt.c 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/dsputil_iwmmxt.c 2008-07-24 19:54:00.753198000 +0200
+@@ -19,10 +19,10 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#include "dsputil.h"
++#include "libavcodec/dsputil.h"
+
+ #define DEF(x, y) x ## _no_rnd_ ## y ##_iwmmxt
+-#define SET_RND(regd) __asm__ __volatile__ ("mov r12, #1 \n\t tbcsth " #regd ", r12":::"r12");
++#define SET_RND(regd) asm volatile ("mov r12, #1 \n\t tbcsth " #regd ", r12":::"r12");
+ #define WAVG2B "wavg2b"
+ #include "dsputil_iwmmxt_rnd.h"
+ #undef DEF
+@@ -30,7 +30,7 @@
+ #undef WAVG2B
+
+ #define DEF(x, y) x ## _ ## y ##_iwmmxt
+-#define SET_RND(regd) __asm__ __volatile__ ("mov r12, #2 \n\t tbcsth " #regd ", r12":::"r12");
++#define SET_RND(regd) asm volatile ("mov r12, #2 \n\t tbcsth " #regd ", r12":::"r12");
+ #define WAVG2B "wavg2br"
+ #include "dsputil_iwmmxt_rnd.h"
+ #undef DEF
+@@ -89,7 +89,7 @@
+ {
+ uint8_t *pixels2 = pixels + line_size;
+
+- __asm__ __volatile__ (
++ asm volatile (
+ "mov r12, #4 \n\t"
+ "1: \n\t"
+ "pld [%[pixels], %[line_size2]] \n\t"
+@@ -125,7 +125,7 @@
+
+ static void clear_blocks_iwmmxt(DCTELEM *blocks)
+ {
+- __asm __volatile(
++ asm volatile(
+ "wzero wr0 \n\t"
+ "mov r1, #(128 * 6 / 32) \n\t"
+ "1: \n\t"
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/dsputil_iwmmxt_rnd.h mythtv/libs/libavcodec/armv4l/dsputil_iwmmxt_rnd.h
+--- mythtv.orig/libs/libavcodec/armv4l/dsputil_iwmmxt_rnd.h 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/dsputil_iwmmxt_rnd.h 2008-07-24 19:54:01.023198000 +0200
+@@ -19,13 +19,14 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#ifndef FFMPEG_DSPUTIL_IWMMXT_RND_H
+-#define FFMPEG_DSPUTIL_IWMMXT_RND_H
++/* This header intentionally has no multiple inclusion guards. It is meant to
++ * be included multiple times and generates different code depending on the
++ * value of certain #defines. */
+
+ void DEF(put, pixels8)(uint8_t *block, const uint8_t *pixels, const int line_size, int h)
+ {
+ int stride = line_size;
+- __asm__ __volatile__ (
++ asm volatile (
+ "and r12, %[pixels], #7 \n\t"
+ "bic %[pixels], %[pixels], #7 \n\t"
+ "tmcr wcgr1, r12 \n\t"
+@@ -59,7 +60,7 @@
+ void DEF(avg, pixels8)(uint8_t *block, const uint8_t *pixels, const int line_size, int h)
+ {
+ int stride = line_size;
+- __asm__ __volatile__ (
++ asm volatile (
+ "and r12, %[pixels], #7 \n\t"
+ "bic %[pixels], %[pixels], #7 \n\t"
+ "tmcr wcgr1, r12 \n\t"
+@@ -101,7 +102,7 @@
+ void DEF(put, pixels16)(uint8_t *block, const uint8_t *pixels, const int line_size, int h)
+ {
+ int stride = line_size;
+- __asm__ __volatile__ (
++ asm volatile (
+ "and r12, %[pixels], #7 \n\t"
+ "bic %[pixels], %[pixels], #7 \n\t"
+ "tmcr wcgr1, r12 \n\t"
+@@ -141,7 +142,7 @@
+ void DEF(avg, pixels16)(uint8_t *block, const uint8_t *pixels, const int line_size, int h)
+ {
+ int stride = line_size;
+- __asm__ __volatile__ (
++ asm volatile (
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "pld [%[block]] \n\t"
+@@ -200,7 +201,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "and r12, %[pixels], #7 \n\t"
+@@ -249,7 +250,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "and r12, %[pixels], #7 \n\t"
+@@ -310,7 +311,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "pld [%[block]] \n\t"
+@@ -371,7 +372,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "pld [%[block]] \n\t"
+@@ -447,7 +448,7 @@
+ int stride = line_size;
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "and r12, %[pixels], #7 \n\t"
+@@ -501,7 +502,7 @@
+ int stride = line_size;
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "and r12, %[pixels], #7 \n\t"
+@@ -558,7 +559,7 @@
+ int stride = line_size;
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "pld [%[pixels], #32] \n\t"
+ "and r12, %[pixels], #7 \n\t"
+@@ -626,7 +627,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "mov r12, #2 \n\t"
+ "pld [%[pixels], #32] \n\t"
+@@ -720,7 +721,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[pixels]] \n\t"
+ "mov r12, #2 \n\t"
+ "pld [%[pixels], #32] \n\t"
+@@ -862,7 +863,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[block]] \n\t"
+ "pld [%[block], #32] \n\t"
+ "pld [%[pixels]] \n\t"
+@@ -966,7 +967,7 @@
+ // [wr0 wr1 wr2 wr3] for previous line
+ // [wr4 wr5 wr6 wr7] for current line
+ SET_RND(wr15); // =2 for rnd and =1 for no_rnd version
+- __asm__ __volatile__(
++ asm volatile(
+ "pld [%[block]] \n\t"
+ "pld [%[block], #32] \n\t"
+ "pld [%[pixels]] \n\t"
+@@ -1115,5 +1116,3 @@
+ : [line_size]"r"(line_size)
+ : "r12", "memory");
+ }
+-
+-#endif /* FFMPEG_DSPUTIL_IWMMXT_RND_H */
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/dsputil_neon.c mythtv/libs/libavcodec/armv4l/dsputil_neon.c
+--- mythtv.orig/libs/libavcodec/armv4l/dsputil_neon.c 1970-01-01 01:00:00.000000000 +0100
++++ mythtv/libs/libavcodec/armv4l/dsputil_neon.c 2008-07-24 19:54:01.023198000 +0200
+@@ -0,0 +1,397 @@
++/*
++ * ARM NEON optimised DSP functions
++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
++ *
++ * This file is part of FFmpeg.
++ *
++ * FFmpeg is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * FFmpeg 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++#include <stdint.h>
++
++#include "libavcodec/avcodec.h"
++#include "libavcodec/dsputil.h"
++
++extern void ff_put_h264_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride,
++ int h, int x, int y);
++
++#define PUT_PIXELS_16_X2(vhadd) \
++ "1: \n\t" \
++ "vld1.64 {d0,d1,d2}, [%[p]], %[line_size] \n\t" \
++ "vld1.64 {d4,d5,d6}, [%[p]], %[line_size] \n\t" \
++ "pld [%[p]] \n\t" \
++ "subs %[h], %[h], #2 \n\t" \
++ "vext.8 q1, q0, q1, #1 \n\t" \
++ "vext.8 q3, q2, q3, #1 \n\t" \
++ vhadd".u8 q0, q0, q1 \n\t" \
++ vhadd".u8 q2, q2, q3 \n\t" \
++ "vst1.64 {d0,d1}, [%[b],:64], %[line_size] \n\t" \
++ "vst1.64 {d4,d5}, [%[b],:64], %[line_size] \n\t" \
++ "bne 1b \n\t"
++
++#define PUT_PIXELS_16_Y2(vhadd) \
++ "add %[p1], %[p0], %[line_size] \n\t" \
++ "lsl %[l2], %[line_size], #1 \n\t" \
++ "vld1.64 {d0,d1}, [%[p0]], %[l2] \n\t" \
++ "vld1.64 {d2,d3}, [%[p1]], %[l2] \n\t" \
++ "1: \n\t" \
++ "subs %[h], %[h], #2 \n\t" \
++ vhadd".u8 q2, q0, q1 \n\t" \
++ "vst1.64 {d4,d5}, [%[b],:128], %[line_size] \n\t" \
++ "vld1.64 {d0,d1}, [%[p0]], %[l2] \n\t" \
++ vhadd".u8 q2, q0, q1 \n\t" \
++ "vst1.64 {d4,d5}, [%[b],:128], %[line_size] \n\t" \
++ "vld1.64 {d2,d3}, [%[p1]], %[l2] \n\t" \
++ "bne 1b \n\t"
++
++#define PUT_PIXELS_16_XY2(vshrn, no_rnd) \
++ "lsl %[l2], %[line_size], #1 \n\t" \
++ "add %[p1], %[p0], %[line_size] \n\t" \
++ "vld1.64 {d0,d1,d2}, [%[p0]], %[l2] \n\t" \
++ "vld1.64 {d4,d5,d6}, [%[p1]], %[l2] \n\t" \
++ "pld [%[p0]] \n\t" \
++ "pld [%[p1]] \n\t" \
++ "vext.8 q1, q0, q1, #1 \n\t" \
++ "vext.8 q3, q2, q3, #1 \n\t" \
++ "vaddl.u8 q8, d0, d2 \n\t" \
++ "vaddl.u8 q10, d1, d3 \n\t" \
++ "vaddl.u8 q9, d4, d6 \n\t" \
++ "vaddl.u8 q11, d5, d7 \n\t" \
++ "1: \n\t" \
++ "subs %[h], %[h], #2 \n\t" \
++ "vld1.64 {d0,d1,d2}, [%[p0]], %[l2] \n\t" \
++ "vadd.u16 q12, q8, q9 \n\t" \
++ "pld [%[p0]] \n\t" \
++ no_rnd "vadd.u16 q12, q12, q13 \n\t" \
++ "vext.8 q15, q0, q1, #1 \n\t" \
++ "vadd.u16 q1, q10, q11 \n\t" \
++ vshrn".u16 d28, q12, #2 \n\t" \
++ no_rnd "vadd.u16 q1, q1, q13 \n\t" \
++ vshrn".u16 d29, q1, #2 \n\t" \
++ "vaddl.u8 q8, d0, d30 \n\t" \
++ "vld1.64 {d2,d3,d4}, [%[p1]], %[l2] \n\t" \
++ "vaddl.u8 q10, d1, d31 \n\t" \
++ "vst1.64 {d28,d29}, [%[b],:128], %[line_size] \n\t" \
++ "vadd.u16 q12, q8, q9 \n\t" \
++ "pld [%[p1]] \n\t" \
++ no_rnd "vadd.u16 q12, q12, q13 \n\t" \
++ "vext.8 q2, q1, q2, #1 \n\t" \
++ "vadd.u16 q0, q10, q11 \n\t" \
++ vshrn".u16 d30, q12, #2 \n\t" \
++ no_rnd "vadd.u16 q0, q0, q13 \n\t" \
++ vshrn".u16 d31, q0, #2 \n\t" \
++ "vaddl.u8 q9, d2, d4 \n\t" \
++ "vst1.64 {d30,d31}, [%[b],:128], %[line_size] \n\t" \
++ "vaddl.u8 q11, d3, d5 \n\t" \
++ "bgt 1b \n\t"
++
++#define PUT_PIXELS_8_X2(vhadd) \
++ "1: \n\t" \
++ "vld1.64 {d0,d1}, [%[p]], %[line_size] \n\t" \
++ "vld1.64 {d2,d3}, [%[p]], %[line_size] \n\t" \
++ "pld [%[p]] \n\t" \
++ "subs %[h], %[h], #2 \n\t" \
++ "vext.8 d1, d0, d1, #1 \n\t" \
++ "vext.8 d3, d2, d3, #1 \n\t" \
++ "vswp d1, d2 \n\t" \
++ vhadd".u8 q0, q0, q1 \n\t" \
++ "vst1.64 {d0}, [%[b],:64], %[line_size] \n\t" \
++ "vst1.64 {d1}, [%[b],:64], %[line_size] \n\t" \
++ "bne 1b \n\t"
++
++#define PUT_PIXELS_8_Y2(vhadd) \
++ "add %[p1], %[p0], %[line_size] \n\t" \
++ "lsl %[l2], %[line_size], #1 \n\t" \
++ "vld1.64 {d0}, [%[p0]], %[l2] \n\t" \
++ "vld1.64 {d1}, [%[p1]], %[l2] \n\t" \
++ "1: \n\t" \
++ "subs %[h], %[h], #2 \n\t" \
++ vhadd".u8 d4, d0, d1 \n\t" \
++ "vst1.64 {d4}, [%[b],:64], %[line_size] \n\t" \
++ "vld1.64 {d0}, [%[p0]], %[l2] \n\t" \
++ vhadd".u8 d4, d0, d1 \n\t" \
++ "vst1.64 {d4}, [%[b],:64], %[line_size] \n\t" \
++ "vld1.64 {d1}, [%[p1]], %[l2] \n\t" \
++ "bne 1b \n\t"
++
++#define PUT_PIXELS8_XY2(vshrn, no_rnd) \
++ "lsl %[l2], %[line_size], #1 \n\t" \
++ "add %[p1], %[p0], %[line_size] \n\t" \
++ "vld1.64 {d0,d1}, [%[p0]], %[l2] \n\t" \
++ "vld1.64 {d2,d3}, [%[p1]], %[l2] \n\t" \
++ "pld [%[p0]] \n\t" \
++ "pld [%[p1]] \n\t" \
++ "vext.8 d4, d0, d1, #1 \n\t" \
++ "vext.8 d6, d2, d3, #1 \n\t" \
++ "vaddl.u8 q8, d0, d4 \n\t" \
++ "vaddl.u8 q9, d2, d6 \n\t" \
++ "1: \n\t" \
++ "subs %[h], %[h], #2 \n\t" \
++ "vld1.64 {d0,d1}, [%[p0]], %[l2] \n\t" \
++ "pld [%[p0]] \n\t" \
++ "vadd.u16 q10, q8, q9 \n\t" \
++ "vext.8 d4, d0, d1, #1 \n\t" \
++ no_rnd "vadd.u16 q10, q10, q11 \n\t" \
++ "vaddl.u8 q8, d0, d4 \n\t" \
++ vshrn".u16 d5, q10, #2 \n\t" \
++ "vld1.64 {d2,d3}, [%[p1]], %[l2] \n\t" \
++ "vadd.u16 q10, q8, q9 \n\t" \
++ "pld [%[p1]] \n\t" \
++ no_rnd "vadd.u16 q10, q10, q11 \n\t" \
++ "vst1.64 {d5}, [%[b],:64], %[line_size] \n\t" \
++ vshrn".u16 d7, q10, #2 \n\t" \
++ "vext.8 d6, d2, d3, #1 \n\t" \
++ "vaddl.u8 q9, d2, d6 \n\t" \
++ "vst1.64 {d7}, [%[b],:64], %[line_size] \n\t" \
++ "bgt 1b \n\t"
++
++static void put_pixels16_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ asm volatile(
++ "1: \n\t"
++ "vld1.64 {d0,d1}, [%[pixels]], %[line_size] \n\t"
++ "vld1.64 {d2,d3}, [%[pixels]], %[line_size] \n\t"
++ "vld1.64 {d4,d5}, [%[pixels]], %[line_size] \n\t"
++ "vld1.64 {d6,d7}, [%[pixels]], %[line_size] \n\t"
++ "pld [%[pixels]] \n\t"
++ "subs %[h], %[h], #4 \n\t"
++ "vst1.64 {d0,d1}, [%[block],:128], %[line_size] \n\t"
++ "vst1.64 {d2,d3}, [%[block],:128], %[line_size] \n\t"
++ "vst1.64 {d4,d5}, [%[block],:128], %[line_size] \n\t"
++ "vst1.64 {d6,d7}, [%[block],:128], %[line_size] \n\t"
++ "bne 1b \n\t"
++ : [block]"+r"(block), [pixels]"+r"(pixels), [h]"+r"(h)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "memory");
++}
++
++static void put_pixels16_x2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ asm volatile(
++ PUT_PIXELS_16_X2("vrhadd")
++ : [b]"+r"(block), [p]"+r"(pixels), [h]"+r"(h)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "memory");
++}
++
++static void put_pixels16_y2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ PUT_PIXELS_16_Y2("vrhadd")
++ : [b]"+r"(block), [p0]"+r"(pixels), [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d5", "memory");
++}
++
++static void put_pixels16_xy2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ PUT_PIXELS_16_XY2("vrshrn", "@")
++ : [b]"+r"(block),
++ [p0]"+r"(pixels),
++ [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
++ "d28", "d29", "d30", "d31",
++ "q8", "q9", "q10", "q11", "q12", "memory");
++}
++
++static void put_pixels8_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ asm volatile(
++ "1: \n\t"
++ "vld1.64 {d0}, [%[p]], %[line_size] \n\t"
++ "vld1.64 {d1}, [%[p]], %[line_size] \n\t"
++ "vld1.64 {d2}, [%[p]], %[line_size] \n\t"
++ "vld1.64 {d3}, [%[p]], %[line_size] \n\t"
++ "subs %[h], %[h], #4 \n\t"
++ "vst1.64 {d0}, [%[b],:64], %[line_size] \n\t"
++ "vst1.64 {d1}, [%[b],:64], %[line_size] \n\t"
++ "vst1.64 {d2}, [%[b],:64], %[line_size] \n\t"
++ "vst1.64 {d3}, [%[b],:64], %[line_size] \n\t"
++ "bne 1b \n\t"
++ : [b]"+r"(block), [p]"+r"(pixels), [h]"+r"(h)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "memory");
++}
++
++static void put_pixels8_x2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ asm volatile(
++ PUT_PIXELS_8_X2("vrhadd")
++ : [b]"+r"(block), [p]"+r"(pixels), [h]"+r"(h)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "memory");
++}
++
++static void put_pixels8_y2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ PUT_PIXELS_8_Y2("vrhadd")
++ : [b]"+r"(block), [p0]"+r"(pixels), [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d4", "memory");
++}
++
++static void put_pixels8_xy2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ PUT_PIXELS8_XY2("vrshrn", "@")
++ : [b]"+r"(block),
++ [p0]"+r"(pixels),
++ [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d6", "d7",
++ "q8", "q9", "q10", "memory");
++}
++
++static void put_no_rnd_pixels16_x2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ asm volatile(
++ PUT_PIXELS_16_X2("vhadd")
++ : [b]"+r"(block), [p]"+r"(pixels), [h]"+r"(h)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "memory");
++}
++
++static void put_no_rnd_pixels16_y2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ PUT_PIXELS_16_Y2("vhadd")
++ : [b]"+r"(block), [p0]"+r"(pixels), [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d5", "memory");
++}
++
++static void put_no_rnd_pixels16_xy2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ "vmov.i16 q13, #1 \n\t"
++ PUT_PIXELS_16_XY2("vshrn", "")
++ : [b]"+r"(block),
++ [p0]"+r"(pixels),
++ [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
++ "d28", "d29", "d30", "d31",
++ "q8", "q9", "q10", "q11", "q12", "q13", "memory");
++}
++
++static void put_no_rnd_pixels8_x2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ asm volatile(
++ PUT_PIXELS_8_X2("vhadd")
++ : [b]"+r"(block), [p]"+r"(pixels), [h]"+r"(h)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "memory");
++}
++
++static void put_no_rnd_pixels8_y2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ PUT_PIXELS_8_Y2("vhadd")
++ : [b]"+r"(block), [p0]"+r"(pixels), [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d4", "memory");
++}
++
++static void put_no_rnd_pixels8_xy2_neon(uint8_t *block, const uint8_t *pixels,
++ int line_size, int h)
++{
++ const uint8_t *p1;
++ int l2;
++
++ asm volatile(
++ "vmov.i16 q11, #1 \n\t"
++ PUT_PIXELS8_XY2("vshrn", "")
++ : [b]"+r"(block),
++ [p0]"+r"(pixels),
++ [p1]"=&r"(p1), [h]"+r"(h),
++ [l2]"=&r"(l2)
++ : [line_size]"r"(line_size)
++ : "d0", "d1", "d2", "d3", "d4", "d6", "d7",
++ "q8", "q9", "q10", "q11", "memory");
++}
++
++static void put_h264_qpel16_mc00_neon(uint8_t *dst, uint8_t *src, int stride)
++{
++ put_pixels16_neon(dst, src, stride, 16);
++}
++
++void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
++{
++ c->put_pixels_tab[0][0] = put_pixels16_neon;
++ c->put_pixels_tab[0][1] = put_pixels16_x2_neon;
++ c->put_pixels_tab[0][2] = put_pixels16_y2_neon;
++ c->put_pixels_tab[0][3] = put_pixels16_xy2_neon;
++ c->put_pixels_tab[1][0] = put_pixels8_neon;
++ c->put_pixels_tab[1][1] = put_pixels8_x2_neon;
++ c->put_pixels_tab[1][2] = put_pixels8_y2_neon;
++ c->put_pixels_tab[1][3] = put_pixels8_xy2_neon;
++
++ c->put_no_rnd_pixels_tab[0][0] = put_pixels16_neon;
++ c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x2_neon;
++ c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y2_neon;
++ c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_neon;
++ c->put_no_rnd_pixels_tab[1][0] = put_pixels8_neon;
++ c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels8_x2_neon;
++ c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels8_y2_neon;
++ c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_neon;
++
++ c->put_h264_chroma_pixels_tab[0] = ff_put_h264_chroma_mc8_neon;
++
++ c->put_h264_qpel_pixels_tab[0][0] = put_h264_qpel16_mc00_neon;
++}
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/float_arm_vfp.c mythtv/libs/libavcodec/armv4l/float_arm_vfp.c
+--- mythtv.orig/libs/libavcodec/armv4l/float_arm_vfp.c 1970-01-01 01:00:00.000000000 +0100
++++ mythtv/libs/libavcodec/armv4l/float_arm_vfp.c 2008-07-24 19:54:01.023198000 +0200
+@@ -0,0 +1,208 @@
++/*
++ * Copyright (c) 2008 Siarhei Siamashka <ssvb@users.sourceforge.net>
++ *
++ * This file is part of FFmpeg.
++ *
++ * FFmpeg is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * FFmpeg 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++#include "libavcodec/dsputil.h"
++
++/*
++ * VFP is a floating point coprocessor used in some ARM cores. VFP11 has 1 cycle
++ * throughput for almost all the instructions (except for double precision
++ * arithmetics), but rather high latency. Latency is 4 cycles for loads and 8 cycles
++ * for arithmetic operations. Scheduling code to avoid pipeline stalls is very
++ * important for performance. One more interesting feature is that VFP has
++ * independent load/store and arithmetics pipelines, so it is possible to make
++ * them work simultaneously and get more than 1 operation per cycle. Load/store
++ * pipeline can process 2 single precision floating point values per cycle and
++ * supports bulk loads and stores for large sets of registers. Arithmetic operations
++ * can be done on vectors, which allows to keep the arithmetics pipeline busy,
++ * while the processor may issue and execute other instructions. Detailed
++ * optimization manuals can be found at http://www.arm.com
++ */
++
++/**
++ * ARM VFP optimized implementation of 'vector_fmul_c' function.
++ * Assume that len is a positive number and is multiple of 8
++ */
++static void vector_fmul_vfp(float *dst, const float *src, int len)
++{
++ int tmp;
++ asm volatile(
++ "fmrx %[tmp], fpscr\n\t"
++ "orr %[tmp], %[tmp], #(3 << 16)\n\t" /* set vector size to 4 */
++ "fmxr fpscr, %[tmp]\n\t"
++
++ "fldmias %[dst_r]!, {s0-s3}\n\t"
++ "fldmias %[src]!, {s8-s11}\n\t"
++ "fldmias %[dst_r]!, {s4-s7}\n\t"
++ "fldmias %[src]!, {s12-s15}\n\t"
++ "fmuls s8, s0, s8\n\t"
++ "1:\n\t"
++ "subs %[len], %[len], #16\n\t"
++ "fmuls s12, s4, s12\n\t"
++ "fldmiasge %[dst_r]!, {s16-s19}\n\t"
++ "fldmiasge %[src]!, {s24-s27}\n\t"
++ "fldmiasge %[dst_r]!, {s20-s23}\n\t"
++ "fldmiasge %[src]!, {s28-s31}\n\t"
++ "fmulsge s24, s16, s24\n\t"
++ "fstmias %[dst_w]!, {s8-s11}\n\t"
++ "fstmias %[dst_w]!, {s12-s15}\n\t"
++ "fmulsge s28, s20, s28\n\t"
++ "fldmiasgt %[dst_r]!, {s0-s3}\n\t"
++ "fldmiasgt %[src]!, {s8-s11}\n\t"
++ "fldmiasgt %[dst_r]!, {s4-s7}\n\t"
++ "fldmiasgt %[src]!, {s12-s15}\n\t"
++ "fmulsge s8, s0, s8\n\t"
++ "fstmiasge %[dst_w]!, {s24-s27}\n\t"
++ "fstmiasge %[dst_w]!, {s28-s31}\n\t"
++ "bgt 1b\n\t"
++
++ "bic %[tmp], %[tmp], #(7 << 16)\n\t" /* set vector size back to 1 */
++ "fmxr fpscr, %[tmp]\n\t"
++ : [dst_w] "+&r" (dst), [dst_r] "+&r" (dst), [src] "+&r" (src), [len] "+&r" (len), [tmp] "=&r" (tmp)
++ :
++ : "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
++ "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15",
++ "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
++ "s24", "s25", "s26", "s27", "s28", "s29", "s30", "s31",
++ "cc", "memory");
++}
++
++/**
++ * ARM VFP optimized implementation of 'vector_fmul_reverse_c' function.
++ * Assume that len is a positive number and is multiple of 8
++ */
++static void vector_fmul_reverse_vfp(float *dst, const float *src0, const float *src1, int len)
++{
++ src1 += len;
++ asm volatile(
++ "fldmdbs %[src1]!, {s0-s3}\n\t"
++ "fldmias %[src0]!, {s8-s11}\n\t"
++ "fldmdbs %[src1]!, {s4-s7}\n\t"
++ "fldmias %[src0]!, {s12-s15}\n\t"
++ "fmuls s8, s3, s8\n\t"
++ "fmuls s9, s2, s9\n\t"
++ "fmuls s10, s1, s10\n\t"
++ "fmuls s11, s0, s11\n\t"
++ "1:\n\t"
++ "subs %[len], %[len], #16\n\t"
++ "fldmdbsge %[src1]!, {s16-s19}\n\t"
++ "fmuls s12, s7, s12\n\t"
++ "fldmiasge %[src0]!, {s24-s27}\n\t"
++ "fmuls s13, s6, s13\n\t"
++ "fldmdbsge %[src1]!, {s20-s23}\n\t"
++ "fmuls s14, s5, s14\n\t"
++ "fldmiasge %[src0]!, {s28-s31}\n\t"
++ "fmuls s15, s4, s15\n\t"
++ "fmulsge s24, s19, s24\n\t"
++ "fldmdbsgt %[src1]!, {s0-s3}\n\t"
++ "fmulsge s25, s18, s25\n\t"
++ "fstmias %[dst]!, {s8-s13}\n\t"
++ "fmulsge s26, s17, s26\n\t"
++ "fldmiasgt %[src0]!, {s8-s11}\n\t"
++ "fmulsge s27, s16, s27\n\t"
++ "fmulsge s28, s23, s28\n\t"
++ "fldmdbsgt %[src1]!, {s4-s7}\n\t"
++ "fmulsge s29, s22, s29\n\t"
++ "fstmias %[dst]!, {s14-s15}\n\t"
++ "fmulsge s30, s21, s30\n\t"
++ "fmulsge s31, s20, s31\n\t"
++ "fmulsge s8, s3, s8\n\t"
++ "fldmiasgt %[src0]!, {s12-s15}\n\t"
++ "fmulsge s9, s2, s9\n\t"
++ "fmulsge s10, s1, s10\n\t"
++ "fstmiasge %[dst]!, {s24-s27}\n\t"
++ "fmulsge s11, s0, s11\n\t"
++ "fstmiasge %[dst]!, {s28-s31}\n\t"
++ "bgt 1b\n\t"
++
++ : [dst] "+&r" (dst), [src0] "+&r" (src0), [src1] "+&r" (src1), [len] "+&r" (len)
++ :
++ : "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
++ "s8", "s9", "s10", "s11", "s12", "s13", "s14", "s15",
++ "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
++ "s24", "s25", "s26", "s27", "s28", "s29", "s30", "s31",
++ "cc", "memory");
++}
++
++#ifdef HAVE_ARMV6
++/**
++ * ARM VFP optimized float to int16 conversion.
++ * Assume that len is a positive number and is multiple of 8, destination
++ * buffer is at least 4 bytes aligned (8 bytes alignment is better for
++ * performance), little endian byte sex
++ */
++void float_to_int16_vfp(int16_t *dst, const float *src, int len)
++{
++ asm volatile(
++ "fldmias %[src]!, {s16-s23}\n\t"
++ "ftosis s0, s16\n\t"
++ "ftosis s1, s17\n\t"
++ "ftosis s2, s18\n\t"
++ "ftosis s3, s19\n\t"
++ "ftosis s4, s20\n\t"
++ "ftosis s5, s21\n\t"
++ "ftosis s6, s22\n\t"
++ "ftosis s7, s23\n\t"
++ "1:\n\t"
++ "subs %[len], %[len], #8\n\t"
++ "fmrrs r3, r4, {s0, s1}\n\t"
++ "fmrrs r5, r6, {s2, s3}\n\t"
++ "fmrrs r7, r8, {s4, s5}\n\t"
++ "fmrrs ip, lr, {s6, s7}\n\t"
++ "fldmiasgt %[src]!, {s16-s23}\n\t"
++ "ssat r4, #16, r4\n\t"
++ "ssat r3, #16, r3\n\t"
++ "ssat r6, #16, r6\n\t"
++ "ssat r5, #16, r5\n\t"
++ "pkhbt r3, r3, r4, lsl #16\n\t"
++ "pkhbt r4, r5, r6, lsl #16\n\t"
++ "ftosisgt s0, s16\n\t"
++ "ftosisgt s1, s17\n\t"
++ "ftosisgt s2, s18\n\t"
++ "ftosisgt s3, s19\n\t"
++ "ftosisgt s4, s20\n\t"
++ "ftosisgt s5, s21\n\t"
++ "ftosisgt s6, s22\n\t"
++ "ftosisgt s7, s23\n\t"
++ "ssat r8, #16, r8\n\t"
++ "ssat r7, #16, r7\n\t"
++ "ssat lr, #16, lr\n\t"
++ "ssat ip, #16, ip\n\t"
++ "pkhbt r5, r7, r8, lsl #16\n\t"
++ "pkhbt r6, ip, lr, lsl #16\n\t"
++ "stmia %[dst]!, {r3-r6}\n\t"
++ "bgt 1b\n\t"
++
++ : [dst] "+&r" (dst), [src] "+&r" (src), [len] "+&r" (len)
++ :
++ : "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
++ "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
++ "r3", "r4", "r5", "r6", "r7", "r8", "ip", "lr",
++ "cc", "memory");
++}
++#endif
++
++void ff_float_init_arm_vfp(DSPContext* c, AVCodecContext *avctx)
++{
++ c->vector_fmul = vector_fmul_vfp;
++ c->vector_fmul_reverse = vector_fmul_reverse_vfp;
++#ifdef HAVE_ARMV6
++ c->float_to_int16 = float_to_int16_vfp;
++#endif
++}
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/h264dsp_neon.S mythtv/libs/libavcodec/armv4l/h264dsp_neon.S
+--- mythtv.orig/libs/libavcodec/armv4l/h264dsp_neon.S 1970-01-01 01:00:00.000000000 +0100
++++ mythtv/libs/libavcodec/armv4l/h264dsp_neon.S 2008-07-24 19:54:01.033198000 +0200
+@@ -0,0 +1,148 @@
++/*
++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
++ *
++ * This file is part of FFmpeg.
++ *
++ * FFmpeg is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * FFmpeg 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++ .fpu neon
++
++ .text
++ .align
++ .global ff_put_h264_chroma_mc8_neon
++ .func ff_put_h264_chroma_mc8_neon
++/* void ff_put_h264_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride,
++ int h, int x, int y) */
++ff_put_h264_chroma_mc8_neon:
++ push {r4-r7}
++ ldrd r4, [sp, #16]
++
++ pld [r1]
++ pld [r1, r2]
++
++ muls r7, r4, r5
++ rsb r6, r7, r5, lsl #3
++ rsb ip, r7, r4, lsl #3
++ sub r4, r7, r4, lsl #3
++ sub r4, r4, r5, lsl #3
++ add r4, r4, #64
++
++ beq 2f
++
++ add r5, r1, r2
++
++ vdup.8 d0, r4
++ lsl r4, r2, #1
++ vdup.8 d1, ip
++ vld1.64 {d4,d5}, [r1], r4
++ vdup.8 d2, r6
++ vld1.64 {d6,d7}, [r5], r4
++ vdup.8 d3, r7
++
++ mov r6, #32
++ vext.8 d5, d4, d5, #1
++ vdup.16 q12, r6
++ vext.8 d7, d6, d7, #1
++1:
++ pld [r5]
++ vmull.u8 q8, d4, d0
++ vmlal.u8 q8, d5, d1
++ vld1.64 {d4,d5}, [r1], r4
++ vmlal.u8 q8, d6, d2
++ vext.8 d5, d4, d5, #1
++ vmlal.u8 q8, d7, d3
++ vmull.u8 q9, d6, d0
++ vadd.i16 q8, q8, q12
++ subs r3, r3, #2
++ vmlal.u8 q9, d7, d1
++ vshrn.u16 d16, q8, #6
++ vld1.64 {d6,d7}, [r5], r4
++ vmlal.u8 q9, d4, d2
++ vmlal.u8 q9, d5, d3
++ pld [r1]
++ vadd.i16 q9, q9, q12
++ vst1.64 {d16}, [r0,:64], r2
++ vshrn.u16 d17, q9, #6
++ vext.8 d7, d6, d7, #1
++ vst1.64 {d17}, [r0,:64], r2
++ bgt 1b
++
++ pop {r4-r7}
++ bx lr
++
++2:
++ tst r6, r6
++ add ip, ip, r6
++ vdup.8 d0, r4
++ vdup.8 d1, ip
++ mov r6, #32
++ vdup.16 q12, r6
++
++ beq 4f
++
++ add r5, r1, r2
++ lsl r4, r2, #1
++ vld1.64 {d4}, [r1], r4
++ vld1.64 {d6}, [r5], r4
++3:
++ pld [r5]
++ vmull.u8 q8, d4, d0
++ vmlal.u8 q8, d6, d1
++ vld1.64 {d4}, [r1], r4
++ vmull.u8 q9, d6, d0
++ vadd.i16 q8, q8, q12
++ vmlal.u8 q9, d4, d1
++ vshrn.u16 d16, q8, #6
++ vadd.i16 q9, q9, q12
++ vst1.64 {d16}, [r0,:64], r2
++ vshrn.u16 d17, q9, #6
++ subs r3, r3, #2
++ vld1.64 {d6}, [r5], r4
++ pld [r1]
++ vst1.64 {d17}, [r0,:64], r2
++ bgt 3b
++
++ pop {r4-r7}
++ bx lr
++
++4:
++ vld1.64 {d4,d5}, [r1], r2
++ vld1.64 {d6,d7}, [r1], r2
++ vext.8 d5, d4, d5, #1
++ vext.8 d7, d6, d7, #1
++5:
++ pld [r1]
++ subs r3, r3, #2
++ vmull.u8 q8, d4, d0
++ vmlal.u8 q8, d5, d1
++ vld1.64 {d4,d5}, [r1], r2
++ vmull.u8 q9, d6, d0
++ vmlal.u8 q9, d7, d1
++ pld [r1]
++ vadd.i16 q8, q8, q12
++ vadd.i16 q9, q9, q12
++ vext.8 d5, d4, d5, #1
++ vshrn.u16 d16, q8, #6
++ vld1.64 {d6,d7}, [r1], r2
++ vshrn.u16 d17, q9, #6
++ vst1.64 {d16}, [r0,:64], r2
++ vext.8 d7, d6, d7, #1
++ vst1.64 {d17}, [r0,:64], r2
++ bgt 5b
++
++ pop {r4-r7}
++ bx lr
++ .endfunc
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/mpegvideo_arm.c mythtv/libs/libavcodec/armv4l/mpegvideo_arm.c
+--- mythtv.orig/libs/libavcodec/armv4l/mpegvideo_arm.c 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/mpegvideo_arm.c 2008-07-24 19:54:01.263198000 +0200
+@@ -18,9 +18,9 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#include "dsputil.h"
+-#include "mpegvideo.h"
+-#include "avcodec.h"
++#include "libavcodec/avcodec.h"
++#include "libavcodec/dsputil.h"
++#include "libavcodec/mpegvideo.h"
+
+ extern void MPV_common_init_iwmmxt(MpegEncContext *s);
+ extern void MPV_common_init_armv5te(MpegEncContext *s);
+@@ -28,7 +28,7 @@
+ void MPV_common_init_armv4l(MpegEncContext *s)
+ {
+ /* IWMMXT support is a superset of armv5te, so
+- * allow optimised functions for armv5te unless
++ * allow optimized functions for armv5te unless
+ * a better iwmmxt function exists
+ */
+ #ifdef HAVE_ARMV5TE
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/mpegvideo_armv5te.c mythtv/libs/libavcodec/armv4l/mpegvideo_armv5te.c
+--- mythtv.orig/libs/libavcodec/armv4l/mpegvideo_armv5te.c 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/mpegvideo_armv5te.c 2008-07-24 19:54:01.263198000 +0200
+@@ -19,9 +19,9 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#include "dsputil.h"
+-#include "mpegvideo.h"
+-#include "avcodec.h"
++#include "libavcodec/avcodec.h"
++#include "libavcodec/dsputil.h"
++#include "libavcodec/mpegvideo.h"
+
+
+ #ifdef ENABLE_ARM_TESTS
+@@ -65,7 +65,7 @@
+ ({ DCTELEM *xblock = xxblock; \
+ int xqmul = xxqmul, xqadd = xxqadd, xcount = xxcount, xtmp; \
+ int xdata1, xdata2; \
+-__asm__ __volatile__( \
++asm volatile( \
+ "subs %[count], %[count], #2 \n\t" \
+ "ble 2f \n\t" \
+ "ldrd r4, [%[block], #0] \n\t" \
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/mpegvideo_iwmmxt.c mythtv/libs/libavcodec/armv4l/mpegvideo_iwmmxt.c
+--- mythtv.orig/libs/libavcodec/armv4l/mpegvideo_iwmmxt.c 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/mpegvideo_iwmmxt.c 2008-07-24 19:54:01.273198000 +0200
+@@ -18,9 +18,9 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+-#include "dsputil.h"
+-#include "mpegvideo.h"
+-#include "avcodec.h"
++#include "libavcodec/avcodec.h"
++#include "libavcodec/dsputil.h"
++#include "libavcodec/mpegvideo.h"
+
+ static void dct_unquantize_h263_intra_iwmmxt(MpegEncContext *s,
+ DCTELEM *block, int n, int qscale)
+@@ -48,7 +48,7 @@
+ else
+ nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];
+
+- __asm__ __volatile__ (
++ asm volatile (
+ /* "movd %1, %%mm6 \n\t" //qmul */
+ /* "packssdw %%mm6, %%mm6 \n\t" */
+ /* "packssdw %%mm6, %%mm6 \n\t" */
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/simple_idct_arm.S mythtv/libs/libavcodec/armv4l/simple_idct_arm.S
+--- mythtv.orig/libs/libavcodec/armv4l/simple_idct_arm.S 2008-07-23 12:19:05.000000000 +0200
++++ mythtv/libs/libavcodec/armv4l/simple_idct_arm.S 2008-07-24 19:54:01.503198000 +0200
+@@ -79,7 +79,7 @@
+
+
+ __row_loop:
+- @@ read the row and check if it is null, almost null, or not, according to strongarm specs, it is not necessary to optimise ldr accesses (i.e. split 32bits in 2 16bits words), at least it gives more usable registers :)
++ @@ read the row and check if it is null, almost null, or not, according to strongarm specs, it is not necessary to optimize ldr accesses (i.e. split 32bits in 2 16bits words), at least it gives more usable registers :)
+ ldr r1, [r14, #0] @ R1=(int32)(R12)[0]=ROWr32[0] (relative row cast to a 32b pointer)
+ ldr r2, [r14, #4] @ R2=(int32)(R12)[1]=ROWr32[1]
+ ldr r3, [r14, #8] @ R3=ROWr32[2]
+@@ -421,7 +421,7 @@
+ @@ col[40] = ((a2 - b2) >> COL_SHIFT);
+ @@ col[48] = ((a1 - b1) >> COL_SHIFT);
+ @@ col[56] = ((a0 - b0) >> COL_SHIFT);
+- @@@@@ no optimisation here @@@@@
++ @@@@@ no optimization here @@@@@
+ add r8, r6, r0 @ R8=a0+b0
+ add r9, r2, r1 @ R9=a1+b1
+ mov r8, r8, asr #COL_SHIFT
+diff -Nurd mythtv.orig/libs/libavcodec/armv4l/simple_idct_neon.S mythtv/libs/libavcodec/armv4l/simple_idct_neon.S
+--- mythtv.orig/libs/libavcodec/armv4l/simple_idct_neon.S 1970-01-01 01:00:00.000000000 +0100
++++ mythtv/libs/libavcodec/armv4l/simple_idct_neon.S 2008-07-24 19:54:01.503198000 +0200
+@@ -0,0 +1,388 @@
++/*
++ * ARM NEON IDCT
++ *
++ * Copyright (c) 2008 Mans Rullgard <mans@mansr.com>
++ *
++ * Based on Simple IDCT
++ * Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at>
++ *
++ * This file is part of FFmpeg.
++ *
++ * FFmpeg is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * FFmpeg 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with FFmpeg; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++#define W1 22725 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
++#define W2 21407 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
++#define W3 19266 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
++#define W4 16383 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
++#define W5 12873 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
++#define W6 8867 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
++#define W7 4520 //cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5
++#define W4c ((1<<(COL_SHIFT-1))/W4)
++#define ROW_SHIFT 11
++#define COL_SHIFT 20
++
++#define w1 d0[0]
++#define w2 d0[1]
++#define w3 d0[2]
++#define w4 d0[3]
++#define w5 d1[0]
++#define w6 d1[1]
++#define w7 d1[2]
++#define w4c d1[3]
++
++ .fpu neon
++
++ .macro idct_col4_top
++ vmull.s16 q7, d6, w2 /* q9 = W2 * col[2] */
++ vmull.s16 q8, d6, w6 /* q10 = W6 * col[2] */
++ vmull.s16 q9, d4, w1 /* q9 = W1 * col[1] */
++ vadd.i32 q11, q15, q7
++ vmull.s16 q10, d4, w3 /* q10 = W3 * col[1] */
++ vadd.i32 q12, q15, q8
++ vmull.s16 q5, d4, w5 /* q5 = W5 * col[1] */
++ vsub.i32 q13, q15, q8
++ vmull.s16 q6, d4, w7 /* q6 = W7 * col[1] */
++ vsub.i32 q14, q15, q7
++
++ vmlal.s16 q9, d8, w3 /* q9 += W3 * col[3] */
++ vmlsl.s16 q10, d8, w7 /* q10 -= W7 * col[3] */
++ vmlsl.s16 q5, d8, w1 /* q5 -= W1 * col[3] */
++ vmlsl.s16 q6, d8, w5 /* q6 -= W5 * col[3] */
++ .endm
++
++ .macro idct_col4_mid1
++ vmull.s16 q7, d3, w4 /* q7 = W4 * col[4] */
++ vadd.i32 q11, q11, q7
++ vsub.i32 q12, q12, q7
++ vsub.i32 q13, q13, q7
++ vadd.i32 q14, q14, q7
++ .endm
++
++ .macro idct_col4_mid2
++ vmlal.s16 q9, d5, w5 /* q9 += W5 * col[5] */
++ vmlsl.s16 q10, d5, w1 /* q10 -= W1 * col[5] */
++ vmlal.s16 q5, d5, w7 /* q5 += W7 * col[5] */
++ vmlal.s16 q6, d5, w3 /* q6 += W3 * col[5] */
++ .endm
++
++ .macro idct_col4_mid3
++ vmull.s16 q7, d7, w6 /* q7 = W6 * col[6] */
++ vmull.s16 q8, d7, w2 /* q8 = W2 * col[6] */
++ vadd.i32 q11, q11, q7
++ vsub.i32 q12, q12, q8
++ vadd.i32 q13, q13, q8
++ vsub.i32 q14, q14, q7
++ .endm
++
++ .macro idct_col4_mid4
++ vmlal.s16 q9, d9, w7
++ vmlsl.s16 q10, d9, w5
++ vmlal.s16 q5, d9, w3
++ vmlsl.s16 q6, d9, w1
++ .endm
++
++ .macro idct_col4_mid
++ vmull.s16 q7, d3, w4 /* q7 = W4 * col[4] */
++ vmlal.s16 q9, d5, w5 /* q9 += W5 * col[5] */
++ vmlsl.s16 q10, d5, w1 /* q10 -= W1 * col[5] */
++ vadd.i32 q11, q11, q7
++ vmull.s16 q8, d7, w2 /* q8 = W2 * col[6] */
++ vsub.i32 q12, q12, q7
++ vmlal.s16 q5, d5, w7 /* q5 += W7 * col[5] */
++ vsub.i32 q13, q13, q7
++ vmlal.s16 q6, d5, w3 /* q6 += W3 * col[5] */
++ vadd.i32 q14, q14, q7
++ vmull.s16 q7, d7, w6 /* q7 = W6 * col[6] */
++ vadd.i32 q11, q11, q7
++ vmlal.s16 q9, d9, w7
++ vsub.i32 q12, q12, q8
++ vmlsl.s16 q10, d9, w5
++ vadd.i32 q13, q13, q8
++ vmlal.s16 q5, d9, w3
++ vsub.i32 q14, q14, q7
++ vmlsl.s16 q6, d9, w1
++ .endm
++
++ .macro idct_col4_end
++ vadd.i32 q3, q11, q9
++ vadd.i32 q4, q12, q10
++ vadd.i32 q7, q13, q5
++ vadd.i32 q8, q14, q6
++ vsub.i32 q11, q11, q9
++ vsub.i32 q12, q12, q10
++ vsub.i32 q13, q13, q5
++ vsub.i32 q14, q14, q6
++ .endm
++
++ .text
++ .align
++ .type idct_row4_neon, %function
++ .func idct_row4_neon
++idct_row4_neon:
++ vld1.64 {d2,d3}, [a3,:128]!
++ vld1.64 {d4,d5}, [a3,:128]!
++ vld1.64 {d6,d7}, [a3,:128]!
++ vld1.64 {d8,d9}, [a3,:128]!
++ add a3, a3, #-64
++
++ vmov.i32 q15, #(1<<(ROW_SHIFT-1))
++ vorr d10, d3, d5
++ vtrn.16 q1, q2
++ vorr d11, d7, d9
++ vtrn.16 q3, q4
++ vorr d10, d10, d11
++ vtrn.32 q1, q3
++ vmlal.s16 q15, d2, w4 /* q15 += W4 * col[0] */
++ vtrn.32 q2, q4
++ vmov a4, v1, d10
++
++ idct_col4_top
++
++ orrs a4, a4, v1
++ beq 1f
++ idct_col4_mid
++1:
++ vadd.i32 q3, q11, q9
++ vadd.i32 q4, q12, q10
++ vshrn.i32 d2, q3, #ROW_SHIFT
++ vadd.i32 q7, q13, q5
++ vshrn.i32 d4, q4, #ROW_SHIFT
++ vadd.i32 q8, q14, q6
++ vshrn.i32 d6, q7, #ROW_SHIFT
++ vsub.i32 q11, q11, q9
++ vshrn.i32 d8, q8, #ROW_SHIFT
++ vsub.i32 q12, q12, q10
++ vshrn.i32 d9, q11, #ROW_SHIFT
++ vsub.i32 q13, q13, q5
++ vshrn.i32 d7, q12, #ROW_SHIFT
++ vsub.i32 q14, q14, q6
++ vshrn.i32 d5, q13, #ROW_SHIFT
++ vshrn.i32 d3, q14, #ROW_SHIFT
++
++ vtrn.16 q1, q2
++ vtrn.16 q3, q4
++ vtrn.32 q1, q3
++ vtrn.32 q2, q4
++
++ vst1.64 {d2,d3}, [a3,:128]!
++ vst1.64 {d4,d5}, [a3,:128]!
++ vst1.64 {d6,d7}, [a3,:128]!
++ vst1.64 {d8,d9}, [a3,:128]!
++
++ mov pc, lr
++ .endfunc
++
++ .align
++ .type idct_col4_neon, %function
++ .func idct_col4_neon
++idct_col4_neon:
++ mov ip, #16
++ vld1.64 {d2}, [a3,:64], ip /* d2 = col[0] */
++ vld1.64 {d4}, [a3,:64], ip /* d3 = col[1] */
++ vld1.64 {d6}, [a3,:64], ip /* d4 = col[2] */
++ vld1.64 {d8}, [a3,:64], ip /* d5 = col[3] */
++ vld1.64 {d3}, [a3,:64], ip /* d6 = col[4] */
++ vld1.64 {d5}, [a3,:64], ip /* d7 = col[5] */
++ vld1.64 {d7}, [a3,:64], ip /* d8 = col[6] */
++ vld1.64 {d9}, [a3,:64], ip /* d9 = col[7] */
++
++ vrev64.32 d11, d3
++ vrev64.32 d13, d5
++ vorr d11, d3, d11
++ vrev64.32 d15, d7
++ vorr d13, d5, d13
++ vrev64.32 d17, d9
++ vorr d15, d7, d15
++ vmov.32 v1, d11[0]
++ vmov.32 v2, d13[0]
++ vorr d17, d9, d17
++ vmov.32 v3, d15[0]
++ vmov.32 ip, d17[0]
++ vdup.16 d30, w4c
++ vadd.i16 d30, d30, d2
++ vmull.s16 q15, d30, w4 /* q15 = W4 * (col[0]+(1<<(COL_SHIFT-1))/W4) */
++
++ idct_col4_top
++ tst v1, v1
++ beq 1f
++ idct_col4_mid1
++1: tst v2, v2
++ beq 2f
++ idct_col4_mid2
++2: tst v3, v3
++ beq 3f
++ idct_col4_mid3
++3: tst ip, ip
++ beq 4f
++ idct_col4_mid4
++4:
++ idct_col4_end
++
++ vshr.s32 q2, q3, #COL_SHIFT
++ vshr.s32 q3, q4, #COL_SHIFT
++ vmovn.i32 d2, q2
++ vshr.s32 q4, q7, #COL_SHIFT
++ vmovn.i32 d3, q3
++ vshr.s32 q5, q8, #COL_SHIFT
++ vmovn.i32 d4, q4
++ vshr.s32 q6, q14, #COL_SHIFT
++ vmovn.i32 d5, q5
++ vshr.s32 q7, q13, #COL_SHIFT
++ vmovn.i32 d6, q6
++ vshr.s32 q8, q12, #COL_SHIFT
++ vmovn.i32 d7, q7
++ vshr.s32 q9, q11, #COL_SHIFT
++ vmovn.i32 d8, q8
++ vmovn.i32 d9, q9
++
++ mov pc, lr
++ .endfunc
++
++ .macro idct_col4_st16
++ mov ip, #16
++ vst1.64 {d2}, [a3,:64], ip
++ vst1.64 {d3}, [a3,:64], ip
++ vst1.64 {d4}, [a3,:64], ip
++ vst1.64 {d5}, [a3,:64], ip
++ vst1.64 {d6}, [a3,:64], ip
++ vst1.64 {d7}, [a3,:64], ip
++ vst1.64 {d8}, [a3,:64], ip
++ vst1.64 {d9}, [a3,:64], ip
++ .endm
++
++ .align
++ .type idct_col4_add8, %function
++ .func idct_col4_add8
++idct_col4_add8:
++ vld1.32 {d10[0]}, [a1,:32], a2
++ vld1.32 {d10[1]}, [a1,:32], a2
++ vld1.32 {d11[0]}, [a1,:32], a2
++ vld1.32 {d11[1]}, [a1,:32], a2
++ vld1.32 {d12[0]}, [a1,:32], a2
++ vld1.32 {d12[1]}, [a1,:32], a2
++ vld1.32 {d13[0]}, [a1,:32], a2
++ vld1.32 {d13[1]}, [a1,:32], a2
++
++ vaddw.u8 q1, q1, d10
++ vaddw.u8 q2, q2, d11
++ vaddw.u8 q3, q3, d12
++ vaddw.u8 q4, q4, d13
++
++ sub a1, a1, a2, lsl #3
++ .endfunc
++
++ .type idct_col4_st8, %function
++ .func idct_col4_st8
++idct_col4_st8:
++ vqmovun.s16 d2, q1
++ vqmovun.s16 d3, q2
++ vqmovun.s16 d4, q3
++ vqmovun.s16 d5, q4
++
++ vst1.32 {d2[0]}, [a1,:32], a2
++ vst1.32 {d2[1]}, [a1,:32], a2
++ vst1.32 {d3[0]}, [a1,:32], a2
++ vst1.32 {d3[1]}, [a1,:32], a2
++ vst1.32 {d4[0]}, [a1,:32], a2
++ vst1.32 {d4[1]}, [a1,:32], a2
++ vst1.32 {d5[0]}, [a1,:32], a2
++ vst1.32 {d5[1]}, [a1,:32], a2
++ mov pc, lr
++ .endfunc
++
++ .align 4
++const: .short W1, W2, W3, W4, W5, W6, W7, W4c
++
++ .macro idct_start data
++ pld [\data]
++ pld [\data, #64]
++ push {v1-v3, lr}
++ vpush {d8-d15}
++ adr a4, const
++ vld1.64 {d0,d1}, [a4,:128]
++ .endm
++
++ .macro idct_end
++ vpop {d8-d15}
++ pop {v1-v3, pc}
++ .endm
++
++ .align
++ .global ff_simple_idct_neon
++ .type ff_simple_idct_neon, %function
++ .func ff_simple_idct_neon
++/* void ff_simple_idct_neon(DCTELEM *data); */
++ff_simple_idct_neon:
++ idct_start a1
++
++ mov a3, a1
++ bl idct_row4_neon
++ bl idct_row4_neon
++ add a3, a3, #-128
++ bl idct_col4_neon
++ add a3, a3, #-128
++ idct_col4_st16
++ add a3, a3, #-120
++ bl idct_col4_neon
++ add a3, a3, #-128
++ idct_col4_st16
++
++ idct_end
++ .endfunc
++
++ .align
++ .global ff_simple_idct_put_neon
++ .type ff_simple_idct_put_neon, %function
++ .func ff_simple_idct_put_neon
++/* void ff_simple_idct_put_neon(uint8_t *dst, int line_size, DCTELEM *data); */
++ff_simple_idct_put_neon:
++ idct_start a3
++
++ bl idct_row4_neon
++ bl idct_row4_neon
++ add a3, a3, #-128
++ bl idct_col4_neon
++ bl idct_col4_st8
++ sub a1, a1, a2, lsl #3
++ add a1, a1, #4
++ add a3, a3, #-120
++ bl idct_col4_neon
++ bl idct_col4_st8
++
++ idct_end
++ .endfunc
++
++ .align
++ .global ff_simple_idct_add_neon
++ .type ff_simple_idct_add_neon, %function
++ .func ff_simple_idct_add_neon
++/* void ff_simple_idct_add_neon(uint8_t *dst, int line_size, DCTELEM *data); */
++ff_simple_idct_add_neon:
++ idct_start a3
++
++ bl idct_row4_neon
++ bl idct_row4_neon
++ add a3, a3, #-128
++ bl idct_col4_neon
++ bl idct_col4_add8
++ sub a1, a1, a2, lsl #3
++ add a1, a1, #4
++ add a3, a3, #-120
++ bl idct_col4_neon
++ bl idct_col4_add8
++
++ idct_end
++ .endfunc
+diff -Nurd mythtv.orig/libs/libavcodec/avcodec.h mythtv/libs/libavcodec/avcodec.h
+--- mythtv.orig/libs/libavcodec/avcodec.h 2008-07-23 12:19:11.000000000 +0200
++++ mythtv/libs/libavcodec/avcodec.h 2008-07-24 19:56:46.953198000 +0200
+@@ -1328,6 +1328,8 @@
+ #define FF_IDCT_SIMPLEARMV6 17
+ #define FF_IDCT_SIMPLEVIS 18
+ #define FF_IDCT_WMV2 19
++#define FF_IDCT_FAAN 20
++#define FF_IDCT_SIMPLENEON 21
+
+ /**
+ * slice count
+diff -Nurd mythtv.orig/libs/libavcodec/libavcodec.pro mythtv/libs/libavcodec/libavcodec.pro
+--- mythtv.orig/libs/libavcodec/libavcodec.pro 2008-07-23 12:19:10.000000000 +0200
++++ mythtv/libs/libavcodec/libavcodec.pro 2008-07-24 19:54:01.503198000 +0200
+@@ -413,6 +413,8 @@
+
+ contains( HAVE_ARMV6, yes ) { SOURCES += armv4l/simple_idct_armv6.S }
+
++contains( HAVE_NEON, yes ) { SOURCES += armv4l/float_arm_vfp.c armv4l/simple_idct_neon.S armv4l/dsputil_neon.c armv4l/h264dsp_neon.S }
++
+ contains( HAVE_VIS, yes ) {
+ SOURCES += sparc/dsputil_vis.c
+ SOURCES += sparc/simple_idct_vis.c
+diff -Nurd mythtv.orig/libs/libavcodec/utils.c mythtv/libs/libavcodec/utils.c
+--- mythtv.orig/libs/libavcodec/utils.c 2008-07-23 12:19:10.000000000 +0200
++++ mythtv/libs/libavcodec/utils.c 2008-07-24 19:58:12.403198000 +0200
+@@ -594,6 +594,7 @@
+ {"sh4", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SH4, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"simplearm", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEARM, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"simplearmv5te", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLEARMV5TE, INT_MIN, INT_MAX, V|E|D, "idct"},
++{"simpleneon", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_SIMPLENEON, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"h264", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_H264, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"vp3", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_VP3, INT_MIN, INT_MAX, V|E|D, "idct"},
+ {"ipp", NULL, 0, FF_OPT_TYPE_CONST, FF_IDCT_IPP, INT_MIN, INT_MAX, V|E|D, "idct"},
diff --git a/packages/mythtv/mythtv.inc b/packages/mythtv/mythtv.inc
index 4ceda5d421..8355e0f1a1 100644
--- a/packages/mythtv/mythtv.inc
+++ b/packages/mythtv/mythtv.inc
@@ -2,15 +2,11 @@ DESCRIPTION = "A full featured personal video recorder system."
HOMEPAGE = "http://www.mythtv.org"
LICENSE = "GPL"
SECTION = "x11/multimedia"
-DEPENDS = "libxinerama lame libxv libxxf86vm libxvmc lirc qt-x11-free"
-RDEPENDS_${PN} = "qt-x11-plugins-sqldrivers qt-x11-plugins-imageformats"
+DEPENDS = "jack alsa-lib lame libxinerama libxv libxxf86vm libxvmc lirc"
+#RDEPENDS_${PN} = "qt-x11-plugins-sqldrivers qt-x11-plugins-imageformats"
SRC_URI = "http://www.mythtv.org/mc/mythtv-${PV}.tar.bz2"
-inherit qmake qt3x11
-
-# there is a -march=586 somewhere in the source tree
-COMPATIBLE_HOST = 'i.86.*-linux'
QMAKE_PROFILES = "mythtv.pro"
@@ -22,7 +18,7 @@ def mythtv_arch(d):
elif arch == "x86_64":
arch = "x86"
elif arch == "arm":
- arch = "armv4l"
+ arch = "${BASE_PACKAGE_ARCH}"
return arch
MYTHTV_ARCH := "${@mythtv_arch(d)}"
diff --git a/packages/mythtv/mythtv/.mtn2git_empty b/packages/mythtv/mythtv/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mythtv/mythtv/.mtn2git_empty
diff --git a/packages/mythtv/mythtv/configure.patch b/packages/mythtv/mythtv/configure.patch
new file mode 100644
index 0000000000..c95a785d6c
--- /dev/null
+++ b/packages/mythtv/mythtv/configure.patch
@@ -0,0 +1,148 @@
+--- /tmp/configure 2008-07-22 10:27:56.000000000 +0200
++++ mythtv/configure 2008-07-22 17:53:20.000000000 +0200
+@@ -476,12 +476,13 @@
+ }
+
+ check_cmd(){
+- log "$@"
++ echo "Checking $@"
++ log "$@"
+ "$@" >>$logfile 2>&1
+ }
+
+ check_cc(){
+- log check_cc "$@"
++ log check_cc "$@"
+ cat >$TMPC
+ log_file $TMPC
+ check_cmd $cc $CFLAGS $ECFLAGS $OPTFLAGS "$@" -c -o $TMPO $TMPC
+@@ -1117,11 +1118,11 @@
+ fi
+
+ # machine
+-arch=`uname -m`
++disabled cross_compile && arch=`uname -m`
+ arch_raw="$arch"
+ cpu="generic"
+ cpu_override="no"
+-processor=`uname -p 2>/dev/null`
++disabled cross_compile && processor=`uname -p 2>/dev/null`
+ processor_flags=""
+ tune="generic"
+
+@@ -1185,7 +1186,7 @@
+ lamemp3="yes"
+ lirc="yes"
+ mac_bundle="no"
+-opengl="yes"
++opengl="no"
+ v4l="yes"
+ x11="yes"
+ x11_include_path="/usr/X11R6/include"
+@@ -1214,7 +1215,7 @@
+ # build settings
+ SHFLAGS='-shared -Wl,-soname,$@'
+ VHOOKSHFLAGS='$(SHFLAGS)'
+-LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
++#LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
+ FFSERVERLDFLAGS=-Wl,-E
+ LDCONFIG="ldconfig"
+ LIBPREF="lib"
+@@ -1714,7 +1715,7 @@
+
+ has_library()
+ {
+- if test -f /etc/ld.so.conf ; then
++ if test -f /etc/ld.so.conf && disabled cross_compile ; then
+ LIBPATHS=`cat /etc/ld.so.conf | grep -v "#" | grep -v "include"`
+ else
+ LIBPATHS=''
+@@ -1725,7 +1726,7 @@
+ LIBPATHS="$LIBPATHS `echo $DYLD_LIBRARY_PATH | sed s/':'/' '/g` "
+
+ # recurse down just one level, should be enough in most cases
+- if test -f /etc/ld.so.conf ; then
++ if test -f /etc/ld.so.conf && disabled cross_compile ; then
+ INCL=`cat /etc/ld.so.conf | grep -v "#" | grep "^include"`
+ SRCH=`echo "$INCL" | sed '{ s/^include \//\//; s/^include /\/etc\//}'`
+ for x in $SRCH ; do
+@@ -1734,29 +1735,31 @@
+ done
+ fi
+
+- LIBPATHS="`echo $LIBPATHS /$libdir_name /usr/$libdir_name /usr/local/$libdir_name /usr/X11R6/$libdir_name | sed s/'\/ '/' '/g` "
++ enabled cross_compile || LIBPATHS="`echo $LIBPATHS /$libdir_name /usr/$libdir_name /usr/local/$libdir_name /usr/X11R6/$libdir_name | sed s/'\/ '/' '/g` "
+
+- HAS_IT="no"
++ HAS_IT="yes"
+ for LIBPATH in $LIBPATHS ; do
+ if test x`ls $LIBPATH/$1* 2> /dev/null | head -n 1` != x"" ; then
+ HAS_IT="yes"
+ fi
+ done
++ echo "$1: $HAS_IT"
+ expr $HAS_IT : "yes" > /dev/null
+ }
+
+ has_header()
+ {
+- HPATHS="/usr/local/include /usr/include /usr/include/g++-v3 /usr/X11R6/include"
++ enabled cross_compile || HPATHS="/usr/local/include /usr/include /usr/include/g++-v3 /usr/X11R6/include"
+ INCL=`echo $DYLD_LIBRARY_PATH $LD_LIBRARY_PATH | sed s/':'/' '/g`
+ HPATHS="$HPATHS "$(echo $INCL | sed "s/$libdir_name/include/g")
+
+- HAS_IT="no"
++ HAS_IT="yes"
+ for HPATH in $HPATHS ; do
+ if test x`ls $HPATH/$1* 2> /dev/null | head -n 1` != x"" ; then
+ HAS_IT="yes"
+ fi
+ done
++ echo "$1: $HAS_IT"
+ expr $HAS_IT : "yes" > /dev/null
+ }
+
+@@ -1863,13 +1866,15 @@
+ if test x"$cmov" = x"default"; then
+ disable cmov
+ if enabled cpu_override; then
+- is_x86_cmov_cpu "$cpu" && enable cmov
++ disabled cross_compile && is_x86_cmov_cpu "$cpu" && enable cmov
+ disabled cmov || is_x86_slow_cmov_cpu "$cpu" || enable fast_cmov
+ elif expr "$processor_flags" : ".*cmov" > /dev/null ; then
+- enable cmov
++ disabled cross_compile && enable cmov
+ fi
+ fi
+
++enabled cross_compile && disable cmov
++
+ # use different default ARCHFLAGS for CPU missing cmov (Via C3 ...)
+ if test x"$arch" = x"x86_32" && disabled cmov && disabled cpu_override; then
+ ARCHFLAGS="-march=i586"
+@@ -2254,7 +2259,7 @@
+ EOF
+
+ if $cc $CFLAGS $ECFLAGS -o $TMPE $TMPC 2>/dev/null ; then
+-$TMPE && cpuclipspositive="yes"
++enabled cross_compile || $TMPE && cpuclipspositive="yes"
+ fi
+
+ # test negative wrap
+@@ -2269,7 +2274,7 @@
+ EOF
+
+ if $cc $CFLAGS $ECFLAGS -o $TMPE $TMPC 2>/dev/null ; then
+-$TMPE && cpuclipsnegative="yes"
++enabled cross_compile || $TMPE && cpuclipsnegative="yes"
+ fi
+
+ # test for distcc
+@@ -2718,6 +2723,7 @@
+
+ check_header GL/gl.h
+ has_library libGL || has_library libopengl32 || disable opengl
++enabled cross_compile && disable opengl
+
+ VENDOR_XVMC_LIBS=""
+ check_header X11/extensions/XvMClib.h
diff --git a/packages/mythtv/mythtv/ifdef-qt.diff b/packages/mythtv/mythtv/ifdef-qt.diff
new file mode 100644
index 0000000000..bdefee11df
--- /dev/null
+++ b/packages/mythtv/mythtv/ifdef-qt.diff
@@ -0,0 +1,13 @@
+--- /tmp/mythmainwindow.cpp 2008-07-22 18:19:06.000000000 +0200
++++ mythtv/libs/libmythui/mythmainwindow.cpp 2008-07-22 18:19:26.000000000 +0200
+@@ -4,7 +4,10 @@
+
+ #include <algorithm>
+
++#ifdef USE_OPENGL_PAINTER
+ #include <QGLWidget>
++endif
++
+ #include <QApplication>
+ #include <QTimer>
+ #include <QDesktopWidget>
diff --git a/packages/mythtv/mythtv_0.18.1.bb b/packages/mythtv/mythtv_0.18.1.bb
index 1602ce0e42..fd2c351845 100644
--- a/packages/mythtv/mythtv_0.18.1.bb
+++ b/packages/mythtv/mythtv_0.18.1.bb
@@ -1,5 +1,7 @@
require mythtv.inc
+inherit qmake2 qt3x11
+
PR = "r1"
SRC_URI += "file://msmpeg-underscore-pic.patch;patch=1 \
diff --git a/packages/mythtv/mythtv_0.20.bb b/packages/mythtv/mythtv_0.20.bb
index c9e2fdc431..2ebebd3012 100644
--- a/packages/mythtv/mythtv_0.20.bb
+++ b/packages/mythtv/mythtv_0.20.bb
@@ -1,5 +1,7 @@
require mythtv.inc
+inherit qmake2 qt3x11
+
DEPENDS += "openchrome"
PR = "r0"
diff --git a/packages/mythtv/mythtv_0.21.bb b/packages/mythtv/mythtv_0.21.bb
new file mode 100644
index 0000000000..eb9d98c674
--- /dev/null
+++ b/packages/mythtv/mythtv_0.21.bb
@@ -0,0 +1,106 @@
+require mythtv.inc
+
+inherit qmake qt3x11
+
+PR = "${SRCREV}+r2"
+REALPV = "0.21"
+
+SRCREV = "17789"
+SRC_URI = "svn://svn.mythtv.org/svn/branches/release-0-21-fixes;module=mythtv;proto=http"
+
+SRC_URI += " \
+ file://ffmpeg-arm-update.diff;patch=1 \
+ file://configure.patch;patch=1 \
+ file://configh \
+ file://configmak \
+ "
+
+S = "${WORKDIR}/mythtv"
+
+QMAKE_PROFILES = "mythtv.pro"
+
+mythlibs = "mythavutil mythavcodec mythavformat myth mythtv mythui mythfreemheg mythupnp mythlivemedia"
+PACKAGES =+ "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-data"
+
+FILES_${PN}-dbg += "${libdir}/mythtv/filters/.debug"
+FILES_mythtv-backend = "${bindir}/mythbackend ${bindir}/mythcommflag ${bindir}/mythfilldatabase ${bindir}/mythtranscode"
+FILES_mythtv-frontend = "${bindir}/mythfrontend ${datadir}/mythtv/i18n/mythfrontend_* ${datadir}/mythtv/*.ttf"
+RDEPENDS_mythtv-frontend = "qt-x11-plugins-sqldrivers qt-x11-plugins-imageformats"
+FILES_mythtv-bin = "${bindir}/*"
+FILES_mythtv-filters = "${libdir}/mythtv/filters/*"
+FILES_mythtv-data = "${datadir}"
+RDEPENDS_${PN} = "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-data"
+ALLOW_EMPTY_${PN} = "1"
+
+PACKAGES_DYNAMIC = "mythtv-theme-*"
+
+python __anonymous () {
+ import bb
+
+ mythlibs = bb.data.getVar('mythlibs', d).split()
+ pv = bb.data.expand(bb.data.getVar("REALPV", d), d)
+
+ for m in mythlibs:
+ bb.data.setVar("FILES_lib%s%s" % (m, pv), "${libdir}/lib%s-%s.so.*" % (m, pv), d)
+ bb.data.setVar("FILES_lib%s%s-dev" % (m, pv), "${libdir}/lib%s-%s.*" % (m, pv), d)
+
+ packages = " ".join(map(lambda x: "lib%s%s lib%s%s-dev" % (x, pv, x, pv), mythlibs) + bb.data.getVar("PACKAGES", d).split())
+
+ bb.data.setVar("PACKAGES", packages, d)
+}
+
+EXTRA_OECONF_armv5te = " --enable-armv5te "
+EXTRA_OECONF_armv6 = " --enable-armv6 "
+EXTRA_OECONF_armv7a = " --enable-armv6"
+
+#build with support for the iwmmxt instruction and pxa270fb overlay support (pxa270 and up)
+#not every iwmmxt machine has the lcd connected to pxafb, but building the module doesn't hurt
+MY_ARCH := "${PACKAGE_ARCH}"
+PACKAGE_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', 'iwmmxt', '${MY_ARCH}',d)}"
+
+MY_TARGET_CC_ARCH := "${TARGET_CC_ARCH}"
+TARGET_CC_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', '-march=iwmmxt -mtune=iwmmxt', '${MY_TARGET_CC_ARCH}',d)}"
+
+EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'iwmmxt', '--enable-pxa --enable-iwmmxt', '',d)} "
+
+do_configure_prepend() {
+# it's not autotools anyway, so we call ./configure directly
+ find . -name "Makefile"|xargs rm -f
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/man \
+ --cpu=${MYTHTV_ARCH} \
+ --arch=${MYTHTV_ARCH} \
+ --disable-altivec \
+ --disable-opengl-video \
+ --disable-strip \
+ --enable-v4l \
+ --enable-audio-oss \
+ --enable-proc-opt \
+ --enable-dvb \
+ --enable-libmp3lame \
+ --cross-compile \
+ --dvb-path=${STAGING_INCDIR} \
+ --with-bindings= \
+ ${EXTRA_OECONF}
+
+ sed 's!PREFIX =.*!PREFIX = ${prefix}!;/INCLUDEPATH += $${PREFIX}\/include/d' < settings.pro > settings.pro.new
+ mv settings.pro.new settings.pro
+ for pro in ${S}/*/*pro ${S}/*/*/*pro ${S}/*/*/*/*pro ; do
+ sed -i -e s:opengl::g $pro
+ done
+ sed -i /.SUBDIR/d ${S}/bindings/*pro
+ cat ${WORKDIR}/configh >> ${S}/config.h
+ cat ${WORKDIR}/configmak ${OPTSMAK} >> ${S}/config.mak
+}
+
+python populate_packages_prepend () {
+ new_packages = []
+
+ def the_hook(file, pkg, pattern, format, basename):
+ new_packages.append(pkg)
+
+ do_split_packages(d, root=bb.data.expand('${datadir}/mythtv/themes', d), file_regex='(.*)', output_pattern='mythtv-theme-%s', description='MythTV theme %s', allow_dirs=True, hook=the_hook, prepend=True)
+
+ bb.data.setVar("RDEPENDS_${PN}", "%s %s" % (bb.data.getVar("RDEPENDS_${PN}", d), " ".join(new_packages)), d)
+}
diff --git a/packages/mythtv/mythtv_svn.bb b/packages/mythtv/mythtv_svn.bb
new file mode 100644
index 0000000000..83ce8252fa
--- /dev/null
+++ b/packages/mythtv/mythtv_svn.bb
@@ -0,0 +1,103 @@
+require mythtv.inc
+
+inherit qmake2 qt4x11
+
+DEFAULT_PREFERENCE = "-1"
+
+PV = "0.21+0.22rc+svnr${SRCREV}"
+PR = "r2"
+REALPV = "0.22"
+
+SRCREV = "17892"
+SRC_URI = "svn://svn.mythtv.org/svn/trunk;module=mythtv;proto=http"
+
+SRC_URI += "file://configure.patch;patch=1 \
+ "
+
+S = "${WORKDIR}/mythtv"
+
+QMAKE_PROFILES = "mythtv.pro"
+
+mythlibs = "mythdb mythavutil mythavcodec mythavformat myth mythtv mythui mythfreemheg mythupnp mythlivemedia"
+PACKAGES =+ "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-data"
+
+FILES_${PN}-dbg += "${libdir}/mythtv/filters/.debug"
+FILES_mythtv-backend = "${bindir}/mythbackend ${bindir}/mythcommflag ${bindir}/mythfilldatabase ${bindir}/mythtranscode"
+FILES_mythtv-frontend = "${bindir}/mythfrontend ${datadir}/mythtv/i18n/mythfrontend_* ${datadir}/mythtv/*.ttf"
+FILES_mythtv-bin = "${bindir}/*"
+FILES_mythtv-filters = "${libdir}/mythtv/filters/*"
+FILES_mythtv-data = "${datadir}"
+RDEPENDS_${PN} = "mythtv-backend mythtv-frontend mythtv-bin mythtv-filters mythtv-data"
+ALLOW_EMPTY_${PN} = "1"
+
+PACKAGES_DYNAMIC = "mythtv-theme-*"
+
+python __anonymous () {
+ import bb
+
+ mythlibs = bb.data.getVar('mythlibs', d).split()
+ pv = bb.data.expand(bb.data.getVar("REALPV", d), d)
+
+ for m in mythlibs:
+ bb.data.setVar("FILES_lib%s%s" % (m, pv), "${libdir}/lib%s-%s.so.*" % (m, pv), d)
+ bb.data.setVar("FILES_lib%s%s-dev" % (m, pv), "${libdir}/lib%s-%s.*" % (m, pv), d)
+
+ packages = " ".join(map(lambda x: "lib%s%s lib%s%s-dev" % (x, pv, x, pv), mythlibs) + bb.data.getVar("PACKAGES", d).split())
+
+ bb.data.setVar("PACKAGES", packages, d)
+}
+
+EXTRA_OECONF_armv5te = " --enable-armv5te "
+EXTRA_OECONF_armv6 = " --enable-armv6 "
+EXTRA_OECONF_armv7a = " --enable-armv6"
+
+#build with support for the iwmmxt instruction and pxa270fb overlay support (pxa270 and up)
+#not every iwmmxt machine has the lcd connected to pxafb, but building the module doesn't hurt
+MY_ARCH := "${PACKAGE_ARCH}"
+PACKAGE_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', 'iwmmxt', '${MY_ARCH}',d)}"
+
+MY_TARGET_CC_ARCH := "${TARGET_CC_ARCH}"
+TARGET_CC_ARCH = "${@base_contains('MACHINE_FEATURES', 'iwmmxt', '-march=iwmmxt -mtune=iwmmxt', '${MY_TARGET_CC_ARCH}',d)}"
+
+EXTRA_OECONF_append = " ${@base_contains('MACHINE_FEATURES', 'iwmmxt', '--enable-pxa --enable-iwmmxt', '',d)} "
+
+
+do_configure_prepend() {
+# it's not autotools anyway, so we call ./configure directly
+ find . -name "Makefile"|xargs rm -f
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/man \
+ --cpu=${MYTHTV_ARCH} \
+ --arch=${MYTHTV_ARCH} \
+ --disable-altivec \
+ --disable-opengl-video \
+ --disable-strip \
+ --enable-v4l \
+ --enable-audio-oss \
+ --enable-proc-opt \
+ --enable-dvb \
+ --enable-libmp3lame \
+ --cross-compile \
+ --dvb-path=${STAGING_INCDIR} \
+ --with-bindings= \
+ ${EXTRA_OECONF}
+
+ sed 's!PREFIX =.*!PREFIX = ${prefix}!;/INCLUDEPATH += $${PREFIX}\/include/d' < settings.pro > settings.pro.new
+ mv settings.pro.new settings.pro
+ for pro in ${S}/*/*pro ${S}/*/*/*pro ${S}/*/*/*/*pro ; do
+ sed -i -e s:opengl::g $pro
+ done
+ sed -i /.SUBDIR/d ${S}/bindings/*pro
+}
+
+python populate_packages_prepend () {
+ new_packages = []
+
+ def the_hook(file, pkg, pattern, format, basename):
+ new_packages.append(pkg)
+
+ do_split_packages(d, root=bb.data.expand('${datadir}/mythtv/themes', d), file_regex='(.*)', output_pattern='mythtv-theme-%s', description='MythTV theme %s', allow_dirs=True, hook=the_hook, prepend=True)
+
+ bb.data.setVar("RDEPENDS_${PN}", "%s %s" % (bb.data.getVar("RDEPENDS_${PN}", d), " ".join(new_packages)), d)
+}
diff --git a/packages/neuros-public/neuros-lib-widgets_git.bb b/packages/neuros-public/neuros-lib-widgets_git.bb
index 0e1e22e6d2..45dde3c14a 100644
--- a/packages/neuros-public/neuros-lib-widgets_git.bb
+++ b/packages/neuros-public/neuros-lib-widgets_git.bb
@@ -1,6 +1,9 @@
DESCRIPTION = "Neuros qt-plugins"
LICENSE = "GPL"
+PV = "0.0+${PR}+gitr${SRCREV}"
+PR = "r1"
+
DEPENDS = "qt-embedded"
inherit qtopia4core
@@ -14,4 +17,7 @@ do_install() {
install -m 0755 ${S}/build/lib* ${D}/${libdir}
}
-
+do_stage() {
+ install -d ${STAGING_LIBDIR}
+ install -m 0755 ${S}/build/lib* ${STAGING_LIBDIR}
+}
diff --git a/packages/neuros-public/neuros-mainmenu_git.bb b/packages/neuros-public/neuros-mainmenu_git.bb
new file mode 100644
index 0000000000..c16cbeb036
--- /dev/null
+++ b/packages/neuros-public/neuros-mainmenu_git.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Neuros window manager"
+LICENSE = "GPL"
+
+PV = "0.0+${PR}+gitr${SRCREV}"
+PR = "r0"
+
+DEPENDS = "qt-embedded"
+
+inherit qtopia4core
+
+SRCREV = "27fc35bd349ccbac1226ebb3d41417d8164b7dd1"
+SRC_URI = "git://git.neurostechnology.com/git/app-mainmenu;protocol=git"
+S = "${WORKDIR}/git/"
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 0755 ${S}/build/main-menu ${D}/${bindir}
+
+ install -d ${D}/${sysconfdir}/menu
+ install -m 0644 ${S}/resources/menu/* ${D}/${sysconfdir}/menu
+}
+
+
diff --git a/packages/neuros-public/neuros-nwm_git.bb b/packages/neuros-public/neuros-nwm_git.bb
new file mode 100644
index 0000000000..6dbbd4cabd
--- /dev/null
+++ b/packages/neuros-public/neuros-nwm_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Neuros window manager"
+LICENSE = "GPL"
+
+PV = "0.0+${PR}+gitr${SRCREV}"
+PR = "r2"
+
+DEPENDS = "qt-embedded"
+
+inherit qtopia4core
+
+SRCREV = "d0b6789dde38d321d3c90c04512a4ea43e28e79e"
+SRC_URI = "git://git.neurostechnology.com/git/app-nwm;protocol=git"
+S = "${WORKDIR}/git/"
+
+do_configure_prepend() {
+ rm ${S}/src/Makefile || true
+}
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 0755 ${S}/build/nwm ${D}/${bindir}
+}
diff --git a/packages/neuros-public/neuros-qt-plugins_git.bb b/packages/neuros-public/neuros-qt-plugins_git.bb
index d0de64d945..62a9d43fca 100644
--- a/packages/neuros-public/neuros-qt-plugins_git.bb
+++ b/packages/neuros-public/neuros-qt-plugins_git.bb
@@ -1,7 +1,8 @@
DESCRIPTION = "Neuros qt-plugins"
LICENSE = "GPL"
-PR = "r1"
+PV = "0.0+${PR}+gitr${SRCREV}"
+PR = "r2"
DEPENDS = "qt-embedded"
diff --git a/packages/nfs-utils/nfs-utils_1.1.2.bb b/packages/nfs-utils/nfs-utils_1.1.2.bb
new file mode 100644
index 0000000000..67adf6e964
--- /dev/null
+++ b/packages/nfs-utils/nfs-utils_1.1.2.bb
@@ -0,0 +1,63 @@
+DESCRIPTION = "userspace utilities for kernel nfs"
+PRIORITY = "optional"
+SECTION = "console/network"
+LICENSE = "GPL"
+
+DEPENDS = "tcp-wrappers libevent"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/nfs/nfs-utils-${PV}.tar.gz \
+ file://nfsserver \
+ "
+
+S = "${WORKDIR}/nfs-utils-${PV}/"
+
+PARALLEL_MAKE = ""
+
+# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will
+# pull in the remainder of the dependencies.
+RDEPENDS = "portmap"
+RRECOMMENDS = "kernel-module-nfsd"
+
+INITSCRIPT_NAME = "nfsserver"
+# The server has no dependencies at the user run levels, so just put
+# it in at the default levels. It must be terminated before the network
+# in the shutdown levels, but that works fine.
+INITSCRIPT_PARAMS = "defaults"
+
+inherit autotools update-rc.d
+
+EXTRA_OECONF = "--with-statduser=nobody \
+ --enable-nfsv3 \
+ --disable-nfsv4 \
+ --disable-gss \
+ --with-statedir=/var/lib/nfs"
+
+do_ccompile() {
+ # UGLY HACK ALERT
+ cat ${WORKDIR}/forgotten-defines >> ${S}/support/include/config.h
+ oe_runmake 'BUILD=1'
+}
+
+INHIBIT_AUTO_STAGE = "1"
+
+do_install() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver
+
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/utils/exportfs/exportfs ${D}${sbindir}/exportfs
+ install -m 0755 ${S}/utils/mountd/mountd ${D}${sbindir}/mountd
+ install -m 0755 ${S}/utils/mount/mount.nfs ${D}${sbindir}/mount.nfs
+ install -m 0755 ${S}/utils/nfsd/nfsd ${D}${sbindir}/nfsd
+ install -m 0755 ${S}/utils/nfsstat/nfsstat ${D}${sbindir}/nfsstat
+ install -m 0755 ${S}/utils/showmount/showmount ${D}${sbindir}/showmount
+ install -m 0755 ${S}/utils/statd/statd ${D}${sbindir}/statd
+
+ install -d ${D}${mandir}/man8
+ install -m 0644 ${S}/utils/exportfs/exportfs.man ${D}${mandir}/man8/exportfs.8
+ install -m 0644 ${S}/utils/mountd/mountd.man ${D}${mandir}/man8/mountd.8
+ install -m 0644 ${S}/utils/nfsd/nfsd.man ${D}${mandir}/man8/nfsd.8
+ install -m 0644 ${S}/utils/nfsstat/nfsstat.man ${D}${mandir}/man8/nfsstat.8
+ install -m 0644 ${S}/utils/showmount/showmount.man ${D}${mandir}/man8/showmount.8
+ install -m 0644 ${S}/utils/statd/statd.man ${D}${mandir}/man8/statd.8
+}
diff --git a/packages/openchrome/openchrome.inc b/packages/openchrome/openchrome.inc
new file mode 100644
index 0000000000..e88f3223ae
--- /dev/null
+++ b/packages/openchrome/openchrome.inc
@@ -0,0 +1,16 @@
+PACKAGES = "libviaXvMC libviaXvMCPro libviaXvMC-dev libviaXvMCPro-dev libviaXvMC-dbg libviaXvMCPro-dbg ${PN}-doc"
+
+FILES_libviaXvMC = "${libdir}/libviaXvMC.so.*"
+FILES_libviaXvMCPro = "${libdir}/libviaXvMCPro.so.*"
+FILES_libviaXvMC-dev = "${libdir}/libviaXvMC.so ${libdir}/libviaXvMC.la"
+FILES_libviaXvMCPro-dev = "${libdir}/libviaXvMCPro.so ${libdir}/libviaXvMCPro.la"
+FILES_libviaXvMC-dbg += "${libdir}/.debug/libviaXvMC.so.*"
+FILES_libviaXvMCPro-dbg += "${libdir}/.debug/libviaXvMCPro.so.*"
+
+DEPENDS = "xserver-xorg libxvmc"
+
+inherit autotools xorg-module
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/packages/openchrome/openchrome_svn.bb b/packages/openchrome/openchrome_svn.bb
index c1e9829a35..c1d8052eea 100644
--- a/packages/openchrome/openchrome_svn.bb
+++ b/packages/openchrome/openchrome_svn.bb
@@ -1,21 +1,5 @@
-SRC_URI = "svn://svn.openchrome.org/svn;module=trunk;proto=http \
- file://configure.patch;patch=1"
+SRC_URI = "svn://svn.openchrome.org/svn;module=trunk;proto=http"
S = "${WORKDIR}/trunk"
-
-PACKAGES = "libviaXvMC libviaXvMCPro libviaXvMC-dev libviaXvMCPro-dev libviaXvMC-dbg libviaXvMCPro-dbg ${PN}-doc"
PACKAGES_DYNAMIC = "xorg-driver-via"
-FILES_libviaXvMC = "${libdir}/libviaXvMC.so.*"
-FILES_libviaXvMCPro = "${libdir}/libviaXvMCPro.so.*"
-FILES_libviaXvMC-dev = "${libdir}/libviaXvMC.so ${libdir}/libviaXvMC.la"
-FILES_libviaXvMCPro-dev = "${libdir}/libviaXvMCPro.so ${libdir}/libviaXvMCPro.la"
-FILES_libviaXvMC-dbg += "${libdir}/.debug/libviaXvMC.so.*"
-FILES_libviaXvMCPro-dbg += "${libdir}/.debug/libviaXvMCPro.so.*"
-
-DEPENDS = "xserver-xorg libxvmc"
-
-inherit autotools xorg-module
-
-do_stage() {
- autotools_stage_all
-}
+include openchrome.inc
diff --git a/packages/openchrome/xf86-video-openchrome_0.2.902.bb b/packages/openchrome/xf86-video-openchrome_0.2.902.bb
new file mode 100644
index 0000000000..5792f72184
--- /dev/null
+++ b/packages/openchrome/xf86-video-openchrome_0.2.902.bb
@@ -0,0 +1,4 @@
+SRC_URI = "http://www.openchrome.org/releases/xf86-video-openchrome-${PV}.tar.gz file://configure.patch;patch=1 file://configure-dri.patch;patch=1"
+PACKAGES_DYNAMIC = "xorg-driver-openchrome"
+
+include openchrome.inc
diff --git a/packages/openmoko-projects/illume-theme_svn.bb b/packages/openmoko-projects/illume-theme-asu_svn.bb
index 3ea672117f..5ddb61d0eb 100644
--- a/packages/openmoko-projects/illume-theme_svn.bb
+++ b/packages/openmoko-projects/illume-theme-asu_svn.bb
@@ -1,17 +1,12 @@
DESCRIPTION = "Illume - Mobile UI module for Enlightenment"
HOMEPAGE = "http://illume.projects.openmoko.org/"
LICENSE = "MIT/BSD"
-
-PACKAGE_ARCH="all"
PV = "0.0+svnr${SRCREV}"
-PR = "r5"
+PR = "r6"
-SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=illume;proto=https"
+SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=illume;proto=http"
S = "${WORKDIR}/illume"
-CONFFILES_${PN} = "${sysconfdir}/enlightenment/default_profile"
-FILES_${PN} = "${sysconfdir}/enlightenment ${datadir}/enlightenment"
-
do_install() {
install -d ${D}${sysconfdir}/enlightenment
install -d ${D}${datadir}/enlightenment/data/themes/
@@ -23,3 +18,10 @@ do_install() {
install -m 0644 ${S}/misc-data/illume.edj ${D}${datadir}/enlightenment/data/themes/
install -m 0644 ${S}/misc-data/illume_init.edj ${D}${datadir}/enlightenment/data/init/
}
+
+RPROVIDES_${PN} = "illume-theme"
+CONFFILES_${PN} = "${sysconfdir}/enlightenment/default_profile"
+FILES_${PN} = "${sysconfdir}/enlightenment ${datadir}/enlightenment"
+
+PACKAGE_ARCH_${PN} = "all"
+
diff --git a/packages/openmoko-projects/illume/configure-keyboard.patch b/packages/openmoko-projects/illume/configure-keyboard.patch
new file mode 100644
index 0000000000..589fe53f38
--- /dev/null
+++ b/packages/openmoko-projects/illume/configure-keyboard.patch
@@ -0,0 +1,39 @@
+Index: configure.in
+===================================================================
+--- configure.in (Revision 170)
++++ configure.in (Arbeitskopie)
+@@ -95,6 +95,21 @@
+ AC_SUBST(e_libs)
+ AC_SUBST(e_modules)
+
++want_illume_virtual_keyboard=no
++AC_ARG_ENABLE(illume-keyboard,
++ AC_HELP_STRING(
++ [--enable-illume-keyboard],
++ [Enable the illume virtual keyboard.]
++ ),
++ [want_illume_virtual_keyboard=$enableval]
++ )
++AC_MSG_CHECKING(whether the illume virtual keyboard is to be built in)
++AC_MSG_RESULT($want_illume_virtual_keyboard)
++
++if test "x$want_illume_virtual_keyboard" = "xyes"; then
++ AC_DEFINE(BUILD_ILLUME_VIRTUAL_KEYBOARD, 1, [Build the virtual keyboard in])
++fi
++
+ AC_OUTPUT([
+ Makefile
+ src/Makefile
+Index: src/e_mod_win.c
+===================================================================
+--- src/e_mod_win.c (Revision 170)
++++ src/e_mod_win.c (Arbeitskopie)
+@@ -102,7 +102,7 @@
+ e_module_dir_get(m),
+ e_module_dir_get(m));
+ // FIXME: run kbd app or use internal
+-#if 0
++#ifdef BUILD_ILLUME_VIRTUAL_KEYBOARD
+ //enable for now to test internal kbd
+ vkbd_int = e_kbd_int_new(e_module_dir_get(m),
+ e_module_dir_get(m),
diff --git a/packages/openmoko-projects/illume_svn.bb b/packages/openmoko-projects/illume_svn.bb
index f3fb611e09..52150a00dc 100644
--- a/packages/openmoko-projects/illume_svn.bb
+++ b/packages/openmoko-projects/illume_svn.bb
@@ -1,25 +1,56 @@
-DESCRIPTION = "Illume - Mobile UI module for Enlightenment"
-HOMEPAGE = "http://illume.projects.openmoko.org/"
+DESCRIPTION = "Illume - A mobile UI module for the Enlightenment Window Manager"
+HOMEPAGE = "http://illume.projects.openmoko.org"
+AUTHOR = "Rasterman"
LICENSE = "MIT/BSD"
DEPENDS = "e-wm eet evas ecore edje embryo efreet edbus edje-native embryo-native"
-RRECOMMENDS = "wamerican"
PV = "0.0+svnr${SRCREV}"
-PR = "r6"
-
-SRC_URI = "svn://svn.projects.openmoko.org/svnroot/;module=${PN};proto=https"
+PR = "r10"
+SRC_URI = "\
+ svn://svn.projects.openmoko.org/svnroot/;module=${PN};proto=http \
+ file://configure-keyboard.patch;patch=1;pnum=0 \
+"
S = "${WORKDIR}/${PN}"
inherit autotools pkgconfig
-EXTRA_OECONF = "--x-includes=${STAGING_INCDIR}/X11 \
- --x-libraries=${STAGING_LIBDIR} \
- --enable-simple-x11 \
- --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc"
+EXTRA_OECONF = "\
+ --x-includes=${STAGING_INCDIR}/X11 \
+ --x-libraries=${STAGING_LIBDIR} \
+ --enable-simple-x11 \
+ --with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \
+\
+ --enable-illume-keyboard \
+"
+
+RRECOMMENDS_${PN} = "\
+ wamerican \
+ ${PN}-config \
+ ${PN}-theme \
+ ${PN}-dicts-default \
+ ${PN}-keyboards-default \
+ ${PN}-keyboards-numbers \
+"
+
+PACKAGES =+ "\
+ ${PN}-config \
+ ${PN}-dicts-default \
+ ${PN}-keyboards-default \
+ ${PN}-keyboards-numbers \
+"
+PACKAGE_ARCH_${PN}-config = "all"
+PACKAGE_ARCH_${PN}-dicts-default = "all"
+PACKAGE_ARCH_${PN}-keyboards-default = "all"
+PACKAGE_ARCH_${PN}-keyboards-numbers = "all"
+
+FILES_${PN}-config = "${datadir}/enlightenment/data/config/*/* ${datadir}/illume"
+FILES_${PN}-dicts-default = "${libdir}/enlightenment/modules/illume/dicts/Default.dic"
+FILES_${PN}-keyboards-default = "${libdir}/enlightenment/modules/illume/keyboards/Default.kbd"
+FILES_${PN}-keyboards-numbers = "${libdir}/enlightenment/modules/illume/keyboards/Numbers.kbd"
-FILES_${PN} = "${libdir}/enlightenment/modules/*/*.edj \
- ${libdir}/enlightenment/modules/*/*.desktop \
- ${libdir}/enlightenment/modules/*/*/* \
- ${datadir}/enlightenment/data/config/*/* \
- ${datadir}/${PN} "
+FILES_${PN} = "\
+ ${libdir}/enlightenment/modules/*/*.edj \
+ ${libdir}/enlightenment/modules/*/*.desktop \
+ ${libdir}/enlightenment/modules/*/*/* \
+"
FILES_${PN}-dbg += "${libdir}/enlightenment/modules/*/*/.debug/"
diff --git a/packages/openmoko-projects/tangogps/global-config-h.patch b/packages/openmoko-projects/tangogps/global-config-h.patch
deleted file mode 100644
index 973710c942..0000000000
--- a/packages/openmoko-projects/tangogps/global-config-h.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: tangoGPS-0.7/src/globals.c
-===================================================================
---- tangoGPS-0.7.orig/src/globals.c 2008-03-13 14:21:02.000000000 +0800
-+++ tangoGPS-0.7/src/globals.c 2008-03-13 14:28:49.000000000 +0800
-@@ -3,11 +3,11 @@
- * License GPLv2
- ****************************************************************************/
-
-+#include "globals.h"
-+
- #include <gtk/gtk.h>
- #include <gps.h>
-
--#include "globals.h"
--
- GdkPixmap *pixmap = NULL;
- GtkWidget *window1 = NULL;
- GtkWidget *window2 = NULL;
-Index: tangoGPS-0.7/src/globals.h
-===================================================================
---- tangoGPS-0.7.orig/src/globals.h 2008-03-13 14:27:46.000000000 +0800
-+++ tangoGPS-0.7/src/globals.h 2008-03-13 14:27:48.000000000 +0800
-@@ -1,3 +1,7 @@
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+
- #include <gtk/gtk.h>
- #include <gconf/gconf-client.h>
-
diff --git a/packages/openmoko-projects/tangogps_0.7.bb b/packages/openmoko-projects/tangogps_0.7.bb
deleted file mode 100644
index 63513ffe00..0000000000
--- a/packages/openmoko-projects/tangogps_0.7.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "tangoGPS map"
-AUTHOR = "Marcus Bauer <marcus.bauer@gmail.com>"
-HOMEPAGE = "http://tangogps.org/"
-SECTION = "openmoko/pim"
-PRIORITY = "optional"
-LICENSE = "GPLv2"
-DEPENDS = "curl gtk+ gpsd"
-PR = "r1"
-
-SRC_URI = "http://tangogps.org/tangoGPS-0.7.tar.gz \
- file://global-config-h.patch;patch=1"
-
-S = "${WORKDIR}/tangoGPS-0.7"
-
-inherit autotools
-
-CPPFLAGS += "-I${STAGING_INCDIR}/gconf/2/"
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/.mtn2git_empty b/packages/pulseaudio/pulseaudio-0.9.11/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/.mtn2git_empty
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/2113.diff b/packages/pulseaudio/pulseaudio-0.9.11/2113.diff
new file mode 100644
index 0000000000..666ed34ad3
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/2113.diff
@@ -0,0 +1,19 @@
+from upstream svn r2113
+
+Index: configure.ac
+===================================================================
+--- configure.ac (wersja 2112)
++++ configure.ac (wersja 2113)
+@@ -172,6 +172,12 @@
+ AC_SUBST(LIBLTDL)
+ AC_CONFIG_SUBDIRS(libltdl)
+
++old_LIBS=$LIBS
++LIBS="$LIBS $LIBLTDL"
++AC_CHECK_FUNCS([lt_dlmutex_register])
++LIBS=$old_LIBS
++AC_CHECK_TYPES([lt_user_dlloader, lt_dladvise], , , [#include <ltdl.h>])
++
+ if test "x$enable_ltdl_install" = "xno" && test "x$ac_cv_lib_ltdl_lt_dlinit" = "xno" ; then
+ AC_MSG_ERROR([[
+
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/2114.diff b/packages/pulseaudio/pulseaudio-0.9.11/2114.diff
new file mode 100644
index 0000000000..cbd82eeb84
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/2114.diff
@@ -0,0 +1,15 @@
+from upstream svn r2114
+
+Index: configure.ac
+===================================================================
+--- configure.ac (wersja 2113)
++++ configure.ac (wersja 2114)
+@@ -176,7 +176,7 @@
+ LIBS="$LIBS $LIBLTDL"
+ AC_CHECK_FUNCS([lt_dlmutex_register])
+ LIBS=$old_LIBS
+-AC_CHECK_TYPES([lt_user_dlloader, lt_dladvise], , , [#include <ltdl.h>])
++AC_CHECK_TYPES([struct lt_user_dlloader, lt_dladvise], , , [#include <ltdl.h>])
+
+ if test "x$enable_ltdl_install" = "xno" && test "x$ac_cv_lib_ltdl_lt_dlinit" = "xno" ; then
+ AC_MSG_ERROR([[
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/buildfix.patch b/packages/pulseaudio/pulseaudio-0.9.11/buildfix.patch
new file mode 100644
index 0000000000..ca01e0d80f
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/buildfix.patch
@@ -0,0 +1,13 @@
+Index: pulseaudio-0.9.11/src/pulsecore/atomic.h
+===================================================================
+--- pulseaudio-0.9.11.orig/src/pulsecore/atomic.h
++++ pulseaudio-0.9.11/src/pulsecore/atomic.h
+@@ -40,6 +40,8 @@
+ #error "Please include config.h before including this file!"
+ #endif
+
++#include "macro.h"
++
+ #ifdef HAVE_ATOMIC_BUILTINS
+
+ /* __sync based implementation */
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/libiconv.patch b/packages/pulseaudio/pulseaudio-0.9.11/libiconv.patch
new file mode 100644
index 0000000000..273b446d78
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/libiconv.patch
@@ -0,0 +1,22 @@
+Index: pulseaudio-0.9.10/src/Makefile.am
+===================================================================
+--- pulseaudio-0.9.10.orig/src/Makefile.am 2008-07-20 13:16:51.548858829 +0200
++++ pulseaudio-0.9.10/src/Makefile.am 2008-07-20 13:43:39.842031837 +0200
+@@ -551,7 +551,7 @@
+
+ libpulse_la_CFLAGS = $(AM_CFLAGS)
+ libpulse_la_LDFLAGS = -version-info $(LIBPULSE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file
+-libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LIBICONV)
++libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LTLIBICONV)
+
+ if HAVE_X11
+ libpulse_la_CFLAGS += $(X_CFLAGS)
+@@ -771,7 +771,7 @@
+
+ libpulsecore_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBOIL_CFLAGS)
+ libpulsecore_la_LDFLAGS = -version-info $(LIBPULSECORE_VERSION_INFO)
+-libpulsecore_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPLERATE_LIBS) $(LIBSNDFILE_LIBS) $(WINSOCK_LIBS) $(LIBOIL_LIBS) $(LIBICONV) libspeex-resampler-fixed.la libspeex-resampler-float.la libffmpeg-resampler.la
++libpulsecore_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPLERATE_LIBS) $(LIBSNDFILE_LIBS) $(WINSOCK_LIBS) $(LIBOIL_LIBS) $(LTLIBICONV) libspeex-resampler-fixed.la libspeex-resampler-float.la libffmpeg-resampler.la
+
+ ###################################
+ # Plug-in support libraries #
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/libpulsedsp-references-libpulsecore.patch b/packages/pulseaudio/pulseaudio-0.9.11/libpulsedsp-references-libpulsecore.patch
new file mode 100644
index 0000000000..4234af5f53
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/libpulsedsp-references-libpulsecore.patch
@@ -0,0 +1,24 @@
+upstream: http://pulseaudio.org/ticket/287
+
+Index: pulseaudio-0.9.10/src/Makefile.am
+===================================================================
+--- pulseaudio-0.9.10.orig/src/Makefile.am 2008-03-30 03:43:05.000000000 +0200
++++ pulseaudio-0.9.10/src/Makefile.am 2008-05-03 11:55:46.000000000 +0200
+@@ -605,7 +605,7 @@
+
+ libpulsedsp_la_SOURCES = utils/padsp.c
+ libpulsedsp_la_CFLAGS = $(AM_CFLAGS)
+-libpulsedsp_la_LIBADD = $(AM_LIBADD) libpulse.la
++libpulsedsp_la_LIBADD = $(AM_LIBADD) libpulse.la libpulsecore.la
+ libpulsedsp_la_LDFLAGS = -avoid-version
+
+ ###################################
+@@ -888,7 +888,7 @@
+
+ libpstream_util_la_SOURCES = pulsecore/pstream-util.c pulsecore/pstream-util.h
+ libpstream_util_la_LDFLAGS = -avoid-version
+-libpstream_util_la_LIBADD = $(AM_LIBADD) libpacket.la libpstream.la libtagstruct.la
++libpstream_util_la_LIBADD = $(AM_LIBADD) libpacket.la libpstream.la libtagstruct.la libpulsecore.la
+
+ libpdispatch_la_SOURCES = pulsecore/pdispatch.c pulsecore/pdispatch.h
+ libpdispatch_la_LDFLAGS = -avoid-version
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/libtool2.patch b/packages/pulseaudio/pulseaudio-0.9.11/libtool2.patch
new file mode 100644
index 0000000000..9e9e5f55d3
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/libtool2.patch
@@ -0,0 +1,48 @@
+Tell where is libltdl from libtool - was needed to get it built with libtool 2.2.4
+
+---
+ configure.ac | 26 +++++++++++++++++++-------
+ 1 file changed, 19 insertions(+), 7 deletions(-)
+
+--- pulseaudio-0.9.10.orig/configure.ac
++++ pulseaudio-0.9.10/configure.ac
+@@ -242,20 +242,32 @@ if test $ret -eq 0 ; then
+ else
+ AC_MSG_RESULT([no])
+ fi
+
+ #### libtool stuff ####
+-
+-AC_LTDL_ENABLE_INSTALL
+-AC_LIBLTDL_INSTALLABLE
+-AC_LIBTOOL_DLOPEN
+-AC_LIBTOOL_WIN32_DLL
++LT_PREREQ([2.2])
++LT_INIT([dlopen win32-dll])
+ AC_PROG_LIBTOOL
+-AC_SUBST(LTDLINCL)
+-AC_SUBST(LIBLTDL)
++#AC_SUBST(LTDLINCL)
++#AC_SUBST(LIBLTDL)
+ AC_CONFIG_SUBDIRS(libltdl)
+
++AC_ARG_WITH(libltdl-libs,
++ [ --with-libltdl-libs=DIR path to libltdl libs], libltdl_libs_prefix=$withval)
++if test x$libltdl_libs_prefix != x; then
++ LIBLTDL="-L${libltdl_libs_prefix}/libltdl.so -lltdl"
++fi
++AC_SUBST(LIBLTDL)
++
++AC_ARG_WITH(libltdl-includes,
++ [ --with-libltdl-includes=DIR path to libltdl includes], libltdl_prefix=$withval)
++if test x$libltdl_prefix != x; then
++ LTDLINCL="-I${libltdl_prefix} ${libltdl_libs_prefix}/libltdl.so"
++fi
++AC_SUBST(LTDLINCL)
++
++
+ old_LIBS=$LIBS
+ LIBS="$LIBS $LIBLTDL"
+ AC_CHECK_FUNCS([lt_dlmutex_register])
+ LIBS=$old_LIBS
+ AC_CHECK_TYPES([struct lt_user_dlloader, lt_dladvise], , , [#include <ltdl.h>])
diff --git a/packages/pulseaudio/pulseaudio-0.9.11/pa-drop-caps-returns-void.patch b/packages/pulseaudio/pulseaudio-0.9.11/pa-drop-caps-returns-void.patch
new file mode 100644
index 0000000000..74ea6ac060
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.11/pa-drop-caps-returns-void.patch
@@ -0,0 +1,17 @@
+upstream: http://pulseaudio.org/changeset/2213
+
+Index: pulseaudio-0.9.10/src/daemon/caps.c
+===================================================================
+--- pulseaudio-0.9.10.orig/src/daemon/caps.c 2008-05-03 12:10:26.000000000 +0200
++++ pulseaudio-0.9.10/src/daemon/caps.c 2008-05-03 12:10:30.000000000 +0200
+@@ -131,9 +131,8 @@
+ return 0;
+ }
+
+-int pa_drop_caps(void) {
++void pa_drop_caps(void) {
+ pa_drop_root();
+- return 0;
+ }
+
+ #endif
diff --git a/packages/pulseaudio/pulseaudio_0.9.11.bb b/packages/pulseaudio/pulseaudio_0.9.11.bb
new file mode 100644
index 0000000000..930b991751
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio_0.9.11.bb
@@ -0,0 +1,31 @@
+require pulseaudio.inc
+
+DEPENDS += "dbus gdbm speex"
+PR = "r0"
+
+# work in progress
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI += "\
+ file://disable-using-glibc-tls.patch;patch=1 \
+ file://buildfix.patch;patch=1 \
+# file://libpulsedsp-references-libpulsecore.patch;patch=1 \
+# file://pa-drop-caps-returns-void.patch;patch=1 \
+# file://libtool2.patch;patch=1 \
+ file://2113.diff;patch=1;pnum=0 \
+ file://2114.diff;patch=1;pnum=0 \
+# file://libiconv.patch;patch=1 \
+"
+
+do_compile_prepend() {
+ cd ${S}
+ mkdir -p ${S}/libltdl
+ cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
+}
+
+
+# problems w/ pulseaudio 0.9.10 atm:
+# 1.) needs libltdl >= 1.5.24 (yes, any older version will NOT work at runtime)
+# 2.) doesn't build w/ glibc TLS support (hence patched out)
+# 3.) fails with hierarchical pthread stuff w/ gst-pulse (hence patched out)
+
diff --git a/packages/python/python-setuptools-native_0.6c8.bb b/packages/python/python-setuptools-native_0.6c8.bb
index b7716d8cac..0bbf9c32fc 100644
--- a/packages/python/python-setuptools-native_0.6c8.bb
+++ b/packages/python/python-setuptools-native_0.6c8.bb
@@ -1,9 +1,9 @@
require python-setuptools_${PV}.bb
inherit native
+FILESPATH = "${FILE_DIRNAME}/python-setuptools"
DEPENDS = "python-native"
do_stage() {
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python setup.py install
+ distutils_stage_all
}
diff --git a/packages/python/python-setuptools/.mtn2git_empty b/packages/python/python-setuptools/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/python/python-setuptools/.mtn2git_empty
diff --git a/packages/python/python-setuptools/fix-log-usage.patch b/packages/python/python-setuptools/fix-log-usage.patch
new file mode 100644
index 0000000000..6363c850c2
--- /dev/null
+++ b/packages/python/python-setuptools/fix-log-usage.patch
@@ -0,0 +1,13 @@
+Index: setuptools-0.6c8/setuptools/command/sdist.py
+===================================================================
+--- setuptools-0.6c8.orig/setuptools/command/sdist.py
++++ setuptools-0.6c8/setuptools/command/sdist.py
+@@ -95,7 +95,7 @@ def entries_finder(dirname, filename):
+ for match in entries_pattern.finditer(data):
+ yield joinpath(dirname,unescape(match.group(1)))
+ else:
+- log.warn("unrecognized .svn/entries format in %s", dirname)
++ print ("unrecognized .svn/entries format in %s", dirname)
+
+
+ finders = [
diff --git a/packages/python/python-setuptools_0.6c8.bb b/packages/python/python-setuptools_0.6c8.bb
index 19f73d3f67..5b82ecea69 100644
--- a/packages/python/python-setuptools_0.6c8.bb
+++ b/packages/python/python-setuptools_0.6c8.bb
@@ -5,9 +5,12 @@ PRIORITY = "optional"
LICENSE = "MIT-like"
RDEPENDS = "python-distutils python-compression"
SRCNAME = "setuptools"
-PR = "ml0"
+PR = "ml1"
-SRC_URI = "http://cheeseshop.python.org/packages/source/s/setuptools/${SRCNAME}-${PV}.tar.gz"
+SRC_URI = "\
+ http://cheeseshop.python.org/packages/source/s/setuptools/${SRCNAME}-${PV}.tar.gz\
+ file://fix-log-usage.patch;patch=1 \
+"
S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit distutils
diff --git a/packages/qt4/qt4-x11-free-4.4.0/.mtn2git_empty b/packages/qt4/qt4-x11-free-4.4.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/.mtn2git_empty
diff --git a/packages/qt4/qt4-x11-free-4.4.0/0001-cross-compile.patch b/packages/qt4/qt4-x11-free-4.4.0/0001-cross-compile.patch
new file mode 100644
index 0000000000..310f1931bc
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/0001-cross-compile.patch
@@ -0,0 +1,32 @@
+--- /tmp/configure 2008-07-08 10:01:36.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/configure 2008-07-08 10:23:04.000000000 +0200
+@@ -762,7 +762,7 @@
+ UNKNOWN_ARG=yes
+ fi
+ ;;
+- -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
++ -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config|-crossarch)
+ VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
+ shift
+ VAL="$1"
+@@ -1179,7 +1179,10 @@
+ xplatform)
+ XPLATFORM="$VAL"
+ ;;
+- debug-and-release)
++ crossarch)
++ CROSSARCH="$VAL"
++ ;;
++ debug-and-release)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_DEBUG_RELEASE="$VAL"
+ else
+@@ -2417,6 +2420,8 @@
+ ARCH=$HOST_ARCH
+ fi
+
++ARCH="$CROSSARCH"
++
+ if [ -d "$relpath/src/corelib/arch/$ARCH" ]; then
+ if [ "$OPT_VERBOSE" = "yes" ]; then
+ echo " '$ARCH' is supported"
diff --git a/packages/qt4/qt4-x11-free-4.4.0/0002-fix-resinit-declaration.patch b/packages/qt4/qt4-x11-free-4.4.0/0002-fix-resinit-declaration.patch
new file mode 100644
index 0000000000..e479a64a2b
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.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/qt4/qt4-x11-free-4.4.0/0003-no-tools.patch b/packages/qt4/qt4-x11-free-4.4.0/0003-no-tools.patch
new file mode 100644
index 0000000000..bb36444f80
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/0003-no-tools.patch
@@ -0,0 +1,16 @@
+--- /tmp/src.pro 2008-07-08 10:43:30.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/src/src.pro 2008-07-08 11:28:24.000000000 +0200
+@@ -6,12 +6,9 @@
+ wince*:{
+ SRC_SUBDIRS += src_corelib src_xml src_gui src_sql src_network src_script src_testlib
+ } else {
+- SRC_SUBDIRS += src_tools_moc src_tools_rcc src_tools_uic src_corelib src_xml src_network src_gui src_sql src_script src_testlib
++ SRC_SUBDIRS += src_corelib src_xml src_network src_gui src_sql src_script src_testlib
+ contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support
+ contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus
+- !cross_compile {
+- contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_tools_uic3
+- }
+ }
+ win32:!contains(QT_EDITION, OpenSource|Console): {
+ SRC_SUBDIRS += src_activeqt
diff --git a/packages/qt4/qt4-x11-free-4.4.0/0004-no-qmake.patch b/packages/qt4/qt4-x11-free-4.4.0/0004-no-qmake.patch
new file mode 100644
index 0000000000..28f8d3ad9d
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.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
+@@ -3517,7 +3517,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/qt4/qt4-x11-free-4.4.0/0005-fix-mkspecs.patch b/packages/qt4/qt4-x11-free-4.4.0/0005-fix-mkspecs.patch
new file mode 100644
index 0000000000..c6f55906bc
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/0005-fix-mkspecs.patch
@@ -0,0 +1,101 @@
+--- /tmp/g++.conf 2008-07-08 10:32:18.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/mkspecs/common/g++.conf 2008-07-08 10:34:15.000000000 +0200
+@@ -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 +=
+ QMAKE_CFLAGS_DEBUG += -g
+ QMAKE_CFLAGS_SHLIB += -fPIC
+ QMAKE_CFLAGS_STATIC_LIB += -fPIC
+@@ -16,8 +16,8 @@
+ 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_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 +=
+@@ -41,7 +41,7 @@
+ QMAKE_LFLAGS_SONAME += -Wl,-soname,
+ QMAKE_LFLAGS_THREAD +=
+ QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
+-QMAKE_RPATH = -Wl,-rpath,
++QMAKE_RPATH = -Wl,-rpath-link,
+
+ QMAKE_PCH_OUTPUT_EXT = .gch
+
+--- /tmp/linux.conf 2008-07-08 10:32:18.000000000 +0200
++++ qt-embedded-linux-opensource-src-4.4.0/mkspecs/common/linux.conf 2008-07-08 10:38:37.000000000 +0200
+@@ -7,26 +7,27 @@
+
+ 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_OBJCOPY = objcopy
+ QMAKE_RANLIB =
+
+@@ -39,7 +40,7 @@
+ 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
diff --git a/packages/qt4/qt4-x11-free-4.4.0/0006-freetype-host-includes.patch b/packages/qt4/qt4-x11-free-4.4.0/0006-freetype-host-includes.patch
new file mode 100644
index 0000000000..cc8e115fee
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.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/qt4/qt4-x11-free-4.4.0/0007-openssl-host-includes.patch b/packages/qt4/qt4-x11-free-4.4.0/0007-openssl-host-includes.patch
new file mode 100644
index 0000000000..35b71d9694
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.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/qt4/qt4-x11-free-4.4.0/allow-configure-plugins.patch b/packages/qt4/qt4-x11-free-4.4.0/allow-configure-plugins.patch
new file mode 100644
index 0000000000..601f2fc369
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/allow-configure-plugins.patch
@@ -0,0 +1,62 @@
+Index: qtopia-core-opensource-src-4.3.3/configure
+===================================================================
+--- qtopia-core-opensource-src-4.3.3.orig/configure 2008-01-20 11:42:07.000000000 +0100
++++ qtopia-core-opensource-src-4.3.3/configure 2008-01-20 22:31:37.000000000 +0100
+@@ -639,10 +639,10 @@
+
+ CFG_SQL_AVAILABLE=
+ if [ -d "$relpath/src/plugins/sqldrivers" ]; then
+- for a in "$relpath/src/plugins/sqldrivers/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/sqldrivers/`; do
++ dir="$relpath/src/plugins/sqldrivers/$a"
++ if [ -d "$dir" ]; then
++ CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${a}"
+ eval "CFG_SQL_${base_a}=auto"
+ fi
+ done
+@@ -650,30 +650,30 @@
+
+ CFG_DECORATION_PLUGIN_AVAILABLE=
+ if [ -d "$relpath/src/plugins/decorations" ]; then
+- for a in "$relpath/src/plugins/decorations/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/decorations/`; do
++ dir="$relpath/src/plugins/decorations/$a"
++ if [ -d "$dir" ]; then
++ CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${a}"
+ fi
+ done
+ fi
+
+ CFG_MOUSE_PLUGIN_AVAILABLE=
+ if [ -d "$relpath/src/plugins/mousedrivers" ]; then
+- for a in "$relpath/src/plugins/mousedrivers/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/mousedrivers/`; do
++ dir="$relpath/src/plugins/mousedrivers/$a"
++ if [ -d "$dir" ]; then
++ CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${a}"
+ fi
+ done
+ fi
+
+ CFG_GFX_PLUGIN_AVAILABLE=
+ if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
+- for a in "$relpath/src/plugins/gfxdrivers/"*; do
+- if [ -d "$a" ]; then
+- base_a=`basename $a`
+- CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
++ for a in `ls $relpath/src/plugins/gfxdrivers/`; do
++ dir="$relpath/src/plugins/gfxdrivers/$a"
++ if [ -d "$dir" ]; then
++ CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${a}"
+ fi
+ done
+ CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
diff --git a/packages/qt4/qt4-x11-free-4.4.0/build-tools.patch b/packages/qt4/qt4-x11-free-4.4.0/build-tools.patch
new file mode 100644
index 0000000000..54ad666374
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/build-tools.patch
@@ -0,0 +1,28 @@
+Do not disable tools, examples and demos for the QWS build. Use brute-force
+to do this.
+
+Index: qtopia-core-opensource-src-4.3.3/configure
+===================================================================
+--- qtopia-core-opensource-src-4.3.3.orig/configure 2007-12-27 16:30:36.000000000 +0100
++++ qtopia-core-opensource-src-4.3.3/configure 2007-12-27 16:30:52.000000000 +0100
+@@ -2265,13 +2265,13 @@
+ CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
+
+ # don't build tools by default when cross-compiling
+- if [ "$PLATFORM" != "$XPLATFORM" ]; then
+- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
+- fi
+-fi
+-for nobuild in $CFG_NOBUILD_PARTS; do
+- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
+-done
++ #if [ "$PLATFORM" != "$XPLATFORM" ]; then
++ # CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
++ #fi
++fi
++#for nobuild in $CFG_NOBUILD_PARTS; do
++# CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
++#done
+ if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
+ # echo
+ # echo "WARNING: libs is a required part of the build."
diff --git a/packages/qt4/qt4-x11-free-4.4.0/linux-oe-qmake.conf b/packages/qt4/qt4-x11-free-4.4.0/linux-oe-qmake.conf
new file mode 100644
index 0000000000..fc5ac6dc5c
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/linux-oe-qmake.conf
@@ -0,0 +1,95 @@
+#
+# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org
+#
+
+MAKEFILE_GENERATOR = UNIX
+TEMPLATE = app
+CONFIG += qt warn_on release link_prl
+QT += core gui network
+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 =
+QMAKE_LIBDIR_X11 =
+QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
+QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
+QMAKE_INCDIR_OPENGL =
+QMAKE_LIBDIR_OPENGL =
+QMAKE_INCDIR_QTOPIA = $(OE_QMAKE_INCDIR_QTOPIA)
+QMAKE_LIBDIR_QTOPIA = $(OE_QMAKE_LIBDIR_QTOPIA)
+
+
+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 =
+QMAKE_LIBS_X11SM =
+QMAKE_LIBS_QT = -lqte
+QMAKE_LIBS_QT_THREAD = -lqte-mt
+QMAKE_LIBS_QT_OPENGL = -lqgl
+QMAKE_LIBS_THREAD = -lpthread
+QMAKE_LIBS_QTOPIA = -lqpe -lqtopia
+QMAKE_LIBS_THREAD = -lpthread
+
+QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
+QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
+
+QMAKE_AR = $(OE_QMAKE_AR) cqs
+QMAKE_RANLIB = $(OE_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
+load(qt_config)
diff --git a/packages/qt4/qt4-x11-free-4.4.0/qconfig-oe.h b/packages/qt4/qt4-x11-free-4.4.0/qconfig-oe.h
new file mode 100644
index 0000000000..f820c01da8
--- /dev/null
+++ b/packages/qt4/qt4-x11-free-4.4.0/qconfig-oe.h
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** This file may be used under the terms of the GNU General Public
+** License version 2.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of
+** this file. Please review the following information to ensure GNU
+** General Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/
+**
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** In addition, as a special exception, Trolltech gives you certain
+** additional rights. These rights are described in the Trolltech GPL
+** Exception version 1.0, which can be found at
+** http://www.trolltech.com/products/qt/gplexception/ and in the file
+** GPL_EXCEPTION.txt in this package.
+**
+** In addition, as a special exception, Trolltech, as the sole copyright
+** holder for Qt Designer, grants users of the Qt/Eclipse Integration
+** plug-in the right for the Qt/Eclipse Integration to link to
+** functionality provided by Qt Designer and its related libraries.
+**
+** Trolltech reserves all rights not expressly granted herein.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+****************************************************************************/
+
+
+/*
+ Empty leaves all features enabled. See doc/html/emb-features.html for choices.
+
+ Note that disabling some features will produce a libqt that is not
+ compatible with other libqt builds. Such modifications are only
+ supported on Qtopia Core where reducing the library size is important
+ and where the application-suite is often a fixed set.
+*/
diff --git a/packages/qt4/qt4-x11-free_4.4.0.bb b/packages/qt4/qt4-x11-free_4.4.0.bb
new file mode 100644
index 0000000000..7d30503c07
--- /dev/null
+++ b/packages/qt4/qt4-x11-free_4.4.0.bb
@@ -0,0 +1,5 @@
+require qt4-x11-free.inc
+SRC_URI += " \
+ file://0002-fix-resinit-declaration.patch;patch=1 \
+ file://0006-freetype-host-includes.patch;patch=1 \
+ file://0007-openssl-host-includes.patch;patch=1 "
diff --git a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
index e6e73da516..8870bcc799 100644
--- a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
+++ b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
@@ -12,6 +12,7 @@ PROVIDES_sharprom-compatible = "\
virtual/libiconv \
virtual/arm-linux-gcc \
virtual/arm-linux-libc-for-gcc \
+ virtual/arm-linux-gcc-intermediate \
virtual/arm-linux-gcc-initial "
PR = "r2"
diff --git a/packages/snes9x/64bit.patch b/packages/snes9x/64bit.patch
new file mode 100644
index 0000000000..a8388de0a2
--- /dev/null
+++ b/packages/snes9x/64bit.patch
@@ -0,0 +1,110 @@
+--- s/offsets.cpp~ 2004-07-11 22:50:59.000000000 +0100
++++ s/offsets.cpp 2008-07-27 10:28:40.000000000 +0100
+@@ -100,30 +100,30 @@
+ #endif
+
+ #define OFFSET(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " CPU + %d\n", (int) &((struct SCPUState *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " CPU + %d\n", &((struct SCPUState *) 0)->F);
+ #define OFFSET2(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " Registers + %d\n", (int) &((struct SRegisters *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " Registers + %d\n", &((struct SRegisters *) 0)->F);
+ #define OFFSET3(F) \
+-fprintf (S9xSTREAM, "#define " #F " Memory + %d\n", (int) &((class CMemory *) 0)->F);
++fprintf (S9xSTREAM, "#define " #F " Memory + %d\n", &((class CMemory *) 0)->F);
+ #define OFFSET4(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " APU + %d\n", (int) &((struct SAPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " APU + %d\n", &((struct SAPU *) 0)->F);
+ #define OFFSET5(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " IAPU + %d\n", (int) &((struct SIAPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " IAPU + %d\n", &((struct SIAPU *) 0)->F);
+ #define OFFSET6(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " ICPU + %d\n", (int) &((struct SICPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " ICPU + %d\n", &((struct SICPU *) 0)->F);
+ #define OFFSET7(N,F) \
+-fprintf (S9xSTREAM, "#define " #N " Settings + %d\n", (int) &((struct SSettings *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " Settings + %d\n", &((struct SSettings *) 0)->F);
+ #define OFFSET8(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " APURegisters + %d\n", (int) &((struct SAPURegisters *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " APURegisters + %d\n", &((struct SAPURegisters *) 0)->F);
+
+ #define OFFSET9(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " PPU + %d\n", (int) &((struct SPPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " PPU + %d\n", &((struct SPPU *) 0)->F);
+ #define OFFSET10(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " IPPU + %d\n", (int) &((struct InternalPPU *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " IPPU + %d\n", &((struct InternalPPU *) 0)->F);
+ #define OFFSET11(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " SA1 + %d\n", (int) &((struct SSA1 *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " SA1 + %d\n", &((struct SSA1 *) 0)->F);
+ #define OFFSET12(N, F) \
+-fprintf (S9xSTREAM, "#define " #N " SA1Registers + %d\n", (int) &((struct SSA1Registers *) 0)->F);
++fprintf (S9xSTREAM, "#define " #N " SA1Registers + %d\n", &((struct SSA1Registers *) 0)->F);
+
+ int main (int /*argc*/, char ** /*argv*/)
+ {
+--- s/getset.h~ 2004-07-11 22:50:58.000000000 +0100
++++ s/getset.h 2008-07-27 10:30:38.000000000 +0100
+@@ -120,7 +120,7 @@
+ return (*(GetAddress + (Address & 0xffff)));
+ }
+
+- switch ((int) GetAddress)
++ switch ((long)GetAddress)
+ {
+ case CMemory::MAP_PPU:
+ return (S9xGetPPU (Address & 0xffff));
+@@ -225,7 +225,7 @@
+ #endif
+ }
+
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_PPU:
+ return (S9xGetPPU (Address & 0xffff) |
+@@ -349,7 +349,7 @@
+ return;
+ }
+
+- switch ((int) SetAddress)
++ switch ((long) SetAddress)
+ {
+ case CMemory::MAP_PPU:
+ S9xSetPPU (Byte, Address & 0xffff);
+@@ -482,7 +482,7 @@
+ return;
+ }
+
+- switch ((int) SetAddress)
++ switch ((long) SetAddress)
+ {
+ case CMemory::MAP_PPU:
+ S9xSetPPU ((uint8) Word, Address & 0xffff);
+@@ -603,7 +603,7 @@
+ {
+ return s7r.bank50;
+ }
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_SPC7110_DRAM:
+ #ifdef SPC7110_DEBUG
+@@ -669,7 +669,7 @@
+ if(Settings.SPC7110&&((Address&0x7FFFFF)==0x4800))
+ return s7r.bank50;
+
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_SPC7110_DRAM:
+ #ifdef SPC7110_DEBUG
+@@ -729,7 +729,7 @@
+ return;
+ }
+
+- switch ((int) GetAddress)
++ switch ((long) GetAddress)
+ {
+ case CMemory::MAP_PPU:
+ CPU.PCBase = Memory.FillRAM;
diff --git a/packages/snes9x/snes9x_1.43-WIP1.bb b/packages/snes9x/snes9x_1.43-WIP1.bb
index b30dccecee..0b746795f2 100644
--- a/packages/snes9x/snes9x_1.43-WIP1.bb
+++ b/packages/snes9x/snes9x_1.43-WIP1.bb
@@ -7,7 +7,8 @@ RDEPENDS_epia = "kernel-module-joydev"
SRC_URI = "http://www.lysator.liu.se/snes9x/1.43-WIP1/snes9x-1.43-WIP1-src.tar.gz \
file://makefile.patch;patch=1;pnum=2 \
- file://private.patch;patch=1;pnum=0"
+ file://private.patch;patch=1;pnum=0 \
+ file://64bit.patch;patch=1"
S = "${WORKDIR}/snes9x-1.43-dev-src/snes9x"
diff --git a/packages/speex/speex_1.0.4.bb b/packages/speex/speex_1.0.4.bb
deleted file mode 100644
index e1af8d18da..0000000000
--- a/packages/speex/speex_1.0.4.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compression format designed for speech."
-SECTION = "libs"
-LICENSE = "BSD"
-HOMEPAGE = "http://www.speex.org"
-DEPENDS = "libogg"
-PR = "r0"
-
-SRC_URI = "http://www.speex.org/download/speex-${PV}.tar.gz"
-
-inherit autotools
-
-do_configure_append() {
- sed -i s/"^OGG_INCLUDES.*$"/"OGG_INCLUDES = "/g src/Makefile
- sed -i s/"^OGG_LDFLAGSS.*$"/"OGG_LDFLAGS = "/g src/Makefile
-}
-
-do_stage() {
- oe_libinstall -C libspeex/.libs -so libspeex ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_bits.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_callbacks.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_header.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_stereo.h ${STAGING_INCDIR}/speex
- install -m 0644 speex.m4 ${STAGING_DATADIR}/aclocal/
-}
-
diff --git a/packages/speex/speex_1.1.12.bb b/packages/speex/speex_1.1.12.bb
deleted file mode 100644
index 7417ce4504..0000000000
--- a/packages/speex/speex_1.1.12.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compression format designed for speech."
-SECTION = "libs"
-LICENSE = "BSD"
-HOMEPAGE = "http://www.speex.org"
-DEPENDS = "libogg"
-PR = "r2"
-
-SRC_URI = "http://downloads.us.xiph.org/releases/speex/speex-${PV}.tar.gz"
-
-PARALLEL_MAKE = ""
-
-inherit autotools pkgconfig
-
-# Some interesting options are:
-#
-# --enable-arm4-asm
-# --enable-arm5e-asm
-# --enable-fixed-point
-#
-
-EXTRA_OECONF_append_openmn = " --enable-arm5e-asm --enable-fixed-point"
-EXTRA_OECONF_append_amsdelta = " --enable-arm4-asm --enable-fixed-point"
-EXTRA_OECONF_append_arm = " --enable-fixed-point "
-
-do_configure_append() {
- sed -i s/"^OGG_CFLAGS.*$"/"OGG_CFLAGS = "/g Makefile */Makefile */*/Makefile
- sed -i s/"^OGG_LIBS.*$"/"OGG_LIBS = -logg"/g Makefile */Makefile */*/Makefile
- perl -pi -e 's:\s*-I/usr/include$::g' Makefile */Makefile */*/Makefile
-}
-
-do_stage() {
- oe_libinstall -C libspeex -so libspeex ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/*.h ${STAGING_INCDIR}/speex
- install -m 0644 speex.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/packages/speex/speex_1.1.7.bb b/packages/speex/speex_1.1.7.bb
deleted file mode 100644
index ef818794de..0000000000
--- a/packages/speex/speex_1.1.7.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compression format designed for speech."
-SECTION = "libs"
-LICENSE = "BSD"
-HOMEPAGE = "http://www.speex.org"
-DEPENDS = "libogg"
-PR = "r1"
-
-SRC_URI = "http://www.speex.org/download/speex-${PV}.tar.gz"
-
-inherit autotools
-
-# Some interesting options are:
-#
-# --enable-arm4-asm
-# --enable-arm5e-asm
-# --enable-fixed-point
-#
-
-EXTRA_OECONF_append_openmn = " --enable-arm5e-asm --enable-fixed-point"
-
-do_configure_append() {
- sed -i s/"^OGG_CFLAGS.*$"/"OGG_CFLAGS = "/g Makefile */Makefile */*/Makefile
- sed -i s/"^OGG_LIBS.*$"/"OGG_LIBS = -logg"/g Makefile */Makefile */*/Makefile
- perl -pi -e 's:\s*-I/usr/include$::g' Makefile */Makefile */*/Makefile
-}
-
-do_stage() {
- oe_libinstall -C libspeex/.libs -so libspeex ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_bits.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_callbacks.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_header.h ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/speex_stereo.h ${STAGING_INCDIR}/speex
- install -m 0644 speex.m4 ${STAGING_DATADIR}/aclocal/
-}
diff --git a/packages/speex/speex_1.2-beta3.bb b/packages/speex/speex_1.2.bb
index a2aa6652f7..9701646b1e 100644
--- a/packages/speex/speex_1.2-beta3.bb
+++ b/packages/speex/speex_1.2.bb
@@ -1,12 +1,14 @@
DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compression format designed for speech."
-SECTION = "libs"
+SECTION = "libs/multimedia"
LICENSE = "BSD"
HOMEPAGE = "http://www.speex.org"
DEPENDS = "libogg"
+BETA = "1.2rc1"
+PV = "1.1+${BETA}"
PR = "r0"
-SRC_URI = "http://downloads.us.xiph.org/releases/speex/speex-1.2beta3.tar.gz"
-S = "${WORKDIR}/${PN}-1.2beta3"
+SRC_URI = "http://downloads.us.xiph.org/releases/speex/speex-${BETA}.tar.gz"
+S = "${WORKDIR}/speex-${BETA}"
PARALLEL_MAKE = ""
@@ -29,15 +31,19 @@ EXTRA_OECONF_append_bfin = " --enable-blackfin-asm --enable-fixed-point --disabl
EXTRA_OECONF_append_arm = " --enable-fixed-point --disable-float-api --disable-vbr "
EXTRA_OECONF_append_dht-walnut = " --enable-fixed-point --disable-float-api --disable-vbr "
+
+
do_configure_append() {
sed -i s/"^OGG_CFLAGS.*$"/"OGG_CFLAGS = "/g Makefile */Makefile */*/Makefile
sed -i s/"^OGG_LIBS.*$"/"OGG_LIBS = -logg"/g Makefile */Makefile */*/Makefile
- perl -pi -e 's:\s*-I/usr/include$::g' Makefile */Makefile */*/Makefile
+ find . -name "Makefile" -exec sed -i s,-I/usr/include,, {} \;
}
do_stage() {
- oe_libinstall -C libspeex -so libspeex ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/speex
- install -m 0644 include/speex/*.h ${STAGING_INCDIR}/speex
- install -m 0644 speex.m4 ${STAGING_DATADIR}/aclocal/
+ autotools_stage_all
}
+
+PACKAGES =+ "${PN}-utils ${PN}-dsp"
+FILES_${PN}-utils = "${bindir}/speex*"
+FILES_${PN}-dsp = "${libdir}/libspeexdsp.so.*"
+FILES_${PN} = "${libdir}/libspeex.so.*"
diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb
index 9c9c3e43bb..69dfd0133d 100644
--- a/packages/tasks/task-base.bb
+++ b/packages/tasks/task-base.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
-PR = "r70"
+PR = "r71"
inherit task
diff --git a/packages/tasks/task-boot.bb b/packages/tasks/task-boot.bb
index cb4db34e64..4c17eeaa04 100644
--- a/packages/tasks/task-boot.bb
+++ b/packages/tasks/task-boot.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Basic task to get a device booting"
-PR = "r44"
+PR = "r45"
inherit task
diff --git a/packages/tasks/task-gpe-base.bb b/packages/tasks/task-gpe-base.bb
index a26c2118e4..66031ffce7 100644
--- a/packages/tasks/task-gpe-base.bb
+++ b/packages/tasks/task-gpe-base.bb
@@ -1,11 +1,10 @@
DESCRIPTION = "Base task package for GPE Palmtop Environment"
-PR = "r8"
+PR = "r9"
LICENSE = "MIT"
inherit task
RDEPENDS_${PN} = "\
- gpe-bootsplash \
bluez-utils-dbus \
matchbox \
xcursor-transparent-theme \
diff --git a/packages/tasks/task-mythfront.bb b/packages/tasks/task-mythfront.bb
index 37e0fa0883..1a89d1b792 100644
--- a/packages/tasks/task-mythfront.bb
+++ b/packages/tasks/task-mythfront.bb
@@ -1,11 +1,11 @@
DESCRIPTION = "Meta-package for MythTV diskless frontend"
-PR = "r14"
+PR = "r16"
inherit task
-RDEPENDS_${PN} = "xserver-xorg mythtv-frontend mythtv-filters mythtv-theme-g.a.n.t. mythtv-theme-default lirc lirc-modules ttf-bitstream-vera fontconfig-utils setserial snes9x ntp mythfront-config gpe-dm mythfront-session bootlogd font-cursor-misc font-misc-misc xf86-input-keyboard xf86-input-mouse"
+RDEPENDS_${PN} = "xserver-xorg mythtv-frontend mythtv-filters mythtv-theme-g.a.n.t mythtv-theme-default lirc lirc-modules ttf-bitstream-vera fontconfig-utils setserial snes9x ntp mythfront-config gpe-dm mythfront-session bootlogd font-cursor-misc font-misc-misc xf86-input-keyboard xf86-input-mouse"
-RDEPENDS_${PN}_append_epia = " xorg-driver-via mesa-dri-driver-unichrome"
+RDEPENDS_${PN}_append_epia = " xorg-driver-openchrome mesa-dri-driver-unichrome"
PACKAGE_ARCH_epia = "${MACHINE_ARCH}"
diff --git a/packages/tcp-wrappers/tcp-wrappers_7.6.bb b/packages/tcp-wrappers/tcp-wrappers_7.6.bb
index 047adc23a6..e10d3e8172 100644
--- a/packages/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/packages/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Tools for monitoring and filtering incoming requests for tcp \
LICENSE = "tcp-wrappers"
PRIORITY = "optional"
SECTION = "console/network"
-PR="r1"
+PR="r2"
PACKAGES = "${PN}-dbg libwrap libwrap-doc libwrap-dev tcp-wrappers tcp-wrappers-doc"
@@ -107,5 +107,6 @@ do_install () {
do_stage() {
oe_libinstall -C shared -so libwrap ${STAGING_LIBDIR}
+ install -m 0644 tcpd.h ${STAGING_INCDIR}
}
diff --git a/packages/tslib/tslib/bd-neon/ts.conf b/packages/tslib/tslib/bd-neon/ts.conf
index 15fe294ce6..20dd11cf6a 100644
--- a/packages/tslib/tslib/bd-neon/ts.conf
+++ b/packages/tslib/tslib/bd-neon/ts.conf
@@ -1,4 +1,4 @@
-module_raw ucb1x00
+module_raw input
module pthres pmin=1
module variance delta=500
module dejitter delta=10000
diff --git a/packages/tslib/tslib/bd-neon/tslib.sh b/packages/tslib/tslib/bd-neon/tslib.sh
deleted file mode 100644
index b5f1c906f3..0000000000
--- a/packages/tslib/tslib/bd-neon/tslib.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-TSLIB_TSDEVICE=/dev/touch_ucb1x00
-
-export TSLIB_TSDEVICE
-
diff --git a/packages/tslib/tslib_1.0.bb b/packages/tslib/tslib_1.0.bb
index 725e067a0b..6fa0b3fccc 100644
--- a/packages/tslib/tslib_1.0.bb
+++ b/packages/tslib/tslib_1.0.bb
@@ -4,7 +4,7 @@ AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
SECTION = "base"
LICENSE = "LGPL"
-PR = "r18"
+PR = "r19"
SRC_URI = "http://download.berlios.de/tslib/tslib-1.0.tar.bz2 \
file://tslib-input_raw-grab_events.patch;patch=1 \
diff --git a/packages/uclibc/bfin-uclibc_svn.bb b/packages/uclibc/bfin-uclibc_svn.bb
index 5e71ddb490..cccb5d6527 100644
--- a/packages/uclibc/bfin-uclibc_svn.bb
+++ b/packages/uclibc/bfin-uclibc_svn.bb
@@ -7,7 +7,7 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-PR = "r1"
+PR = "r2"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
require uclibc.inc
diff --git a/packages/uclibc/uclibc-cvs/uclibc-arm-ftruncate64.patch b/packages/uclibc/files/uclibc-arm-ftruncate64.patch
index 504d37bcd2..504d37bcd2 100644
--- a/packages/uclibc/uclibc-cvs/uclibc-arm-ftruncate64.patch
+++ b/packages/uclibc/files/uclibc-arm-ftruncate64.patch
diff --git a/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch b/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
new file mode 100644
index 0000000000..ce67e8f764
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
@@ -0,0 +1,25 @@
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.27/Makefile
+===================================================================
+--- uClibc-0.9.27.orig/Makefile 2008-07-23 20:05:34.000000000 -0700
++++ uClibc-0.9.27/Makefile 2008-07-23 20:06:27.000000000 -0700
+@@ -243,14 +243,14 @@ endif
+ .PHONY: utils
+ ifeq ($(strip $(HAVE_SHARED)),y)
+ utils:
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils
+ else
+ utils: dummy
+ endif
+
+ # Installs helper applications, such as 'ldd' and 'ldconfig'
+ install_utils: utils
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils install
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils install
+ #ifeq ($(strip $(UCLIBC_HAS_LOCALE)),y)
+ # @$(MAKE) -C libc/misc/wchar iconv.target
+ # $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)/usr/bin;
diff --git a/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch b/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch
new file mode 100644
index 0000000000..0f66c1526f
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch
@@ -0,0 +1,38 @@
+---
+ Rules.mak | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.28/Rules.mak
+===================================================================
+--- uClibc-0.9.28.orig/Rules.mak 2005-08-17 15:49:49.000000000 -0700
++++ uClibc-0.9.28/Rules.mak 2008-07-22 23:35:10.000000000 -0700
+@@ -37,7 +37,8 @@
+ # will build uClibc for 'arm'.
+
+ ifndef CROSS
+-CROSS=
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+ CC = $(CROSS)gcc
+ AR = $(CROSS)ar
+@@ -85,7 +86,8 @@ ifeq ($(filter $(noconfig_targets),$(MAK
+ endif
+
+ ifndef CROSS
+-CROSS=$(subst ",, $(strip $(CROSS_COMPILER_PREFIX)))
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+
+ # A nifty macro to make testing gcc features easier
+@@ -337,6 +339,9 @@ ASFLAGS += $(ASFLAGS_NOEXEC)
+ LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
+ LIBGCC:=$(shell $(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name)
+ LIBGCC_DIR:=$(dir $(LIBGCC))
++ifneq ($(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a),libgcc_eh.a)
++ LIBGCC += $(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a)
++endif
+
+ ########################################
+ #
diff --git a/packages/uclibc/uclibc-initial_0.9.26.bb b/packages/uclibc/uclibc-initial_0.9.26.bb
index c29a498a96..a6a83bdce9 100644
--- a/packages/uclibc/uclibc-initial_0.9.26.bb
+++ b/packages/uclibc/uclibc-initial_0.9.26.bb
@@ -3,20 +3,28 @@ 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"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.27.bb b/packages/uclibc/uclibc-initial_0.9.27.bb
index c29a498a96..3aecd802af 100644
--- a/packages/uclibc/uclibc-initial_0.9.27.bb
+++ b/packages/uclibc/uclibc-initial_0.9.27.bb
@@ -3,20 +3,29 @@ 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"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.28.bb b/packages/uclibc/uclibc-initial_0.9.28.bb
index c29a498a96..4bfbdb6d16 100644
--- a/packages/uclibc/uclibc-initial_0.9.28.bb
+++ b/packages/uclibc/uclibc-initial_0.9.28.bb
@@ -3,20 +3,29 @@ 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"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt1.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.29.bb b/packages/uclibc/uclibc-initial_0.9.29.bb
index e75f612b88..c56e5fb2f5 100644
--- a/packages/uclibc/uclibc-initial_0.9.29.bb
+++ b/packages/uclibc/uclibc-initial_0.9.29.bb
@@ -3,7 +3,7 @@ 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 ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
@@ -12,12 +12,19 @@ do_stage() {
make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ lib/crt1.o lib/crti.o lib/crtn.o
install -d ${CROSS_DIR}/${TARGET_SYS}
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_svn.bb b/packages/uclibc/uclibc-initial_svn.bb
index f3496839ff..e742fd55fd 100644
--- a/packages/uclibc/uclibc-initial_svn.bb
+++ b/packages/uclibc/uclibc-initial_svn.bb
@@ -1,9 +1,7 @@
SECTION = "base"
require uclibc_svn.bb
-FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
@@ -11,12 +9,18 @@ do_stage() {
# Install initial headers into the cross dir
make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- pregen install_dev
+ install_headers
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ lib/crt1.o lib/crti.o lib/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
}
do_install() {
diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc
index 861568c06e..544d760e99 100644
--- a/packages/uclibc/uclibc.inc
+++ b/packages/uclibc/uclibc.inc
@@ -22,7 +22,7 @@ python __anonymous () {
PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
DEPENDS = "virtual/${TARGET_PREFIX}binutils \
- virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
+ virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
# Blackfin needs a wrapper around ld
@@ -73,7 +73,8 @@ UCLIBC_STAGE_PREFIX = "${STAGING_DIR_HOST}${layout_prefix}"
# the CFLAGS (for when building the utils).
OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
-EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' HOSTCFLAGS='-I${STAGING_INCDIR_NATIVE}'"
+EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
+ 'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}'"
EXTRA_OEMAKE_task_do_populate_staging = "${OEMAKE_NO_CC}"
EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
diff --git a/packages/uclibc/uclibc_0.9.26.bb b/packages/uclibc/uclibc_0.9.26.bb
index 865d373a43..1c52500ee6 100644
--- a/packages/uclibc/uclibc_0.9.26.bb
+++ b/packages/uclibc/uclibc_0.9.26.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_0.9.27.bb b/packages/uclibc/uclibc_0.9.27.bb
index d1686f5772..f730ad8a27 100644
--- a/packages/uclibc/uclibc_0.9.27.bb
+++ b/packages/uclibc/uclibc_0.9.27.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-PR = "r9"
+PR = "r10"
require uclibc.inc
@@ -19,6 +19,7 @@ SRC_URI += "${PATCH_ipc_h}"
SRC_URI += " file://thumb-swi.patch;patch=1"
SRC_URI += " file://thumb-swp.patch;patch=1"
SRC_URI += " file://arm-thumb-defined.patch;patch=1"
+SRC_URI += " file://uclibc-makevars-in-quotes.patch;patch=1"
# ARM thumb interworking - these changes fix various bugs in the
# uclibc implementation of thumb interwork support, but they are
diff --git a/packages/uclibc/uclibc_0.9.28.bb b/packages/uclibc/uclibc_0.9.28.bb
index eb3bb50083..1b2fc325d5 100644
--- a/packages/uclibc/uclibc_0.9.28.bb
+++ b/packages/uclibc/uclibc_0.9.28.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-PR = "r13"
+PR = "r14"
require uclibc.inc
@@ -34,6 +34,7 @@ THUMBSTUFF = " \
file://dl-startup.h.patch;patch=1 \
file://dl-string.h.patch;patch=1 \
file://dl-sysdep.h.patch;patch=1 \
+ file://uclibc-libgcc-eh.patch;patch=1 \
"
SRC_URI_append_arm = " ${THUMBSTUFF} "
diff --git a/packages/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb
index 4565f7dbb4..8368903277 100644
--- a/packages/uclibc/uclibc_0.9.29.bb
+++ b/packages/uclibc/uclibc_0.9.29.bb
@@ -7,8 +7,8 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-PR = "r19"
-DEFAULT_PREFERENCE = "3"
+PR = "r20"
+DEFAULT_PREFERENCE = "1"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_svn.bb b/packages/uclibc/uclibc_svn.bb
index a357808745..b7b8960952 100644
--- a/packages/uclibc/uclibc_svn.bb
+++ b/packages/uclibc/uclibc_svn.bb
@@ -8,7 +8,7 @@
#
UCLIBC_BASE ?= "0.9.29"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
-PR = "r10"
+PR = "r12"
#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
# precedence.
@@ -28,8 +28,6 @@ SRC_URI += "svn://uclibc.org/trunk;module=uClibc \
file://uClibc.machine \
file://uClibc.distro \
file://uclibc-arm-ftruncate64.patch;patch=1 \
- file://errno_values.h.patch;patch=1 \
- file://build_wcs_upper_buffer.patch;patch=1 \
file://arm_fix_alignment.patch;patch=1 \
file://unistd_arm.patch;patch=1 \
"
diff --git a/packages/util-linux-ng/util-linux-ng-2.14/.mtn2git_empty b/packages/util-linux-ng/util-linux-ng-2.14/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/util-linux-ng/util-linux-ng-2.14/.mtn2git_empty
diff --git a/packages/util-linux-ng/util-linux-ng-2.14/util-linux-ng-uclibc-versionsort.patch b/packages/util-linux-ng/util-linux-ng-2.14/util-linux-ng-uclibc-versionsort.patch
new file mode 100644
index 0000000000..de8e4a1f6e
--- /dev/null
+++ b/packages/util-linux-ng/util-linux-ng-2.14/util-linux-ng-uclibc-versionsort.patch
@@ -0,0 +1,3614 @@
+Index: util-linux-ng-2.14/aclocal.m4
+===================================================================
+--- util-linux-ng-2.14.orig/aclocal.m4 2008-06-09 03:57:23.000000000 -0700
++++ util-linux-ng-2.14/aclocal.m4 2008-07-26 01:28:34.000000000 -0700
+@@ -860,11 +860,1985 @@
+ AC_SUBST([am__untar])
+ ]) # _AM_PROG_TAR
+
+-m4_include([m4/gettext.m4])
+-m4_include([m4/iconv.m4])
+-m4_include([m4/lib-ld.m4])
+-m4_include([m4/lib-link.m4])
+-m4_include([m4/lib-prefix.m4])
+-m4_include([m4/nls.m4])
+-m4_include([m4/po.m4])
+-m4_include([m4/progtest.m4])
++# gettext.m4 serial 28 (gettext-0.13)
++dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++dnl
++dnl This file can can be used in projects which are not available under
++dnl the GNU General Public License or the GNU Library General Public
++dnl License but which still want to provide support for the GNU gettext
++dnl functionality.
++dnl Please note that the actual code of the GNU gettext library is covered
++dnl by the GNU Library General Public License, and the rest of the GNU
++dnl gettext package package is covered by the GNU General Public License.
++dnl They are *not* in the public domain.
++
++dnl Authors:
++dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
++dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
++
++dnl Macro to add for using GNU gettext.
++
++dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
++dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
++dnl default (if it is not specified or empty) is 'no-libtool'.
++dnl INTLSYMBOL should be 'external' for packages with no intl directory,
++dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
++dnl If INTLSYMBOL is 'use-libtool', then a libtool library
++dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
++dnl depending on --{enable,disable}-{shared,static} and on the presence of
++dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
++dnl $(top_builddir)/intl/libintl.a will be created.
++dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
++dnl implementations (in libc or libintl) without the ngettext() function
++dnl will be ignored. If NEEDSYMBOL is specified and is
++dnl 'need-formatstring-macros', then GNU gettext implementations that don't
++dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
++dnl INTLDIR is used to find the intl libraries. If empty,
++dnl the value `$(top_builddir)/intl/' is used.
++dnl
++dnl The result of the configuration is one of three cases:
++dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
++dnl and used.
++dnl Catalog format: GNU --> install in $(datadir)
++dnl Catalog extension: .mo after installation, .gmo in source tree
++dnl 2) GNU gettext has been found in the system's C library.
++dnl Catalog format: GNU --> install in $(datadir)
++dnl Catalog extension: .mo after installation, .gmo in source tree
++dnl 3) No internationalization, always use English msgid.
++dnl Catalog format: none
++dnl Catalog extension: none
++dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
++dnl The use of .gmo is historical (it was needed to avoid overwriting the
++dnl GNU format catalogs when building on a platform with an X/Open gettext),
++dnl but we keep it in order not to force irrelevant filename changes on the
++dnl maintainers.
++dnl
++AC_DEFUN([AM_GNU_GETTEXT],
++[
++ dnl Argument checking.
++ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
++ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
++])])])])])
++ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
++ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
++])])])])
++ define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
++ define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
++
++ AC_REQUIRE([AM_PO_SUBDIRS])dnl
++ ifelse(gt_included_intl, yes, [
++ AC_REQUIRE([AM_INTL_SUBDIR])dnl
++ ])
++
++ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++
++ dnl Sometimes libintl requires libiconv, so first search for libiconv.
++ dnl Ideally we would do this search only after the
++ dnl if test "$USE_NLS" = "yes"; then
++ dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
++ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
++ dnl the configure script would need to contain the same shell code
++ dnl again, outside any 'if'. There are two solutions:
++ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
++ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
++ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
++ dnl documented, we avoid it.
++ ifelse(gt_included_intl, yes, , [
++ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
++ ])
++
++ dnl Set USE_NLS.
++ AM_NLS
++
++ ifelse(gt_included_intl, yes, [
++ BUILD_INCLUDED_LIBINTL=no
++ USE_INCLUDED_LIBINTL=no
++ ])
++ LIBINTL=
++ LTLIBINTL=
++ POSUB=
++
++ dnl If we use NLS figure out what method
++ if test "$USE_NLS" = "yes"; then
++ gt_use_preinstalled_gnugettext=no
++ ifelse(gt_included_intl, yes, [
++ AC_MSG_CHECKING([whether included gettext is requested])
++ AC_ARG_WITH(included-gettext,
++ [ --with-included-gettext use the GNU gettext library included here],
++ nls_cv_force_use_gnu_gettext=$withval,
++ nls_cv_force_use_gnu_gettext=no)
++ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
++
++ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
++ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
++ ])
++ dnl User does not insist on using GNU NLS library. Figure out what
++ dnl to use. If GNU gettext is available we use this. Else we have
++ dnl to fall back to GNU NLS library.
++
++ dnl Add a version number to the cache macros.
++ define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
++ define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
++ define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
++
++ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
++ [AC_TRY_LINK([#include <libintl.h>
++]ifelse([$2], [need-formatstring-macros],
++[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
++#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
++#endif
++changequote(,)dnl
++typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
++changequote([,])dnl
++], [])[extern int _nl_msg_cat_cntr;
++extern int *_nl_domain_bindings;],
++ [bindtextdomain ("", "");
++return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
++ gt_cv_func_gnugettext_libc=yes,
++ gt_cv_func_gnugettext_libc=no)])
++
++ if test "$gt_cv_func_gnugettext_libc" != "yes"; then
++ dnl Sometimes libintl requires libiconv, so first search for libiconv.
++ ifelse(gt_included_intl, yes, , [
++ AM_ICONV_LINK
++ ])
++ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
++ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
++ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
++ dnl even if libiconv doesn't exist.
++ AC_LIB_LINKFLAGS_BODY([intl])
++ AC_CACHE_CHECK([for GNU gettext in libintl],
++ gt_cv_func_gnugettext_libintl,
++ [gt_save_CPPFLAGS="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS $INCINTL"
++ gt_save_LIBS="$LIBS"
++ LIBS="$LIBS $LIBINTL"
++ dnl Now see whether libintl exists and does not depend on libiconv.
++ AC_TRY_LINK([#include <libintl.h>
++]ifelse([$2], [need-formatstring-macros],
++[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
++#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
++#endif
++changequote(,)dnl
++typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
++changequote([,])dnl
++], [])[extern int _nl_msg_cat_cntr;
++extern
++#ifdef __cplusplus
++"C"
++#endif
++const char *_nl_expand_alias ();],
++ [bindtextdomain ("", "");
++return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
++ gt_cv_func_gnugettext_libintl=yes,
++ gt_cv_func_gnugettext_libintl=no)
++ dnl Now see whether libintl exists and depends on libiconv.
++ if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
++ LIBS="$LIBS $LIBICONV"
++ AC_TRY_LINK([#include <libintl.h>
++]ifelse([$2], [need-formatstring-macros],
++[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
++#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
++#endif
++changequote(,)dnl
++typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
++changequote([,])dnl
++], [])[extern int _nl_msg_cat_cntr;
++extern
++#ifdef __cplusplus
++"C"
++#endif
++const char *_nl_expand_alias ();],
++ [bindtextdomain ("", "");
++return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
++ [LIBINTL="$LIBINTL $LIBICONV"
++ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
++ gt_cv_func_gnugettext_libintl=yes
++ ])
++ fi
++ CPPFLAGS="$gt_save_CPPFLAGS"
++ LIBS="$gt_save_LIBS"])
++ fi
++
++ dnl If an already present or preinstalled GNU gettext() is found,
++ dnl use it. But if this macro is used in GNU gettext, and GNU
++ dnl gettext is already preinstalled in libintl, we update this
++ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
++ if test "$gt_cv_func_gnugettext_libc" = "yes" \
++ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
++ && test "$PACKAGE" != gettext-runtime \
++ && test "$PACKAGE" != gettext-tools; }; then
++ gt_use_preinstalled_gnugettext=yes
++ else
++ dnl Reset the values set by searching for libintl.
++ LIBINTL=
++ LTLIBINTL=
++ INCINTL=
++ fi
++
++ ifelse(gt_included_intl, yes, [
++ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
++ dnl GNU gettext is not found in the C library.
++ dnl Fall back on included GNU gettext library.
++ nls_cv_use_gnu_gettext=yes
++ fi
++ fi
++
++ if test "$nls_cv_use_gnu_gettext" = "yes"; then
++ dnl Mark actions used to generate GNU NLS library.
++ BUILD_INCLUDED_LIBINTL=yes
++ USE_INCLUDED_LIBINTL=yes
++ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
++ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
++ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
++ fi
++
++ if test "$gt_use_preinstalled_gnugettext" = "yes" \
++ || test "$nls_cv_use_gnu_gettext" = "yes"; then
++ dnl Mark actions to use GNU gettext tools.
++ CATOBJEXT=.gmo
++ fi
++ ])
++
++ if test "$gt_use_preinstalled_gnugettext" = "yes" \
++ || test "$nls_cv_use_gnu_gettext" = "yes"; then
++ AC_DEFINE(ENABLE_NLS, 1,
++ [Define to 1 if translation of program messages to the user's native language
++ is requested.])
++ else
++ USE_NLS=no
++ fi
++ fi
++
++ AC_MSG_CHECKING([whether to use NLS])
++ AC_MSG_RESULT([$USE_NLS])
++ if test "$USE_NLS" = "yes"; then
++ AC_MSG_CHECKING([where the gettext function comes from])
++ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
++ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
++ gt_source="external libintl"
++ else
++ gt_source="libc"
++ fi
++ else
++ gt_source="included intl directory"
++ fi
++ AC_MSG_RESULT([$gt_source])
++ fi
++
++ if test "$USE_NLS" = "yes"; then
++
++ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
++ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
++ AC_MSG_CHECKING([how to link with libintl])
++ AC_MSG_RESULT([$LIBINTL])
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
++ fi
++
++ dnl For backward compatibility. Some packages may be using this.
++ AC_DEFINE(HAVE_GETTEXT, 1,
++ [Define if the GNU gettext() function is already present or preinstalled.])
++ AC_DEFINE(HAVE_DCGETTEXT, 1,
++ [Define if the GNU dcgettext() function is already present or preinstalled.])
++ fi
++
++ dnl We need to process the po/ directory.
++ POSUB=po
++ fi
++
++ ifelse(gt_included_intl, yes, [
++ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
++ dnl to 'yes' because some of the testsuite requires it.
++ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
++ BUILD_INCLUDED_LIBINTL=yes
++ fi
++
++ dnl Make all variables we use known to autoconf.
++ AC_SUBST(BUILD_INCLUDED_LIBINTL)
++ AC_SUBST(USE_INCLUDED_LIBINTL)
++ AC_SUBST(CATOBJEXT)
++
++ dnl For backward compatibility. Some configure.ins may be using this.
++ nls_cv_header_intl=
++ nls_cv_header_libgt=
++
++ dnl For backward compatibility. Some Makefiles may be using this.
++ DATADIRNAME=share
++ AC_SUBST(DATADIRNAME)
++
++ dnl For backward compatibility. Some Makefiles may be using this.
++ INSTOBJEXT=.mo
++ AC_SUBST(INSTOBJEXT)
++
++ dnl For backward compatibility. Some Makefiles may be using this.
++ GENCAT=gencat
++ AC_SUBST(GENCAT)
++
++ dnl For backward compatibility. Some Makefiles may be using this.
++ if test "$USE_INCLUDED_LIBINTL" = yes; then
++ INTLOBJS="\$(GETTOBJS)"
++ fi
++ AC_SUBST(INTLOBJS)
++
++ dnl Enable libtool support if the surrounding package wishes it.
++ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
++ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
++ ])
++
++ dnl For backward compatibility. Some Makefiles may be using this.
++ INTLLIBS="$LIBINTL"
++ AC_SUBST(INTLLIBS)
++
++ dnl Make all documented variables known to autoconf.
++ AC_SUBST(LIBINTL)
++ AC_SUBST(LTLIBINTL)
++ AC_SUBST(POSUB)
++])
++
++
++dnl Checks for all prerequisites of the intl subdirectory,
++dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
++dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
++AC_DEFUN([AM_INTL_SUBDIR],
++[
++ AC_REQUIRE([AC_PROG_INSTALL])dnl
++ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
++ AC_REQUIRE([AC_PROG_CC])dnl
++ AC_REQUIRE([AC_CANONICAL_HOST])dnl
++ AC_REQUIRE([AC_PROG_RANLIB])dnl
++ AC_REQUIRE([AC_ISC_POSIX])dnl
++ AC_REQUIRE([AC_HEADER_STDC])dnl
++ AC_REQUIRE([AC_C_CONST])dnl
++ AC_REQUIRE([bh_C_SIGNED])dnl
++ AC_REQUIRE([AC_C_INLINE])dnl
++ AC_REQUIRE([AC_TYPE_OFF_T])dnl
++ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
++ AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
++ AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
++ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
++ AC_REQUIRE([gt_TYPE_WINT_T])dnl
++ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
++ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
++ AC_REQUIRE([gt_TYPE_INTMAX_T])
++ AC_REQUIRE([gt_PRINTF_POSIX])
++ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
++ AC_REQUIRE([AC_FUNC_MMAP])dnl
++ AC_REQUIRE([jm_GLIBC21])dnl
++ AC_REQUIRE([gt_INTDIV0])dnl
++ AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
++ AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
++ AC_REQUIRE([gt_INTTYPES_PRI])dnl
++ AC_REQUIRE([gl_XSIZE])dnl
++
++ AC_CHECK_TYPE([ptrdiff_t], ,
++ [AC_DEFINE([ptrdiff_t], [long],
++ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
++ ])
++ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
++stdlib.h string.h unistd.h sys/param.h])
++ AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
++mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
++strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
++__fsetlocking])
++
++ dnl Use the _snprintf function only if it is declared (because on NetBSD it
++ dnl is defined as a weak alias of snprintf; we prefer to use the latter).
++ gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
++ gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
++
++ dnl Use the *_unlocked functions only if they are declared.
++ dnl (because some of them were defined without being declared in Solaris
++ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
++ dnl on Solaris 2.5.1 to run on Solaris 2.6).
++ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
++ gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
++ gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
++ gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
++
++ case $gt_cv_func_printf_posix in
++ *yes) HAVE_POSIX_PRINTF=1 ;;
++ *) HAVE_POSIX_PRINTF=0 ;;
++ esac
++ AC_SUBST([HAVE_POSIX_PRINTF])
++ if test "$ac_cv_func_asprintf" = yes; then
++ HAVE_ASPRINTF=1
++ else
++ HAVE_ASPRINTF=0
++ fi
++ AC_SUBST([HAVE_ASPRINTF])
++ if test "$ac_cv_func_snprintf" = yes; then
++ HAVE_SNPRINTF=1
++ else
++ HAVE_SNPRINTF=0
++ fi
++ AC_SUBST([HAVE_SNPRINTF])
++ if test "$ac_cv_func_wprintf" = yes; then
++ HAVE_WPRINTF=1
++ else
++ HAVE_WPRINTF=0
++ fi
++ AC_SUBST([HAVE_WPRINTF])
++
++ AM_ICONV
++ AM_LANGINFO_CODESET
++ if test $ac_cv_header_locale_h = yes; then
++ AM_LC_MESSAGES
++ fi
++
++ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
++ dnl because plural.y uses bison specific features. It requires at least
++ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
++ dnl compile.
++ dnl bison is only needed for the maintainer (who touches plural.y). But in
++ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
++ dnl the rule in general Makefile. Now, some people carelessly touch the
++ dnl files or have a broken "make" program, hence the plural.c rule will
++ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
++ dnl present or too old.
++ AC_CHECK_PROGS([INTLBISON], [bison])
++ if test -z "$INTLBISON"; then
++ ac_verc_fail=yes
++ else
++ dnl Found it, now check the version.
++ AC_MSG_CHECKING([version of bison])
++changequote(<<,>>)dnl
++ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
++ case $ac_prog_version in
++ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
++ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
++changequote([,])dnl
++ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
++ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
++ esac
++ AC_MSG_RESULT([$ac_prog_version])
++ fi
++ if test $ac_verc_fail = yes; then
++ INTLBISON=:
++ fi
++])
++
++
++dnl gt_CHECK_DECL(FUNC, INCLUDES)
++dnl Check whether a function is declared.
++AC_DEFUN([gt_CHECK_DECL],
++[
++ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
++ [AC_TRY_COMPILE([$2], [
++#ifndef $1
++ char *p = (char *) $1;
++#endif
++], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
++ if test $ac_cv_have_decl_$1 = yes; then
++ gt_value=1
++ else
++ gt_value=0
++ fi
++ AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
++ [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
++])
++
++
++dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
++AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
++
++# iconv.m4 serial AM4 (gettext-0.11.3)
++dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
++[
++ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++
++ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
++ dnl accordingly.
++ AC_LIB_LINKFLAGS_BODY([iconv])
++])
++
++AC_DEFUN([AM_ICONV_LINK],
++[
++ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
++ dnl those with the standalone portable GNU libiconv installed).
++
++ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
++ dnl accordingly.
++ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
++
++ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
++ dnl because if the user has installed libiconv and not disabled its use
++ dnl via --without-libiconv-prefix, he wants to use it. The first
++ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
++ am_save_CPPFLAGS="$CPPFLAGS"
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
++
++ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
++ am_cv_func_iconv="no, consider installing GNU libiconv"
++ am_cv_lib_iconv=no
++ AC_TRY_LINK([#include <stdlib.h>
++#include <iconv.h>],
++ [iconv_t cd = iconv_open("","");
++ iconv(cd,NULL,NULL,NULL,NULL);
++ iconv_close(cd);],
++ am_cv_func_iconv=yes)
++ if test "$am_cv_func_iconv" != yes; then
++ am_save_LIBS="$LIBS"
++ LIBS="$LIBS $LIBICONV"
++ AC_TRY_LINK([#include <stdlib.h>
++#include <iconv.h>],
++ [iconv_t cd = iconv_open("","");
++ iconv(cd,NULL,NULL,NULL,NULL);
++ iconv_close(cd);],
++ am_cv_lib_iconv=yes
++ am_cv_func_iconv=yes)
++ LIBS="$am_save_LIBS"
++ fi
++ ])
++ if test "$am_cv_func_iconv" = yes; then
++ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
++ fi
++ if test "$am_cv_lib_iconv" = yes; then
++ AC_MSG_CHECKING([how to link with libiconv])
++ AC_MSG_RESULT([$LIBICONV])
++ else
++ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
++ dnl either.
++ CPPFLAGS="$am_save_CPPFLAGS"
++ LIBICONV=
++ LTLIBICONV=
++ fi
++ AC_SUBST(LIBICONV)
++ AC_SUBST(LTLIBICONV)
++])
++
++AC_DEFUN([AM_ICONV],
++[
++ AM_ICONV_LINK
++ if test "$am_cv_func_iconv" = yes; then
++ AC_MSG_CHECKING([for iconv declaration])
++ AC_CACHE_VAL(am_cv_proto_iconv, [
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <iconv.h>
++extern
++#ifdef __cplusplus
++"C"
++#endif
++#if defined(__STDC__) || defined(__cplusplus)
++size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
++#else
++size_t iconv();
++#endif
++], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
++ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
++ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
++ AC_MSG_RESULT([$]{ac_t:-
++ }[$]am_cv_proto_iconv)
++ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
++ [Define as const if the declaration of iconv() needs const.])
++ fi
++])
++
++# lib-ld.m4 serial 3 (gettext-0.13)
++dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl Subroutines of libtool.m4,
++dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
++dnl with libtool.m4.
++
++dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
++AC_DEFUN([AC_LIB_PROG_LD_GNU],
++[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
++[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
++case `$LD -v 2>&1 </dev/null` in
++*GNU* | *'with BFD'*)
++ acl_cv_prog_gnu_ld=yes ;;
++*)
++ acl_cv_prog_gnu_ld=no ;;
++esac])
++with_gnu_ld=$acl_cv_prog_gnu_ld
++])
++
++dnl From libtool-1.4. Sets the variable LD.
++AC_DEFUN([AC_LIB_PROG_LD],
++[AC_ARG_WITH(gnu-ld,
++[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
++test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
++AC_REQUIRE([AC_PROG_CC])dnl
++AC_REQUIRE([AC_CANONICAL_HOST])dnl
++# Prepare PATH_SEPARATOR.
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++ echo "#! /bin/sh" >conf$$.sh
++ echo "exit 0" >>conf$$.sh
++ chmod +x conf$$.sh
++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
++ PATH_SEPARATOR=';'
++ else
++ PATH_SEPARATOR=:
++ fi
++ rm -f conf$$.sh
++fi
++ac_prog=ld
++if test "$GCC" = yes; then
++ # Check if gcc -print-prog-name=ld gives a path.
++ AC_MSG_CHECKING([for ld used by GCC])
++ case $host in
++ *-*-mingw*)
++ # gcc leaves a trailing carriage return which upsets mingw
++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
++ *)
++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
++ esac
++ case $ac_prog in
++ # Accept absolute paths.
++ [[\\/]* | [A-Za-z]:[\\/]*)]
++ [re_direlt='/[^/][^/]*/\.\./']
++ # Canonicalize the path of ld
++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
++ done
++ test -z "$LD" && LD="$ac_prog"
++ ;;
++ "")
++ # If it fails, then pretend we aren't using GCC.
++ ac_prog=ld
++ ;;
++ *)
++ # If it is relative, then search for the first ld in PATH.
++ with_gnu_ld=unknown
++ ;;
++ esac
++elif test "$with_gnu_ld" = yes; then
++ AC_MSG_CHECKING([for GNU ld])
++else
++ AC_MSG_CHECKING([for non-GNU ld])
++fi
++AC_CACHE_VAL(acl_cv_path_LD,
++[if test -z "$LD"; then
++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
++ for ac_dir in $PATH; do
++ test -z "$ac_dir" && ac_dir=.
++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
++ acl_cv_path_LD="$ac_dir/$ac_prog"
++ # Check to see if the program is GNU ld. I'd rather use --version,
++ # but apparently some GNU ld's only accept -v.
++ # Break only if it was the GNU/non-GNU ld that we prefer.
++ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
++ *GNU* | *'with BFD'*)
++ test "$with_gnu_ld" != no && break ;;
++ *)
++ test "$with_gnu_ld" != yes && break ;;
++ esac
++ fi
++ done
++ IFS="$ac_save_ifs"
++else
++ acl_cv_path_LD="$LD" # Let the user override the test with a path.
++fi])
++LD="$acl_cv_path_LD"
++if test -n "$LD"; then
++ AC_MSG_RESULT($LD)
++else
++ AC_MSG_RESULT(no)
++fi
++test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
++AC_LIB_PROG_LD_GNU
++])
++
++# lib-link.m4 serial 4 (gettext-0.12)
++dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
++dnl the libraries corresponding to explicit and implicit dependencies.
++dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
++dnl augments the CPPFLAGS variable.
++AC_DEFUN([AC_LIB_LINKFLAGS],
++[
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++ define([Name],[translit([$1],[./-], [___])])
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
++ AC_LIB_LINKFLAGS_BODY([$1], [$2])
++ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
++ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
++ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
++ ])
++ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
++ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
++ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
++ AC_SUBST([LIB]NAME)
++ AC_SUBST([LTLIB]NAME)
++ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
++ dnl results of this search when this library appears as a dependency.
++ HAVE_LIB[]NAME=yes
++ undefine([Name])
++ undefine([NAME])
++])
++
++dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
++dnl searches for libname and the libraries corresponding to explicit and
++dnl implicit dependencies, together with the specified include files and
++dnl the ability to compile and link the specified testcode. If found, it
++dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
++dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
++dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
++dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
++AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
++[
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++ define([Name],[translit([$1],[./-], [___])])
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++
++ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
++ dnl accordingly.
++ AC_LIB_LINKFLAGS_BODY([$1], [$2])
++
++ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
++ dnl because if the user has installed lib[]Name and not disabled its use
++ dnl via --without-lib[]Name-prefix, he wants to use it.
++ ac_save_CPPFLAGS="$CPPFLAGS"
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
++
++ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
++ ac_save_LIBS="$LIBS"
++ LIBS="$LIBS $LIB[]NAME"
++ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
++ LIBS="$ac_save_LIBS"
++ ])
++ if test "$ac_cv_lib[]Name" = yes; then
++ HAVE_LIB[]NAME=yes
++ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
++ AC_MSG_CHECKING([how to link with lib[]$1])
++ AC_MSG_RESULT([$LIB[]NAME])
++ else
++ HAVE_LIB[]NAME=no
++ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
++ dnl $INC[]NAME either.
++ CPPFLAGS="$ac_save_CPPFLAGS"
++ LIB[]NAME=
++ LTLIB[]NAME=
++ fi
++ AC_SUBST([HAVE_LIB]NAME)
++ AC_SUBST([LIB]NAME)
++ AC_SUBST([LTLIB]NAME)
++ undefine([Name])
++ undefine([NAME])
++])
++
++dnl Determine the platform dependent parameters needed to use rpath:
++dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
++dnl hardcode_direct, hardcode_minus_L.
++AC_DEFUN([AC_LIB_RPATH],
++[
++ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
++ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
++ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
++ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
++ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
++ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
++ . ./conftest.sh
++ rm -f ./conftest.sh
++ acl_cv_rpath=done
++ ])
++ wl="$acl_cv_wl"
++ libext="$acl_cv_libext"
++ shlibext="$acl_cv_shlibext"
++ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
++ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
++ hardcode_direct="$acl_cv_hardcode_direct"
++ hardcode_minus_L="$acl_cv_hardcode_minus_L"
++ dnl Determine whether the user wants rpath handling at all.
++ AC_ARG_ENABLE(rpath,
++ [ --disable-rpath do not hardcode runtime library paths],
++ :, enable_rpath=yes)
++])
++
++dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
++dnl the libraries corresponding to explicit and implicit dependencies.
++dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
++AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
++[
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++ dnl By default, look in $includedir and $libdir.
++ use_additional=yes
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ AC_LIB_ARG_WITH([lib$1-prefix],
++[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
++ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
++[
++ if test "X$withval" = "Xno"; then
++ use_additional=no
++ else
++ if test "X$withval" = "X"; then
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ else
++ additional_includedir="$withval/include"
++ additional_libdir="$withval/lib"
++ fi
++ fi
++])
++ dnl Search the library and its dependencies in $additional_libdir and
++ dnl $LDFLAGS. Using breadth-first-seach.
++ LIB[]NAME=
++ LTLIB[]NAME=
++ INC[]NAME=
++ rpathdirs=
++ ltrpathdirs=
++ names_already_handled=
++ names_next_round='$1 $2'
++ while test -n "$names_next_round"; do
++ names_this_round="$names_next_round"
++ names_next_round=
++ for name in $names_this_round; do
++ already_handled=
++ for n in $names_already_handled; do
++ if test "$n" = "$name"; then
++ already_handled=yes
++ break
++ fi
++ done
++ if test -z "$already_handled"; then
++ names_already_handled="$names_already_handled $name"
++ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
++ dnl or AC_LIB_HAVE_LINKFLAGS call.
++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
++ eval value=\"\$HAVE_LIB$uppername\"
++ if test -n "$value"; then
++ if test "$value" = yes; then
++ eval value=\"\$LIB$uppername\"
++ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
++ eval value=\"\$LTLIB$uppername\"
++ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
++ else
++ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
++ dnl that this library doesn't exist. So just drop it.
++ :
++ fi
++ else
++ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
++ dnl and the already constructed $LIBNAME/$LTLIBNAME.
++ found_dir=
++ found_la=
++ found_so=
++ found_a=
++ if test $use_additional = yes; then
++ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
++ found_dir="$additional_libdir"
++ found_so="$additional_libdir/lib$name.$shlibext"
++ if test -f "$additional_libdir/lib$name.la"; then
++ found_la="$additional_libdir/lib$name.la"
++ fi
++ else
++ if test -f "$additional_libdir/lib$name.$libext"; then
++ found_dir="$additional_libdir"
++ found_a="$additional_libdir/lib$name.$libext"
++ if test -f "$additional_libdir/lib$name.la"; then
++ found_la="$additional_libdir/lib$name.la"
++ fi
++ fi
++ fi
++ fi
++ if test "X$found_dir" = "X"; then
++ for x in $LDFLAGS $LTLIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ case "$x" in
++ -L*)
++ dir=`echo "X$x" | sed -e 's/^X-L//'`
++ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
++ found_dir="$dir"
++ found_so="$dir/lib$name.$shlibext"
++ if test -f "$dir/lib$name.la"; then
++ found_la="$dir/lib$name.la"
++ fi
++ else
++ if test -f "$dir/lib$name.$libext"; then
++ found_dir="$dir"
++ found_a="$dir/lib$name.$libext"
++ if test -f "$dir/lib$name.la"; then
++ found_la="$dir/lib$name.la"
++ fi
++ fi
++ fi
++ ;;
++ esac
++ if test "X$found_dir" != "X"; then
++ break
++ fi
++ done
++ fi
++ if test "X$found_dir" != "X"; then
++ dnl Found the library.
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
++ if test "X$found_so" != "X"; then
++ dnl Linking with a shared library. We attempt to hardcode its
++ dnl directory into the executable's runpath, unless it's the
++ dnl standard /usr/lib.
++ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
++ dnl No hardcoding is needed.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ dnl Use an explicit option to hardcode DIR into the resulting
++ dnl binary.
++ dnl Potentially add DIR to ltrpathdirs.
++ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
++ haveit=
++ for x in $ltrpathdirs; do
++ if test "X$x" = "X$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ ltrpathdirs="$ltrpathdirs $found_dir"
++ fi
++ dnl The hardcoding into $LIBNAME is system dependent.
++ if test "$hardcode_direct" = yes; then
++ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
++ dnl resulting binary.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
++ dnl Use an explicit option to hardcode DIR into the resulting
++ dnl binary.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ dnl Potentially add DIR to rpathdirs.
++ dnl The rpathdirs will be appended to $LIBNAME at the end.
++ haveit=
++ for x in $rpathdirs; do
++ if test "X$x" = "X$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ rpathdirs="$rpathdirs $found_dir"
++ fi
++ else
++ dnl Rely on "-L$found_dir".
++ dnl But don't add it if it's already contained in the LDFLAGS
++ dnl or the already constructed $LIBNAME
++ haveit=
++ for x in $LDFLAGS $LIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
++ fi
++ if test "$hardcode_minus_L" != no; then
++ dnl FIXME: Not sure whether we should use
++ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
++ dnl here.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
++ dnl here, because this doesn't fit in flags passed to the
++ dnl compiler. So give up. No hardcoding. This affects only
++ dnl very old systems.
++ dnl FIXME: Not sure whether we should use
++ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
++ dnl here.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
++ fi
++ fi
++ fi
++ fi
++ else
++ if test "X$found_a" != "X"; then
++ dnl Linking with a static library.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
++ else
++ dnl We shouldn't come here, but anyway it's good to have a
++ dnl fallback.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
++ fi
++ fi
++ dnl Assume the include files are nearby.
++ additional_includedir=
++ case "$found_dir" in
++ */lib | */lib/)
++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
++ additional_includedir="$basedir/include"
++ ;;
++ esac
++ if test "X$additional_includedir" != "X"; then
++ dnl Potentially add $additional_includedir to $INCNAME.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/include,
++ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
++ dnl 3. if it's already present in $CPPFLAGS or the already
++ dnl constructed $INCNAME,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_includedir" != "X/usr/include"; then
++ haveit=
++ if test "X$additional_includedir" = "X/usr/local/include"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux*) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ for x in $CPPFLAGS $INC[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-I$additional_includedir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_includedir"; then
++ dnl Really add $additional_includedir to $INCNAME.
++ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
++ fi
++ fi
++ fi
++ fi
++ fi
++ dnl Look for dependencies.
++ if test -n "$found_la"; then
++ dnl Read the .la file. It defines the variables
++ dnl dlname, library_names, old_library, dependency_libs, current,
++ dnl age, revision, installed, dlopen, dlpreopen, libdir.
++ save_libdir="$libdir"
++ case "$found_la" in
++ */* | *\\*) . "$found_la" ;;
++ *) . "./$found_la" ;;
++ esac
++ libdir="$save_libdir"
++ dnl We use only dependency_libs.
++ for dep in $dependency_libs; do
++ case "$dep" in
++ -L*)
++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
++ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/lib,
++ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
++ dnl 3. if it's already present in $LDFLAGS or the already
++ dnl constructed $LIBNAME,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_libdir" != "X/usr/lib"; then
++ haveit=
++ if test "X$additional_libdir" = "X/usr/local/lib"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux*) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ haveit=
++ for x in $LDFLAGS $LIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LIBNAME.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
++ fi
++ fi
++ haveit=
++ for x in $LDFLAGS $LTLIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LTLIBNAME.
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
++ fi
++ fi
++ fi
++ fi
++ ;;
++ -R*)
++ dir=`echo "X$dep" | sed -e 's/^X-R//'`
++ if test "$enable_rpath" != no; then
++ dnl Potentially add DIR to rpathdirs.
++ dnl The rpathdirs will be appended to $LIBNAME at the end.
++ haveit=
++ for x in $rpathdirs; do
++ if test "X$x" = "X$dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ rpathdirs="$rpathdirs $dir"
++ fi
++ dnl Potentially add DIR to ltrpathdirs.
++ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
++ haveit=
++ for x in $ltrpathdirs; do
++ if test "X$x" = "X$dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ ltrpathdirs="$ltrpathdirs $dir"
++ fi
++ fi
++ ;;
++ -l*)
++ dnl Handle this in the next round.
++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
++ ;;
++ *.la)
++ dnl Handle this in the next round. Throw away the .la's
++ dnl directory; it is already contained in a preceding -L
++ dnl option.
++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
++ ;;
++ *)
++ dnl Most likely an immediate library name.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
++ ;;
++ esac
++ done
++ fi
++ else
++ dnl Didn't find the library; assume it is in the system directories
++ dnl known to the linker and runtime loader. (All the system
++ dnl directories known to the linker should also be known to the
++ dnl runtime loader, otherwise the system is severely misconfigured.)
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
++ fi
++ fi
++ fi
++ done
++ done
++ if test "X$rpathdirs" != "X"; then
++ if test -n "$hardcode_libdir_separator"; then
++ dnl Weird platform: only the last -rpath option counts, the user must
++ dnl pass all path elements in one option. We can arrange that for a
++ dnl single library, but not when more than one $LIBNAMEs are used.
++ alldirs=
++ for found_dir in $rpathdirs; do
++ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
++ done
++ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
++ acl_save_libdir="$libdir"
++ libdir="$alldirs"
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
++ else
++ dnl The -rpath options are cumulative.
++ for found_dir in $rpathdirs; do
++ acl_save_libdir="$libdir"
++ libdir="$found_dir"
++ eval flag=\"$hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
++ done
++ fi
++ fi
++ if test "X$ltrpathdirs" != "X"; then
++ dnl When using libtool, the option that works for both libraries and
++ dnl executables is -R. The -R options are cumulative.
++ for found_dir in $ltrpathdirs; do
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
++ done
++ fi
++])
++
++dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
++dnl unless already present in VAR.
++dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
++dnl contains two or three consecutive elements that belong together.
++AC_DEFUN([AC_LIB_APPENDTOVAR],
++[
++ for element in [$2]; do
++ haveit=
++ for x in $[$1]; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X$element"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ [$1]="${[$1]}${[$1]:+ }$element"
++ fi
++ done
++])
++
++# lib-prefix.m4 serial 3 (gettext-0.13)
++dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
++dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
++dnl require excessive bracketing.
++ifdef([AC_HELP_STRING],
++[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
++[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
++
++dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
++dnl to access previously installed libraries. The basic assumption is that
++dnl a user will want packages to use other packages he previously installed
++dnl with the same --prefix option.
++dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
++dnl libraries, but is otherwise very convenient.
++AC_DEFUN([AC_LIB_PREFIX],
++[
++ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
++ AC_REQUIRE([AC_PROG_CC])
++ AC_REQUIRE([AC_CANONICAL_HOST])
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ dnl By default, look in $includedir and $libdir.
++ use_additional=yes
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ AC_LIB_ARG_WITH([lib-prefix],
++[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
++ --without-lib-prefix don't search for libraries in includedir and libdir],
++[
++ if test "X$withval" = "Xno"; then
++ use_additional=no
++ else
++ if test "X$withval" = "X"; then
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ else
++ additional_includedir="$withval/include"
++ additional_libdir="$withval/lib"
++ fi
++ fi
++])
++ if test $use_additional = yes; then
++ dnl Potentially add $additional_includedir to $CPPFLAGS.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/include,
++ dnl 2. if it's already present in $CPPFLAGS,
++ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_includedir" != "X/usr/include"; then
++ haveit=
++ for x in $CPPFLAGS; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-I$additional_includedir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test "X$additional_includedir" = "X/usr/local/include"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux*) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ if test -d "$additional_includedir"; then
++ dnl Really add $additional_includedir to $CPPFLAGS.
++ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
++ fi
++ fi
++ fi
++ fi
++ dnl Potentially add $additional_libdir to $LDFLAGS.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/lib,
++ dnl 2. if it's already present in $LDFLAGS,
++ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_libdir" != "X/usr/lib"; then
++ haveit=
++ for x in $LDFLAGS; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test "X$additional_libdir" = "X/usr/local/lib"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux*) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LDFLAGS.
++ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
++ fi
++ fi
++ fi
++ fi
++ fi
++])
++
++dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
++dnl acl_final_exec_prefix, containing the values to which $prefix and
++dnl $exec_prefix will expand at the end of the configure script.
++AC_DEFUN([AC_LIB_PREPARE_PREFIX],
++[
++ dnl Unfortunately, prefix and exec_prefix get only finally determined
++ dnl at the end of configure.
++ if test "X$prefix" = "XNONE"; then
++ acl_final_prefix="$ac_default_prefix"
++ else
++ acl_final_prefix="$prefix"
++ fi
++ if test "X$exec_prefix" = "XNONE"; then
++ acl_final_exec_prefix='${prefix}'
++ else
++ acl_final_exec_prefix="$exec_prefix"
++ fi
++ acl_save_prefix="$prefix"
++ prefix="$acl_final_prefix"
++ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
++ prefix="$acl_save_prefix"
++])
++
++dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
++dnl variables prefix and exec_prefix bound to the values they will have
++dnl at the end of the configure script.
++AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
++[
++ acl_save_prefix="$prefix"
++ prefix="$acl_final_prefix"
++ acl_save_exec_prefix="$exec_prefix"
++ exec_prefix="$acl_final_exec_prefix"
++ $1
++ exec_prefix="$acl_save_exec_prefix"
++ prefix="$acl_save_prefix"
++])
++
++# nls.m4 serial 1 (gettext-0.12)
++dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++dnl
++dnl This file can can be used in projects which are not available under
++dnl the GNU General Public License or the GNU Library General Public
++dnl License but which still want to provide support for the GNU gettext
++dnl functionality.
++dnl Please note that the actual code of the GNU gettext library is covered
++dnl by the GNU Library General Public License, and the rest of the GNU
++dnl gettext package package is covered by the GNU General Public License.
++dnl They are *not* in the public domain.
++
++dnl Authors:
++dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
++dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
++
++AC_DEFUN([AM_NLS],
++[
++ AC_MSG_CHECKING([whether NLS is requested])
++ dnl Default is enabled NLS
++ AC_ARG_ENABLE(nls,
++ [ --disable-nls do not use Native Language Support],
++ USE_NLS=$enableval, USE_NLS=yes)
++ AC_MSG_RESULT($USE_NLS)
++ AC_SUBST(USE_NLS)
++])
++
++AC_DEFUN([AM_MKINSTALLDIRS],
++[
++ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
++ dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
++ dnl Try to locate it.
++ MKINSTALLDIRS=
++ if test -n "$ac_aux_dir"; then
++ case "$ac_aux_dir" in
++ /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
++ *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
++ esac
++ fi
++ if test -z "$MKINSTALLDIRS"; then
++ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
++ fi
++ AC_SUBST(MKINSTALLDIRS)
++])
++
++# po.m4 serial 3 (gettext-0.14)
++dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++dnl
++dnl This file can can be used in projects which are not available under
++dnl the GNU General Public License or the GNU Library General Public
++dnl License but which still want to provide support for the GNU gettext
++dnl functionality.
++dnl Please note that the actual code of the GNU gettext library is covered
++dnl by the GNU Library General Public License, and the rest of the GNU
++dnl gettext package package is covered by the GNU General Public License.
++dnl They are *not* in the public domain.
++
++dnl Authors:
++dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
++dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
++
++dnl Checks for all prerequisites of the po subdirectory.
++AC_DEFUN([AM_PO_SUBDIRS],
++[
++ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
++ AC_REQUIRE([AC_PROG_INSTALL])dnl
++ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
++ AC_REQUIRE([AM_NLS])dnl
++
++ dnl Perform the following tests also if --disable-nls has been given,
++ dnl because they are needed for "make dist" to work.
++
++ dnl Search for GNU msgfmt in the PATH.
++ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
++ dnl The second test excludes FreeBSD msgfmt.
++ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
++ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
++ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
++ :)
++ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
++
++ dnl Search for GNU xgettext 0.12 or newer in the PATH.
++ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
++ dnl The second test excludes FreeBSD xgettext.
++ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
++ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
++ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
++ :)
++ dnl Remove leftover from FreeBSD xgettext call.
++ rm -f messages.po
++
++ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
++ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
++ [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
++
++ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
++ dnl Test whether we really found GNU msgfmt.
++ if test "$GMSGFMT" != ":"; then
++ dnl If it is no GNU msgfmt we define it as : so that the
++ dnl Makefiles still can work.
++ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
++ (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
++ : ;
++ else
++ GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
++ AC_MSG_RESULT(
++ [found $GMSGFMT program is not GNU msgfmt; ignore it])
++ GMSGFMT=":"
++ fi
++ fi
++
++ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
++ dnl Test whether we really found GNU xgettext.
++ if test "$XGETTEXT" != ":"; then
++ dnl If it is no GNU xgettext we define it as : so that the
++ dnl Makefiles still can work.
++ if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
++ (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
++ : ;
++ else
++ AC_MSG_RESULT(
++ [found xgettext program is not GNU xgettext; ignore it])
++ XGETTEXT=":"
++ fi
++ dnl Remove leftover from FreeBSD xgettext call.
++ rm -f messages.po
++ fi
++
++ AC_OUTPUT_COMMANDS([
++ for ac_file in $CONFIG_FILES; do
++ # Support "outfile[:infile[:infile...]]"
++ case "$ac_file" in
++ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
++ esac
++ # PO directories have a Makefile.in generated from Makefile.in.in.
++ case "$ac_file" in */Makefile.in)
++ # Adjust a relative srcdir.
++ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
++ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
++ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
++ # In autoconf-2.13 it is called $ac_given_srcdir.
++ # In autoconf-2.50 it is called $srcdir.
++ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
++ case "$ac_given_srcdir" in
++ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
++ /*) top_srcdir="$ac_given_srcdir" ;;
++ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
++ esac
++ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
++ rm -f "$ac_dir/POTFILES"
++ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
++ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
++ POMAKEFILEDEPS="POTFILES.in"
++ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
++ # on $ac_dir but don't depend on user-specified configuration
++ # parameters.
++ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
++ # The LINGUAS file contains the set of available languages.
++ if test -n "$OBSOLETE_ALL_LINGUAS"; then
++ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
++ fi
++ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
++ # Hide the ALL_LINGUAS assigment from automake.
++ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
++ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
++ else
++ # The set of available languages was given in configure.in.
++ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
++ fi
++ # Compute POFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
++ # Compute UPDATEPOFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
++ # Compute DUMMYPOFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
++ # Compute GMOFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
++ case "$ac_given_srcdir" in
++ .) srcdirpre= ;;
++ *) srcdirpre='$(srcdir)/' ;;
++ esac
++ POFILES=
++ UPDATEPOFILES=
++ DUMMYPOFILES=
++ GMOFILES=
++ for lang in $ALL_LINGUAS; do
++ POFILES="$POFILES $srcdirpre$lang.po"
++ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
++ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
++ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
++ done
++ # CATALOGS depends on both $ac_dir and the user's LINGUAS
++ # environment variable.
++ INST_LINGUAS=
++ if test -n "$ALL_LINGUAS"; then
++ for presentlang in $ALL_LINGUAS; do
++ useit=no
++ if test "%UNSET%" != "$LINGUAS"; then
++ desiredlanguages="$LINGUAS"
++ else
++ desiredlanguages="$ALL_LINGUAS"
++ fi
++ for desiredlang in $desiredlanguages; do
++ # Use the presentlang catalog if desiredlang is
++ # a. equal to presentlang, or
++ # b. a variant of presentlang (because in this case,
++ # presentlang can be used as a fallback for messages
++ # which are not translated in the desiredlang catalog).
++ case "$desiredlang" in
++ "$presentlang"*) useit=yes;;
++ esac
++ done
++ if test $useit = yes; then
++ INST_LINGUAS="$INST_LINGUAS $presentlang"
++ fi
++ done
++ fi
++ CATALOGS=
++ if test -n "$INST_LINGUAS"; then
++ for lang in $INST_LINGUAS; do
++ CATALOGS="$CATALOGS $lang.gmo"
++ done
++ fi
++ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
++ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
++ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
++ if test -f "$f"; then
++ case "$f" in
++ *.orig | *.bak | *~) ;;
++ *) cat "$f" >> "$ac_dir/Makefile" ;;
++ esac
++ fi
++ done
++ fi
++ ;;
++ esac
++ done],
++ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
++ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
++ # from automake.
++ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
++ # Capture the value of LINGUAS because we need it to compute CATALOGS.
++ LINGUAS="${LINGUAS-%UNSET%}"
++ ])
++])
++
++dnl Postprocesses a Makefile in a directory containing PO files.
++AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
++[
++ # When this code is run, in config.status, two variables have already been
++ # set:
++ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
++ # - LINGUAS is the value of the environment variable LINGUAS at configure
++ # time.
++
++changequote(,)dnl
++ # Adjust a relative srcdir.
++ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
++ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
++ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
++ # In autoconf-2.13 it is called $ac_given_srcdir.
++ # In autoconf-2.50 it is called $srcdir.
++ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
++ case "$ac_given_srcdir" in
++ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
++ /*) top_srcdir="$ac_given_srcdir" ;;
++ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
++ esac
++
++ # Find a way to echo strings without interpreting backslash.
++ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
++ gt_echo='echo'
++ else
++ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
++ gt_echo='printf %s\n'
++ else
++ echo_func () {
++ cat <<EOT
++$*
++EOT
++ }
++ gt_echo='echo_func'
++ fi
++ fi
++
++ # A sed script that extracts the value of VARIABLE from a Makefile.
++ sed_x_variable='
++# Test if the hold space is empty.
++x
++s/P/P/
++x
++ta
++# Yes it was empty. Look if we have the expected variable definition.
++/^[ ]*VARIABLE[ ]*=/{
++ # Seen the first line of the variable definition.
++ s/^[ ]*VARIABLE[ ]*=//
++ ba
++}
++bd
++:a
++# Here we are processing a line from the variable definition.
++# Remove comment, more precisely replace it with a space.
++s/#.*$/ /
++# See if the line ends in a backslash.
++tb
++:b
++s/\\$//
++# Print the line, without the trailing backslash.
++p
++tc
++# There was no trailing backslash. The end of the variable definition is
++# reached. Clear the hold space.
++s/^.*$//
++x
++bd
++:c
++# A trailing backslash means that the variable definition continues in the
++# next line. Put a nonempty string into the hold space to indicate this.
++s/^.*$/P/
++x
++:d
++'
++changequote([,])dnl
++
++ # Set POTFILES to the value of the Makefile variable POTFILES.
++ sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
++ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
++ # Compute POTFILES_DEPS as
++ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
++ POTFILES_DEPS=
++ for file in $POTFILES; do
++ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
++ done
++ POMAKEFILEDEPS=""
++
++ if test -n "$OBSOLETE_ALL_LINGUAS"; then
++ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
++ fi
++ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
++ # The LINGUAS file contains the set of available languages.
++ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
++ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
++ else
++ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
++ sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
++ ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
++ fi
++ # Hide the ALL_LINGUAS assigment from automake.
++ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
++ # Compute POFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
++ # Compute UPDATEPOFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
++ # Compute DUMMYPOFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
++ # Compute GMOFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
++ # Compute PROPERTIESFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
++ # Compute CLASSFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
++ # Compute QMFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
++ # Compute MSGFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
++ # Compute RESOURCESDLLFILES
++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
++ case "$ac_given_srcdir" in
++ .) srcdirpre= ;;
++ *) srcdirpre='$(srcdir)/' ;;
++ esac
++ POFILES=
++ UPDATEPOFILES=
++ DUMMYPOFILES=
++ GMOFILES=
++ PROPERTIESFILES=
++ CLASSFILES=
++ QMFILES=
++ MSGFILES=
++ RESOURCESDLLFILES=
++ for lang in $ALL_LINGUAS; do
++ POFILES="$POFILES $srcdirpre$lang.po"
++ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
++ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
++ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
++ PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
++ CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
++ QMFILES="$QMFILES $srcdirpre$lang.qm"
++ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
++ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
++ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
++ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
++ done
++ # CATALOGS depends on both $ac_dir and the user's LINGUAS
++ # environment variable.
++ INST_LINGUAS=
++ if test -n "$ALL_LINGUAS"; then
++ for presentlang in $ALL_LINGUAS; do
++ useit=no
++ if test "%UNSET%" != "$LINGUAS"; then
++ desiredlanguages="$LINGUAS"
++ else
++ desiredlanguages="$ALL_LINGUAS"
++ fi
++ for desiredlang in $desiredlanguages; do
++ # Use the presentlang catalog if desiredlang is
++ # a. equal to presentlang, or
++ # b. a variant of presentlang (because in this case,
++ # presentlang can be used as a fallback for messages
++ # which are not translated in the desiredlang catalog).
++ case "$desiredlang" in
++ "$presentlang"*) useit=yes;;
++ esac
++ done
++ if test $useit = yes; then
++ INST_LINGUAS="$INST_LINGUAS $presentlang"
++ fi
++ done
++ fi
++ CATALOGS=
++ JAVACATALOGS=
++ QTCATALOGS=
++ TCLCATALOGS=
++ CSHARPCATALOGS=
++ if test -n "$INST_LINGUAS"; then
++ for lang in $INST_LINGUAS; do
++ CATALOGS="$CATALOGS $lang.gmo"
++ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
++ QTCATALOGS="$QTCATALOGS $lang.qm"
++ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
++ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
++ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
++ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
++ done
++ fi
++
++ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
++ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
++ # Add dependencies that cannot be formulated as a simple suffix rule.
++ for lang in $ALL_LINGUAS; do
++ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
++ cat >> "$ac_file.tmp" <<EOF
++$frobbedlang.msg: $lang.po
++ @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
++ \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
++EOF
++ done
++ fi
++ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
++ # Add dependencies that cannot be formulated as a simple suffix rule.
++ for lang in $ALL_LINGUAS; do
++ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
++ cat >> "$ac_file.tmp" <<EOF
++$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
++ @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
++ \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
++EOF
++ done
++ fi
++ if test -n "$POMAKEFILEDEPS"; then
++ cat >> "$ac_file.tmp" <<EOF
++Makefile: $POMAKEFILEDEPS
++EOF
++ fi
++ mv "$ac_file.tmp" "$ac_file"
++])
++
++# progtest.m4 serial 3 (gettext-0.12)
++dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++dnl
++dnl This file can can be used in projects which are not available under
++dnl the GNU General Public License or the GNU Library General Public
++dnl License but which still want to provide support for the GNU gettext
++dnl functionality.
++dnl Please note that the actual code of the GNU gettext library is covered
++dnl by the GNU Library General Public License, and the rest of the GNU
++dnl gettext package package is covered by the GNU General Public License.
++dnl They are *not* in the public domain.
++
++dnl Authors:
++dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
++
++# Search path for a program which passes the given test.
++
++dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
++dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
++AC_DEFUN([AM_PATH_PROG_WITH_TEST],
++[
++# Prepare PATH_SEPARATOR.
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++ echo "#! /bin/sh" >conf$$.sh
++ echo "exit 0" >>conf$$.sh
++ chmod +x conf$$.sh
++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
++ PATH_SEPARATOR=';'
++ else
++ PATH_SEPARATOR=:
++ fi
++ rm -f conf$$.sh
++fi
++
++# Find out how to test for executable files. Don't use a zero-byte file,
++# as systems may use methods other than mode bits to determine executability.
++cat >conf$$.file <<_ASEOF
++#! /bin/sh
++exit 0
++_ASEOF
++chmod +x conf$$.file
++if test -x conf$$.file >/dev/null 2>&1; then
++ ac_executable_p="test -x"
++else
++ ac_executable_p="test -f"
++fi
++rm -f conf$$.file
++
++# Extract the first word of "$2", so it can be a program name with args.
++set dummy $2; ac_word=[$]2
++AC_MSG_CHECKING([for $ac_word])
++AC_CACHE_VAL(ac_cv_path_$1,
++[case "[$]$1" in
++ [[\\/]]* | ?:[[\\/]]*)
++ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
++ ;;
++ *)
++ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
++ for ac_dir in ifelse([$5], , $PATH, [$5]); do
++ IFS="$ac_save_IFS"
++ test -z "$ac_dir" && ac_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
++ if [$3]; then
++ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
++ break 2
++ fi
++ fi
++ done
++ done
++ IFS="$ac_save_IFS"
++dnl If no 4th arg is given, leave the cache variable unset,
++dnl so AC_PATH_PROGS will keep looking.
++ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
++])dnl
++ ;;
++esac])dnl
++$1="$ac_cv_path_$1"
++if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
++ AC_MSG_RESULT([$]$1)
++else
++ AC_MSG_RESULT(no)
++fi
++AC_SUBST($1)dnl
++])
++
+Index: util-linux-ng-2.14/config.h.in
+===================================================================
+--- util-linux-ng-2.14.orig/config.h.in 2008-06-09 03:58:01.000000000 -0700
++++ util-linux-ng-2.14/config.h.in 2008-07-26 01:28:42.000000000 -0700
+@@ -203,6 +203,9 @@
+ /* Define to 1 if you have the `updwtmp' function. */
+ #undef HAVE_UPDWTMP
+
++/* Define to 1 if you have the `versionsort' function. */
++#undef HAVE_VERSIONSORT
++
+ /* Do we have wide character support? */
+ #undef HAVE_WIDECHAR
+
+Index: util-linux-ng-2.14/configure.ac
+===================================================================
+--- util-linux-ng-2.14.orig/configure.ac 2008-06-09 03:55:32.000000000 -0700
++++ util-linux-ng-2.14/configure.ac 2008-07-26 01:28:27.000000000 -0700
+@@ -72,9 +72,14 @@
+ updwtmp \
+ lchown \
+ inotify_init \
++ versionsort \
+ rpmatch])
+ AC_FUNC_FSEEKO
+
++have_versionsort=no
++AC_CHECK_FUNC([versionsort], [have_versionsort=yes])
++AM_CONDITIONAL([HAVE_VERSIONSORT], test "x$have_versionsort" = xyes)
++
+ dnl Static compilation
+ m4_define([UTIL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk])
+
+Index: util-linux-ng-2.14/disk-utils/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/disk-utils/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/disk-utils/Makefile.in 2008-07-26 01:28:45.000000000 -0700
+@@ -52,11 +52,7 @@
+ @HAVE_SELINUX_TRUE@am__append_9 = -lselinux
+ subdir = disk-utils
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/fdisk/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/fdisk/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/fdisk/Makefile.in 2008-07-26 01:28:45.000000000 -0700
+@@ -49,11 +49,7 @@
+ @ARCH_M68K_FALSE@@ARCH_SPARC_FALSE@@HAVE_NCURSES_TRUE@@USE_SLANG_FALSE@am__append_8 = cfdisk.8
+ subdir = fdisk
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/getopt/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/getopt/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/getopt/Makefile.in 2008-07-26 01:28:45.000000000 -0700
+@@ -41,11 +41,7 @@
+ usrbinexec_PROGRAMS = getopt$(EXEEXT)
+ subdir = getopt
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/hwclock/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/hwclock/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/hwclock/Makefile.in 2008-07-26 01:28:45.000000000 -0700
+@@ -40,11 +40,7 @@
+ @HAVE_AUDIT_TRUE@am__append_1 = -laudit
+ subdir = hwclock
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/include/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/include/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/include/Makefile.in 2008-07-26 01:28:46.000000000 -0700
+@@ -38,11 +38,7 @@
+ $(top_srcdir)/config/include-Makefile.am
+ subdir = include
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/include/strverscmp.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/include/strverscmp.h 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,7 @@
++#ifndef STRVERSCMP_H
++#define STRVERSCMP_H
++
++extern int strverscmp (const char *s1, const char *s2);
++extern int versionsort (const void *a, const void *b);
++
++#endif
+Index: util-linux-ng-2.14/lib/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/lib/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/lib/Makefile.in 2008-07-26 01:28:46.000000000 -0700
+@@ -38,11 +38,7 @@
+ noinst_PROGRAMS = test_blkdev$(EXEEXT)
+ subdir = lib
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/lib/strverscmp.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/lib/strverscmp.c 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,120 @@
++/* Compare strings while treating digits characters numerically.
++ Copyright (C) 1997, 2002 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C 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
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <string.h>
++#include <ctype.h>
++#include <dirent.h>
++
++/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
++ fractionnal parts, S_Z: idem but with leading Zeroes only */
++#define S_N 0x0
++#define S_I 0x4
++#define S_F 0x8
++#define S_Z 0xC
++
++/* result_type: CMP: return diff; LEN: compare using len_diff/diff */
++#define CMP 2
++#define LEN 3
++
++
++/* Compare S1 and S2 as strings holding indices/version numbers,
++ returning less than, equal to or greater than zero if S1 is less than,
++ equal to or greater than S2 (for more info, see the texinfo doc).
++*/
++
++int
++strverscmp (s1, s2)
++ const char *s1;
++ const char *s2;
++{
++ const unsigned char *p1 = (const unsigned char *) s1;
++ const unsigned char *p2 = (const unsigned char *) s2;
++ unsigned char c1, c2;
++ int state;
++ int diff;
++
++ /* Symbol(s) 0 [1-9] others (padding)
++ Transition (10) 0 (01) d (00) x (11) - */
++ static const unsigned int next_state[] =
++ {
++ /* state x d 0 - */
++ /* S_N */ S_N, S_I, S_Z, S_N,
++ /* S_I */ S_N, S_I, S_I, S_I,
++ /* S_F */ S_N, S_F, S_F, S_F,
++ /* S_Z */ S_N, S_F, S_Z, S_Z
++ };
++
++ static const int result_type[] =
++ {
++ /* state x/x x/d x/0 x/- d/x d/d d/0 d/-
++ 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */
++
++ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
++ /* S_I */ CMP, -1, -1, CMP, +1, LEN, LEN, CMP,
++ +1, LEN, LEN, CMP, CMP, CMP, CMP, CMP,
++ /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
++ /* S_Z */ CMP, +1, +1, CMP, -1, CMP, CMP, CMP,
++ -1, CMP, CMP, CMP
++ };
++
++ if (p1 == p2)
++ return 0;
++
++ c1 = *p1++;
++ c2 = *p2++;
++ /* Hint: '0' is a digit too. */
++ state = S_N | ((c1 == '0') + (isdigit (c1) != 0));
++
++ while ((diff = c1 - c2) == 0 && c1 != '\0')
++ {
++ state = next_state[state];
++ c1 = *p1++;
++ c2 = *p2++;
++ state |= (c1 == '0') + (isdigit (c1) != 0);
++ }
++
++ state = result_type[state << 2 | (((c2 == '0') + (isdigit (c2) != 0)))];
++
++ switch (state)
++ {
++ case CMP:
++ return diff;
++
++ case LEN:
++ while (isdigit (*p1++))
++ if (!isdigit (*p2++))
++ return 1;
++
++ return isdigit (*p2) ? -1 : diff;
++
++ default:
++ return state;
++ }
++}
++
++
++int
++versionsort (const void *a, const void *b)
++{
++ return strverscmp ((*(const struct dirent **) a)->d_name,
++ (*(const struct dirent **) b)->d_name);
++}
+Index: util-linux-ng-2.14/login-utils/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/login-utils/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/login-utils/Makefile.in 2008-07-26 01:28:46.000000000 -0700
+@@ -74,11 +74,7 @@
+ noinst_PROGRAMS = checktty_test$(EXEEXT) islocal_test$(EXEEXT)
+ subdir = login-utils
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/m4/codeset.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/codeset.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,23 @@
++# codeset.m4 serial AM1 (gettext-0.10.40)
++dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++AC_DEFUN([AM_LANGINFO_CODESET],
++[
++ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
++ [AC_TRY_LINK([#include <langinfo.h>],
++ [char* cs = nl_langinfo(CODESET);],
++ am_cv_langinfo_codeset=yes,
++ am_cv_langinfo_codeset=no)
++ ])
++ if test $am_cv_langinfo_codeset = yes; then
++ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
++ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
++ fi
++])
+Index: util-linux-ng-2.14/m4/glibc21.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/glibc21.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,32 @@
++# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
++dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++# Test for the GNU C Library, version 2.1 or newer.
++# From Bruno Haible.
++
++AC_DEFUN([jm_GLIBC21],
++ [
++ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
++ ac_cv_gnu_library_2_1,
++ [AC_EGREP_CPP([Lucky GNU user],
++ [
++#include <features.h>
++#ifdef __GNU_LIBRARY__
++ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
++ Lucky GNU user
++ #endif
++#endif
++ ],
++ ac_cv_gnu_library_2_1=yes,
++ ac_cv_gnu_library_2_1=no)
++ ]
++ )
++ AC_SUBST(GLIBC21)
++ GLIBC21="$ac_cv_gnu_library_2_1"
++ ]
++)
+Index: util-linux-ng-2.14/m4/intdiv0.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/intdiv0.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,72 @@
++# intdiv0.m4 serial 1 (gettext-0.11.3)
++dnl Copyright (C) 2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++AC_DEFUN([gt_INTDIV0],
++[
++ AC_REQUIRE([AC_PROG_CC])dnl
++ AC_REQUIRE([AC_CANONICAL_HOST])dnl
++
++ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
++ gt_cv_int_divbyzero_sigfpe,
++ [
++ AC_TRY_RUN([
++#include <stdlib.h>
++#include <signal.h>
++
++static void
++#ifdef __cplusplus
++sigfpe_handler (int sig)
++#else
++sigfpe_handler (sig) int sig;
++#endif
++{
++ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
++ exit (sig != SIGFPE);
++}
++
++int x = 1;
++int y = 0;
++int z;
++int nan;
++
++int main ()
++{
++ signal (SIGFPE, sigfpe_handler);
++/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
++#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
++ signal (SIGTRAP, sigfpe_handler);
++#endif
++/* Linux/SPARC yields signal SIGILL. */
++#if defined (__sparc__) && defined (__linux__)
++ signal (SIGILL, sigfpe_handler);
++#endif
++
++ z = x / y;
++ nan = y / y;
++ exit (1);
++}
++], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
++ [
++ # Guess based on the CPU.
++ case "$host_cpu" in
++ alpha* | i[34567]86 | m68k | s390*)
++ gt_cv_int_divbyzero_sigfpe="guessing yes";;
++ *)
++ gt_cv_int_divbyzero_sigfpe="guessing no";;
++ esac
++ ])
++ ])
++ case "$gt_cv_int_divbyzero_sigfpe" in
++ *yes) value=1;;
++ *) value=0;;
++ esac
++ AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
++ [Define if integer division by zero raises signal SIGFPE.])
++])
+Index: util-linux-ng-2.14/m4/intmax.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/intmax.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,32 @@
++# intmax.m4 serial 1 (gettext-0.12)
++dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++dnl Test whether the system has the 'intmax_t' type, but don't attempt to
++dnl find a replacement if it is lacking.
++
++AC_DEFUN([gt_TYPE_INTMAX_T],
++[
++ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
++ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
++ AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
++ [AC_TRY_COMPILE([
++#include <stddef.h>
++#include <stdlib.h>
++#if HAVE_STDINT_H_WITH_UINTMAX
++#include <stdint.h>
++#endif
++#if HAVE_INTTYPES_H_WITH_UINTMAX
++#include <inttypes.h>
++#endif
++], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
++ if test $gt_cv_c_intmax_t = yes; then
++ AC_DEFINE(HAVE_INTMAX_T, 1,
++ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/inttypes_h.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/inttypes_h.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,28 @@
++# inttypes_h.m4 serial 5 (gettext-0.12)
++dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Paul Eggert.
++
++# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
++# doesn't clash with <sys/types.h>, and declares uintmax_t.
++
++AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
++[
++ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
++ [AC_TRY_COMPILE(
++ [#include <sys/types.h>
++#include <inttypes.h>],
++ [uintmax_t i = (uintmax_t) -1;],
++ jm_ac_cv_header_inttypes_h=yes,
++ jm_ac_cv_header_inttypes_h=no)])
++ if test $jm_ac_cv_header_inttypes_h = yes; then
++ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
++ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
++ and declares uintmax_t. ])
++ fi
++])
+Index: util-linux-ng-2.14/m4/inttypes.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/inttypes.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,27 @@
++# inttypes.m4 serial 1 (gettext-0.11.4)
++dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Paul Eggert.
++
++# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
++# <sys/types.h>.
++
++AC_DEFUN([gt_HEADER_INTTYPES_H],
++[
++ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
++ [
++ AC_TRY_COMPILE(
++ [#include <sys/types.h>
++#include <inttypes.h>],
++ [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
++ ])
++ if test $gt_cv_header_inttypes_h = yes; then
++ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
++ [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/inttypes-pri.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/inttypes-pri.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,32 @@
++# inttypes-pri.m4 serial 1 (gettext-0.11.4)
++dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
++# macros to non-string values. This is the case on AIX 4.3.3.
++
++AC_DEFUN([gt_INTTYPES_PRI],
++[
++ AC_REQUIRE([gt_HEADER_INTTYPES_H])
++ if test $gt_cv_header_inttypes_h = yes; then
++ AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
++ gt_cv_inttypes_pri_broken,
++ [
++ AC_TRY_COMPILE([#include <inttypes.h>
++#ifdef PRId32
++char *p = PRId32;
++#endif
++], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
++ ])
++ fi
++ if test "$gt_cv_inttypes_pri_broken" = yes; then
++ AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
++ [Define if <inttypes.h> exists and defines unusable PRI* macros.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/isc-posix.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/isc-posix.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,26 @@
++# isc-posix.m4 serial 2 (gettext-0.11.2)
++dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
++
++# This test replaces the one in autoconf.
++# Currently this macro should have the same name as the autoconf macro
++# because gettext's gettext.m4 (distributed in the automake package)
++# still uses it. Otherwise, the use in gettext.m4 makes autoheader
++# give these diagnostics:
++# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
++# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
++
++undefine([AC_ISC_POSIX])
++
++AC_DEFUN([AC_ISC_POSIX],
++ [
++ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
++ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
++ ]
++)
+Index: util-linux-ng-2.14/m4/lcmessage.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/lcmessage.m4 2008-07-26 01:28:27.000000000 -0700
+@@ -0,0 +1,32 @@
++# lcmessage.m4 serial 3 (gettext-0.11.3)
++dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++dnl
++dnl This file can can be used in projects which are not available under
++dnl the GNU General Public License or the GNU Library General Public
++dnl License but which still want to provide support for the GNU gettext
++dnl functionality.
++dnl Please note that the actual code of the GNU gettext library is covered
++dnl by the GNU Library General Public License, and the rest of the GNU
++dnl gettext package package is covered by the GNU General Public License.
++dnl They are *not* in the public domain.
++
++dnl Authors:
++dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
++
++# Check whether LC_MESSAGES is available in <locale.h>.
++
++AC_DEFUN([AM_LC_MESSAGES],
++[
++ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
++ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
++ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
++ if test $am_cv_val_LC_MESSAGES = yes; then
++ AC_DEFINE(HAVE_LC_MESSAGES, 1,
++ [Define if your <locale.h> file defines LC_MESSAGES.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/longdouble.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/longdouble.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,30 @@
++# longdouble.m4 serial 1 (gettext-0.12)
++dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++dnl Test whether the compiler supports the 'long double' type.
++dnl Prerequisite: AC_PROG_CC
++
++AC_DEFUN([gt_TYPE_LONGDOUBLE],
++[
++ AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
++ [if test "$GCC" = yes; then
++ gt_cv_c_long_double=yes
++ else
++ AC_TRY_COMPILE([
++ /* The Stardent Vistra knows sizeof(long double), but does not support it. */
++ long double foo = 0.0;
++ /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
++ int array [2*(sizeof(long double) >= sizeof(double)) - 1];
++ ], ,
++ gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
++ fi])
++ if test $gt_cv_c_long_double = yes; then
++ AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/longlong.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/longlong.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,25 @@
++# longlong.m4 serial 4
++dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Paul Eggert.
++
++# Define HAVE_LONG_LONG if 'long long' works.
++
++AC_DEFUN([jm_AC_TYPE_LONG_LONG],
++[
++ AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
++ [AC_TRY_LINK([long long ll = 1LL; int i = 63;],
++ [long long llmax = (long long) -1;
++ return ll << i | ll >> i | llmax / ll | llmax % ll;],
++ ac_cv_type_long_long=yes,
++ ac_cv_type_long_long=no)])
++ if test $ac_cv_type_long_long = yes; then
++ AC_DEFINE(HAVE_LONG_LONG, 1,
++ [Define if you have the 'long long' type.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/printf-posix.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/printf-posix.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,46 @@
++# printf-posix.m4 serial 2 (gettext-0.13.1)
++dnl Copyright (C) 2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++dnl Test whether the printf() function supports POSIX/XSI format strings with
++dnl positions.
++
++AC_DEFUN([gt_PRINTF_POSIX],
++[
++ AC_REQUIRE([AC_PROG_CC])
++ AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
++ gt_cv_func_printf_posix,
++ [
++ AC_TRY_RUN([
++#include <stdio.h>
++#include <string.h>
++/* The string "%2$d %1$d", with dollar characters protected from the shell's
++ dollar expansion (possibly an autoconf bug). */
++static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
++static char buf[100];
++int main ()
++{
++ sprintf (buf, format, 33, 55);
++ return (strcmp (buf, "55 33") != 0);
++}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
++ [
++ AC_EGREP_CPP(notposix, [
++#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
++ notposix
++#endif
++ ], gt_cv_func_printf_posix="guessing no",
++ gt_cv_func_printf_posix="guessing yes")
++ ])
++ ])
++ case $gt_cv_func_printf_posix in
++ *yes)
++ AC_DEFINE(HAVE_POSIX_PRINTF, 1,
++ [Define if your printf() function supports format strings with positions.])
++ ;;
++ esac
++])
+Index: util-linux-ng-2.14/m4/signed.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/signed.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,19 @@
++# signed.m4 serial 1 (gettext-0.10.40)
++dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++AC_DEFUN([bh_C_SIGNED],
++[
++ AC_CACHE_CHECK([for signed], bh_cv_c_signed,
++ [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)])
++ if test $bh_cv_c_signed = no; then
++ AC_DEFINE(signed, ,
++ [Define to empty if the C compiler doesn't support this keyword.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/size_max.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/size_max.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,61 @@
++# size_max.m4 serial 2
++dnl Copyright (C) 2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++
++AC_DEFUN([gl_SIZE_MAX],
++[
++ AC_CHECK_HEADERS(stdint.h)
++ dnl First test whether the system already has SIZE_MAX.
++ AC_MSG_CHECKING([for SIZE_MAX])
++ result=
++ AC_EGREP_CPP([Found it], [
++#include <limits.h>
++#if HAVE_STDINT_H
++#include <stdint.h>
++#endif
++#ifdef SIZE_MAX
++Found it
++#endif
++], result=yes)
++ if test -z "$result"; then
++ dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
++ dnl than the type 'unsigned long'.
++ dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
++ dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
++ _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi,
++ [#include <stddef.h>], result=?)
++ _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo,
++ [#include <stddef.h>], result=?)
++ _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
++ [#include <stddef.h>], result=?)
++ if test "$fits_in_uint" = 1; then
++ dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
++ dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
++ AC_TRY_COMPILE([#include <stddef.h>
++ extern size_t foo;
++ extern unsigned long foo;
++ ], [], fits_in_uint=0)
++ fi
++ if test -z "$result"; then
++ if test "$fits_in_uint" = 1; then
++ result="$res_hi$res_lo"U
++ else
++ result="$res_hi$res_lo"UL
++ fi
++ else
++ dnl Shouldn't happen, but who knows...
++ result='~(size_t)0'
++ fi
++ fi
++ AC_MSG_RESULT([$result])
++ if test "$result" != yes; then
++ AC_DEFINE_UNQUOTED([SIZE_MAX], [$result],
++ [Define as the maximum value of type 'size_t', if the system doesn't define it.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/stdint_h.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/stdint_h.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,28 @@
++# stdint_h.m4 serial 3 (gettext-0.12)
++dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Paul Eggert.
++
++# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
++# doesn't clash with <sys/types.h>, and declares uintmax_t.
++
++AC_DEFUN([jm_AC_HEADER_STDINT_H],
++[
++ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
++ [AC_TRY_COMPILE(
++ [#include <sys/types.h>
++#include <stdint.h>],
++ [uintmax_t i = (uintmax_t) -1;],
++ jm_ac_cv_header_stdint_h=yes,
++ jm_ac_cv_header_stdint_h=no)])
++ if test $jm_ac_cv_header_stdint_h = yes; then
++ AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
++ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
++ and declares uintmax_t. ])
++ fi
++])
+Index: util-linux-ng-2.14/m4/uintmax_t.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/uintmax_t.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,32 @@
++# uintmax_t.m4 serial 7 (gettext-0.12)
++dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Paul Eggert.
++
++AC_PREREQ(2.13)
++
++# Define uintmax_t to 'unsigned long' or 'unsigned long long'
++# if it is not already defined in <stdint.h> or <inttypes.h>.
++
++AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
++[
++ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
++ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
++ if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
++ AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
++ test $ac_cv_type_unsigned_long_long = yes \
++ && ac_type='unsigned long long' \
++ || ac_type='unsigned long'
++ AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
++ [Define to unsigned long or unsigned long long
++ if <stdint.h> and <inttypes.h> don't define.])
++ else
++ AC_DEFINE(HAVE_UINTMAX_T, 1,
++ [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/ulonglong.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/ulonglong.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,25 @@
++# ulonglong.m4 serial 3
++dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Paul Eggert.
++
++# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
++
++AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
++[
++ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
++ [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
++ [unsigned long long ullmax = (unsigned long long) -1;
++ return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
++ ac_cv_type_unsigned_long_long=yes,
++ ac_cv_type_unsigned_long_long=no)])
++ if test $ac_cv_type_unsigned_long_long = yes; then
++ AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
++ [Define if you have the 'unsigned long long' type.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/wchar_t.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/wchar_t.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,22 @@
++# wchar_t.m4 serial 1 (gettext-0.12)
++dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++dnl Test whether <stddef.h> has the 'wchar_t' type.
++dnl Prerequisite: AC_PROG_CC
++
++AC_DEFUN([gt_TYPE_WCHAR_T],
++[
++ AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
++ [AC_TRY_COMPILE([#include <stddef.h>
++ wchar_t foo = (wchar_t)'\0';], ,
++ gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
++ if test $gt_cv_c_wchar_t = yes; then
++ AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/wint_t.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/wint_t.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,22 @@
++# wint_t.m4 serial 1 (gettext-0.12)
++dnl Copyright (C) 2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++dnl From Bruno Haible.
++dnl Test whether <wchar.h> has the 'wint_t' type.
++dnl Prerequisite: AC_PROG_CC
++
++AC_DEFUN([gt_TYPE_WINT_T],
++[
++ AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
++ [AC_TRY_COMPILE([#include <wchar.h>
++ wint_t foo = (wchar_t)'\0';], ,
++ gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
++ if test $gt_cv_c_wint_t = yes; then
++ AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
++ fi
++])
+Index: util-linux-ng-2.14/m4/xsize.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/m4/xsize.m4 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,14 @@
++# xsize.m4 serial 2
++dnl Copyright (C) 2003 Free Software Foundation, Inc.
++dnl This file is free software, distributed under the terms of the GNU
++dnl General Public License. As a special exception to the GNU General
++dnl Public License, this file may be distributed as part of a program
++dnl that contains a configuration script generated by Autoconf, under
++dnl the same distribution terms as the rest of that program.
++
++AC_DEFUN([gl_XSIZE],
++[
++ dnl Prerequisites of lib/xsize.h.
++ AC_REQUIRE([gl_SIZE_MAX])
++ AC_CHECK_HEADERS(stdint.h)
++])
+Index: util-linux-ng-2.14/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/Makefile.in 2008-07-26 01:28:48.000000000 -0700
+@@ -46,11 +46,7 @@
+
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+Index: util-linux-ng-2.14/misc-utils/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/misc-utils/Makefile.in 2008-06-09 05:02:12.000000000 -0700
++++ util-linux-ng-2.14/misc-utils/Makefile.in 2008-07-26 01:28:46.000000000 -0700
+@@ -55,11 +55,7 @@
+ @BUILD_WRITE_TRUE@am__append_9 = write.1
+ subdir = misc-utils
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/mount/lomount.c
+===================================================================
+--- util-linux-ng-2.14.orig/mount/lomount.c 2008-05-28 16:01:02.000000000 -0700
++++ util-linux-ng-2.14/mount/lomount.c 2008-07-26 01:28:28.000000000 -0700
+@@ -25,6 +25,10 @@
+ #include "xmalloc.h"
+ #include "realpath.h"
+
++#ifndef HAVE_VERSIONSORT
++# include "strverscmp.h"
++#endif
++
+ #define SIZE(a) (sizeof(a)/sizeof(a[0]))
+
+ #ifdef LOOP_SET_FD
+Index: util-linux-ng-2.14/mount/Makefile.am
+===================================================================
+--- util-linux-ng-2.14.orig/mount/Makefile.am 2008-05-28 16:01:02.000000000 -0700
++++ util-linux-ng-2.14/mount/Makefile.am 2008-07-26 01:28:28.000000000 -0700
+@@ -8,13 +8,18 @@
+
+ utils_common = sundries.c xmalloc.c realpath.c fsprobe.c
+
++if !HAVE_VERSIONSORT
++fallback = ../lib/strverscmp.c
++endif
++
+ headers_common = fstab.h mount_mntent.h mount_constants.h \
+ lomount.h fsprobe.h realpath.h xmalloc.h \
+ getusername.h loop.h sundries.h
+
+ mount_common = fstab.c mount_mntent.c getusername.c lomount.c \
+ $(utils_common) $(headers_common) ../lib/env.c ../lib/linux_version.c \
+- ../lib/blkdev.c
++ ../lib/blkdev.c $(fallback)
++
+
+ mount_SOURCES = mount.c $(mount_common) ../lib/setproctitle.c
+ mount_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
+@@ -27,9 +32,10 @@
+ swapon_SOURCES = swapon.c swap_constants.h $(utils_common)
+
+ losetup_SOURCES = lomount.c sundries.c xmalloc.c realpath.c \
+- loop.h lomount.h xmalloc.h sundries.h realpath.h
++ loop.h lomount.h xmalloc.h sundries.h realpath.h $(fallback)
+ losetup_CPPFLAGS = -DMAIN $(AM_CPPFLAGS)
+
++
+ mount_LDADD = $(LDADD_common)
+ umount_LDADD = $(LDADD_common)
+ swapon_LDADD = $(LDADD_common)
+Index: util-linux-ng-2.14/mount/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/mount/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/mount/Makefile.in 2008-07-26 01:28:47.000000000 -0700
+@@ -55,11 +55,7 @@
+ noinst_PROGRAMS = mtab_lock_test$(EXEEXT)
+ subdir = mount
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+@@ -74,19 +70,26 @@
+ @HAVE_PIVOT_ROOT_TRUE@am__EXEEXT_4 = pivot_root$(EXEEXT)
+ sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(sbin_PROGRAMS)
++am__losetup_SOURCES_DIST = lomount.c sundries.c xmalloc.c realpath.c \
++ loop.h lomount.h xmalloc.h sundries.h realpath.h \
++ ../lib/strverscmp.c
++@HAVE_VERSIONSORT_FALSE@am__objects_1 = losetup-strverscmp.$(OBJEXT)
+ am_losetup_OBJECTS = losetup-lomount.$(OBJEXT) \
+ losetup-sundries.$(OBJEXT) losetup-xmalloc.$(OBJEXT) \
+- losetup-realpath.$(OBJEXT)
++ losetup-realpath.$(OBJEXT) $(am__objects_1)
+ losetup_OBJECTS = $(am_losetup_OBJECTS)
+ losetup_LDADD = $(LDADD)
+ am__losetup_static_SOURCES_DIST = lomount.c sundries.c xmalloc.c \
+- realpath.c loop.h lomount.h xmalloc.h sundries.h realpath.h
+-am__objects_1 = losetup_static-lomount.$(OBJEXT) \
++ realpath.c loop.h lomount.h xmalloc.h sundries.h realpath.h \
++ ../lib/strverscmp.c
++@HAVE_VERSIONSORT_FALSE@am__objects_2 = \
++@HAVE_VERSIONSORT_FALSE@ losetup_static-strverscmp.$(OBJEXT)
++am__objects_3 = losetup_static-lomount.$(OBJEXT) \
+ losetup_static-sundries.$(OBJEXT) \
+ losetup_static-xmalloc.$(OBJEXT) \
+- losetup_static-realpath.$(OBJEXT)
++ losetup_static-realpath.$(OBJEXT) $(am__objects_2)
+ @HAVE_STATIC_LOSETUP_TRUE@am_losetup_static_OBJECTS = \
+-@HAVE_STATIC_LOSETUP_TRUE@ $(am__objects_1)
++@HAVE_STATIC_LOSETUP_TRUE@ $(am__objects_3)
+ losetup_static_OBJECTS = $(am_losetup_static_OBJECTS)
+ losetup_static_LDADD = $(LDADD)
+ losetup_static_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+@@ -96,18 +99,21 @@
+ fsprobe_blkid.c fsprobe_volumeid.c fstab.h mount_mntent.h \
+ mount_constants.h lomount.h fsprobe.h realpath.h xmalloc.h \
+ getusername.h loop.h sundries.h ../lib/env.c \
+- ../lib/linux_version.c ../lib/blkdev.c ../lib/setproctitle.c
+-@HAVE_BLKID_TRUE@am__objects_2 = mount-fsprobe_blkid.$(OBJEXT)
+-@HAVE_VOLUME_ID_TRUE@am__objects_3 = mount-fsprobe_volumeid.$(OBJEXT)
+-am__objects_4 = mount-sundries.$(OBJEXT) mount-xmalloc.$(OBJEXT) \
++ ../lib/linux_version.c ../lib/blkdev.c ../lib/strverscmp.c \
++ ../lib/setproctitle.c
++@HAVE_BLKID_TRUE@am__objects_4 = mount-fsprobe_blkid.$(OBJEXT)
++@HAVE_VOLUME_ID_TRUE@am__objects_5 = mount-fsprobe_volumeid.$(OBJEXT)
++am__objects_6 = mount-sundries.$(OBJEXT) mount-xmalloc.$(OBJEXT) \
+ mount-realpath.$(OBJEXT) mount-fsprobe.$(OBJEXT) \
+- $(am__objects_2) $(am__objects_3)
+-am__objects_5 =
+-am__objects_6 = mount-fstab.$(OBJEXT) mount-mount_mntent.$(OBJEXT) \
++ $(am__objects_4) $(am__objects_5)
++am__objects_7 =
++@HAVE_VERSIONSORT_FALSE@am__objects_8 = mount-strverscmp.$(OBJEXT)
++am__objects_9 = mount-fstab.$(OBJEXT) mount-mount_mntent.$(OBJEXT) \
+ mount-getusername.$(OBJEXT) mount-lomount.$(OBJEXT) \
+- $(am__objects_4) $(am__objects_5) mount-env.$(OBJEXT) \
+- mount-linux_version.$(OBJEXT) mount-blkdev.$(OBJEXT)
+-am_mount_OBJECTS = mount-mount.$(OBJEXT) $(am__objects_6) \
++ $(am__objects_6) $(am__objects_7) mount-env.$(OBJEXT) \
++ mount-linux_version.$(OBJEXT) mount-blkdev.$(OBJEXT) \
++ $(am__objects_8)
++am_mount_OBJECTS = mount-mount.$(OBJEXT) $(am__objects_9) \
+ mount-setproctitle.$(OBJEXT)
+ mount_OBJECTS = $(am_mount_OBJECTS)
+ am__DEPENDENCIES_1 =
+@@ -124,19 +130,20 @@
+ mount_mntent.h mount_constants.h lomount.h fsprobe.h \
+ realpath.h xmalloc.h getusername.h loop.h sundries.h \
+ ../lib/env.c ../lib/linux_version.c ../lib/blkdev.c \
+- ../lib/setproctitle.c
+-@HAVE_BLKID_TRUE@am__objects_7 = fsprobe_blkid.$(OBJEXT)
+-@HAVE_VOLUME_ID_TRUE@am__objects_8 = fsprobe_volumeid.$(OBJEXT)
+-am__objects_9 = sundries.$(OBJEXT) xmalloc.$(OBJEXT) \
+- realpath.$(OBJEXT) fsprobe.$(OBJEXT) $(am__objects_7) \
+- $(am__objects_8)
+-am__objects_10 = fstab.$(OBJEXT) mount_mntent.$(OBJEXT) \
+- getusername.$(OBJEXT) lomount.$(OBJEXT) $(am__objects_9) \
+- $(am__objects_5) env.$(OBJEXT) linux_version.$(OBJEXT) \
+- blkdev.$(OBJEXT)
+-am__objects_11 = mount.$(OBJEXT) $(am__objects_10) \
++ ../lib/strverscmp.c ../lib/setproctitle.c
++@HAVE_BLKID_TRUE@am__objects_10 = fsprobe_blkid.$(OBJEXT)
++@HAVE_VOLUME_ID_TRUE@am__objects_11 = fsprobe_volumeid.$(OBJEXT)
++am__objects_12 = sundries.$(OBJEXT) xmalloc.$(OBJEXT) \
++ realpath.$(OBJEXT) fsprobe.$(OBJEXT) $(am__objects_10) \
++ $(am__objects_11)
++@HAVE_VERSIONSORT_FALSE@am__objects_13 = strverscmp.$(OBJEXT)
++am__objects_14 = fstab.$(OBJEXT) mount_mntent.$(OBJEXT) \
++ getusername.$(OBJEXT) lomount.$(OBJEXT) $(am__objects_12) \
++ $(am__objects_7) env.$(OBJEXT) linux_version.$(OBJEXT) \
++ blkdev.$(OBJEXT) $(am__objects_13)
++am__objects_15 = mount.$(OBJEXT) $(am__objects_14) \
+ setproctitle.$(OBJEXT)
+-@HAVE_STATIC_MOUNT_TRUE@am_mount_static_OBJECTS = $(am__objects_11)
++@HAVE_STATIC_MOUNT_TRUE@am_mount_static_OBJECTS = $(am__objects_15)
+ mount_static_OBJECTS = $(am_mount_static_OBJECTS)
+ @HAVE_SELINUX_FALSE@@HAVE_STATIC_MOUNT_TRUE@mount_static_DEPENDENCIES = $(am__DEPENDENCIES_4)
+ @HAVE_SELINUX_TRUE@mount_static_DEPENDENCIES = $(am__DEPENDENCIES_1)
+@@ -144,7 +151,7 @@
+ $(mount_static_LDFLAGS) $(LDFLAGS) -o $@
+ am_mtab_lock_test_OBJECTS = mtab_lock_test-fstab.$(OBJEXT) \
+ mtab_lock_test-sundries.$(OBJEXT) \
+- mtab_lock_test-xmalloc.$(OBJEXT) $(am__objects_5)
++ mtab_lock_test-xmalloc.$(OBJEXT) $(am__objects_7)
+ mtab_lock_test_OBJECTS = $(am_mtab_lock_test_OBJECTS)
+ mtab_lock_test_LDADD = $(LDADD)
+ pivot_root_SOURCES = pivot_root.c
+@@ -153,10 +160,10 @@
+ am__swapon_SOURCES_DIST = swapon.c swap_constants.h sundries.c \
+ xmalloc.c realpath.c fsprobe.c fsprobe_blkid.c \
+ fsprobe_volumeid.c ../lib/linux_version.c ../lib/blkdev.c
+-@HAVE_VOLUME_ID_TRUE@am__objects_12 = linux_version.$(OBJEXT) \
++@HAVE_VOLUME_ID_TRUE@am__objects_16 = linux_version.$(OBJEXT) \
+ @HAVE_VOLUME_ID_TRUE@ blkdev.$(OBJEXT)
+-am_swapon_OBJECTS = swapon.$(OBJEXT) $(am__objects_9) \
+- $(am__objects_12)
++am_swapon_OBJECTS = swapon.$(OBJEXT) $(am__objects_12) \
++ $(am__objects_16)
+ swapon_OBJECTS = $(am_swapon_OBJECTS)
+ swapon_DEPENDENCIES = $(am__DEPENDENCIES_4)
+ am__umount_SOURCES_DIST = umount.c fstab.c mount_mntent.c \
+@@ -164,18 +171,21 @@
+ fsprobe.c fsprobe_blkid.c fsprobe_volumeid.c fstab.h \
+ mount_mntent.h mount_constants.h lomount.h fsprobe.h \
+ realpath.h xmalloc.h getusername.h loop.h sundries.h \
+- ../lib/env.c ../lib/linux_version.c ../lib/blkdev.c
+-@HAVE_BLKID_TRUE@am__objects_13 = umount-fsprobe_blkid.$(OBJEXT)
+-@HAVE_VOLUME_ID_TRUE@am__objects_14 = \
++ ../lib/env.c ../lib/linux_version.c ../lib/blkdev.c \
++ ../lib/strverscmp.c
++@HAVE_BLKID_TRUE@am__objects_17 = umount-fsprobe_blkid.$(OBJEXT)
++@HAVE_VOLUME_ID_TRUE@am__objects_18 = \
+ @HAVE_VOLUME_ID_TRUE@ umount-fsprobe_volumeid.$(OBJEXT)
+-am__objects_15 = umount-sundries.$(OBJEXT) umount-xmalloc.$(OBJEXT) \
++am__objects_19 = umount-sundries.$(OBJEXT) umount-xmalloc.$(OBJEXT) \
+ umount-realpath.$(OBJEXT) umount-fsprobe.$(OBJEXT) \
+- $(am__objects_13) $(am__objects_14)
+-am__objects_16 = umount-fstab.$(OBJEXT) umount-mount_mntent.$(OBJEXT) \
++ $(am__objects_17) $(am__objects_18)
++@HAVE_VERSIONSORT_FALSE@am__objects_20 = umount-strverscmp.$(OBJEXT)
++am__objects_21 = umount-fstab.$(OBJEXT) umount-mount_mntent.$(OBJEXT) \
+ umount-getusername.$(OBJEXT) umount-lomount.$(OBJEXT) \
+- $(am__objects_15) $(am__objects_5) umount-env.$(OBJEXT) \
+- umount-linux_version.$(OBJEXT) umount-blkdev.$(OBJEXT)
+-am_umount_OBJECTS = umount-umount.$(OBJEXT) $(am__objects_16)
++ $(am__objects_19) $(am__objects_7) umount-env.$(OBJEXT) \
++ umount-linux_version.$(OBJEXT) umount-blkdev.$(OBJEXT) \
++ $(am__objects_20)
++am_umount_OBJECTS = umount-umount.$(OBJEXT) $(am__objects_21)
+ umount_OBJECTS = $(am_umount_OBJECTS)
+ umount_DEPENDENCIES = $(am__DEPENDENCIES_4)
+ umount_LINK = $(CCLD) $(umount_CFLAGS) $(CFLAGS) $(umount_LDFLAGS) \
+@@ -185,9 +195,10 @@
+ fsprobe.c fsprobe_blkid.c fsprobe_volumeid.c fstab.h \
+ mount_mntent.h mount_constants.h lomount.h fsprobe.h \
+ realpath.h xmalloc.h getusername.h loop.h sundries.h \
+- ../lib/env.c ../lib/linux_version.c ../lib/blkdev.c
+-am__objects_17 = umount.$(OBJEXT) $(am__objects_10)
+-@HAVE_STATIC_UMOUNT_TRUE@am_umount_static_OBJECTS = $(am__objects_17)
++ ../lib/env.c ../lib/linux_version.c ../lib/blkdev.c \
++ ../lib/strverscmp.c
++am__objects_22 = umount.$(OBJEXT) $(am__objects_14)
++@HAVE_STATIC_UMOUNT_TRUE@am_umount_static_OBJECTS = $(am__objects_22)
+ umount_static_OBJECTS = $(am_umount_static_OBJECTS)
+ @HAVE_STATIC_UMOUNT_TRUE@umount_static_DEPENDENCIES = \
+ @HAVE_STATIC_UMOUNT_TRUE@ $(am__DEPENDENCIES_4)
+@@ -204,11 +215,11 @@
+ $(mount_SOURCES) $(mount_static_SOURCES) \
+ $(mtab_lock_test_SOURCES) pivot_root.c $(swapon_SOURCES) \
+ $(umount_SOURCES) $(umount_static_SOURCES)
+-DIST_SOURCES = $(losetup_SOURCES) $(am__losetup_static_SOURCES_DIST) \
+- $(am__mount_SOURCES_DIST) $(am__mount_static_SOURCES_DIST) \
+- $(mtab_lock_test_SOURCES) pivot_root.c \
+- $(am__swapon_SOURCES_DIST) $(am__umount_SOURCES_DIST) \
+- $(am__umount_static_SOURCES_DIST)
++DIST_SOURCES = $(am__losetup_SOURCES_DIST) \
++ $(am__losetup_static_SOURCES_DIST) $(am__mount_SOURCES_DIST) \
++ $(am__mount_static_SOURCES_DIST) $(mtab_lock_test_SOURCES) \
++ pivot_root.c $(am__swapon_SOURCES_DIST) \
++ $(am__umount_SOURCES_DIST) $(am__umount_static_SOURCES_DIST)
+ man5dir = $(mandir)/man5
+ man8dir = $(mandir)/man8
+ NROFF = nroff
+@@ -355,13 +366,14 @@
+ $(am__append_13)
+ utils_common = sundries.c xmalloc.c realpath.c fsprobe.c \
+ $(am__append_4) $(am__append_8)
++@HAVE_VERSIONSORT_FALSE@fallback = ../lib/strverscmp.c
+ headers_common = fstab.h mount_mntent.h mount_constants.h \
+ lomount.h fsprobe.h realpath.h xmalloc.h \
+ getusername.h loop.h sundries.h
+
+ mount_common = fstab.c mount_mntent.c getusername.c lomount.c \
+ $(utils_common) $(headers_common) ../lib/env.c ../lib/linux_version.c \
+- ../lib/blkdev.c
++ ../lib/blkdev.c $(fallback)
+
+ mount_SOURCES = mount.c $(mount_common) ../lib/setproctitle.c
+ mount_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
+@@ -372,7 +384,7 @@
+ swapon_SOURCES = swapon.c swap_constants.h $(utils_common) \
+ $(am__append_9)
+ losetup_SOURCES = lomount.c sundries.c xmalloc.c realpath.c \
+- loop.h lomount.h xmalloc.h sundries.h realpath.h
++ loop.h lomount.h xmalloc.h sundries.h realpath.h $(fallback)
+
+ losetup_CPPFLAGS = -DMAIN $(AM_CPPFLAGS)
+ mount_LDADD = $(LDADD_common) $(am__append_7)
+@@ -519,10 +531,12 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lomount.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-lomount.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-realpath.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-strverscmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-sundries.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup-xmalloc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-lomount.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-realpath.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-strverscmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-sundries.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/losetup_static-xmalloc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-blkdev.Po@am__quote@
+@@ -538,6 +552,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-mount_mntent.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-realpath.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-setproctitle.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-strverscmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-sundries.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount-xmalloc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@
+@@ -548,6 +563,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pivot_root.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realpath.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setproctitle.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strverscmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sundries.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swapon.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-blkdev.Po@am__quote@
+@@ -561,6 +577,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-lomount.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-mount_mntent.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-realpath.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-strverscmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-sundries.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-umount.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umount-xmalloc.Po@am__quote@
+@@ -637,6 +654,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o losetup-realpath.obj `if test -f 'realpath.c'; then $(CYGPATH_W) 'realpath.c'; else $(CYGPATH_W) '$(srcdir)/realpath.c'; fi`
+
++losetup-strverscmp.o: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT losetup-strverscmp.o -MD -MP -MF $(DEPDIR)/losetup-strverscmp.Tpo -c -o losetup-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/losetup-strverscmp.Tpo $(DEPDIR)/losetup-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='losetup-strverscmp.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o losetup-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++
++losetup-strverscmp.obj: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT losetup-strverscmp.obj -MD -MP -MF $(DEPDIR)/losetup-strverscmp.Tpo -c -o losetup-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/losetup-strverscmp.Tpo $(DEPDIR)/losetup-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='losetup-strverscmp.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o losetup-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++
+ losetup_static-lomount.o: lomount.c
+ @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_static_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT losetup_static-lomount.o -MD -MP -MF $(DEPDIR)/losetup_static-lomount.Tpo -c -o losetup_static-lomount.o `test -f 'lomount.c' || echo '$(srcdir)/'`lomount.c
+ @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/losetup_static-lomount.Tpo $(DEPDIR)/losetup_static-lomount.Po
+@@ -693,6 +724,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_static_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o losetup_static-realpath.obj `if test -f 'realpath.c'; then $(CYGPATH_W) 'realpath.c'; else $(CYGPATH_W) '$(srcdir)/realpath.c'; fi`
+
++losetup_static-strverscmp.o: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_static_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT losetup_static-strverscmp.o -MD -MP -MF $(DEPDIR)/losetup_static-strverscmp.Tpo -c -o losetup_static-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/losetup_static-strverscmp.Tpo $(DEPDIR)/losetup_static-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='losetup_static-strverscmp.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_static_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o losetup_static-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++
++losetup_static-strverscmp.obj: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_static_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT losetup_static-strverscmp.obj -MD -MP -MF $(DEPDIR)/losetup_static-strverscmp.Tpo -c -o losetup_static-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/losetup_static-strverscmp.Tpo $(DEPDIR)/losetup_static-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='losetup_static-strverscmp.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(losetup_static_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o losetup_static-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++
+ mount-mount.o: mount.c
+ @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-mount.o -MD -MP -MF $(DEPDIR)/mount-mount.Tpo -c -o mount-mount.o `test -f 'mount.c' || echo '$(srcdir)/'`mount.c
+ @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mount-mount.Tpo $(DEPDIR)/mount-mount.Po
+@@ -889,6 +934,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-blkdev.obj `if test -f '../lib/blkdev.c'; then $(CYGPATH_W) '../lib/blkdev.c'; else $(CYGPATH_W) '$(srcdir)/../lib/blkdev.c'; fi`
+
++mount-strverscmp.o: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-strverscmp.o -MD -MP -MF $(DEPDIR)/mount-strverscmp.Tpo -c -o mount-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mount-strverscmp.Tpo $(DEPDIR)/mount-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='mount-strverscmp.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++
++mount-strverscmp.obj: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-strverscmp.obj -MD -MP -MF $(DEPDIR)/mount-strverscmp.Tpo -c -o mount-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mount-strverscmp.Tpo $(DEPDIR)/mount-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='mount-strverscmp.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -c -o mount-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++
+ mount-setproctitle.o: ../lib/setproctitle.c
+ @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mount_CFLAGS) $(CFLAGS) -MT mount-setproctitle.o -MD -MP -MF $(DEPDIR)/mount-setproctitle.Tpo -c -o mount-setproctitle.o `test -f '../lib/setproctitle.c' || echo '$(srcdir)/'`../lib/setproctitle.c
+ @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/mount-setproctitle.Tpo $(DEPDIR)/mount-setproctitle.Po
+@@ -945,6 +1004,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o blkdev.obj `if test -f '../lib/blkdev.c'; then $(CYGPATH_W) '../lib/blkdev.c'; else $(CYGPATH_W) '$(srcdir)/../lib/blkdev.c'; fi`
+
++strverscmp.o: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strverscmp.o -MD -MP -MF $(DEPDIR)/strverscmp.Tpo -c -o strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/strverscmp.Tpo $(DEPDIR)/strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='strverscmp.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++
++strverscmp.obj: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strverscmp.obj -MD -MP -MF $(DEPDIR)/strverscmp.Tpo -c -o strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/strverscmp.Tpo $(DEPDIR)/strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='strverscmp.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++
+ setproctitle.o: ../lib/setproctitle.c
+ @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT setproctitle.o -MD -MP -MF $(DEPDIR)/setproctitle.Tpo -c -o setproctitle.o `test -f '../lib/setproctitle.c' || echo '$(srcdir)/'`../lib/setproctitle.c
+ @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/setproctitle.Tpo $(DEPDIR)/setproctitle.Po
+@@ -1196,6 +1269,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/blkdev.c' object='umount-blkdev.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-blkdev.obj `if test -f '../lib/blkdev.c'; then $(CYGPATH_W) '../lib/blkdev.c'; else $(CYGPATH_W) '$(srcdir)/../lib/blkdev.c'; fi`
++
++umount-strverscmp.o: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-strverscmp.o -MD -MP -MF $(DEPDIR)/umount-strverscmp.Tpo -c -o umount-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/umount-strverscmp.Tpo $(DEPDIR)/umount-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='umount-strverscmp.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-strverscmp.o `test -f '../lib/strverscmp.c' || echo '$(srcdir)/'`../lib/strverscmp.c
++
++umount-strverscmp.obj: ../lib/strverscmp.c
++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -MT umount-strverscmp.obj -MD -MP -MF $(DEPDIR)/umount-strverscmp.Tpo -c -o umount-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/umount-strverscmp.Tpo $(DEPDIR)/umount-strverscmp.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../lib/strverscmp.c' object='umount-strverscmp.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(umount_CFLAGS) $(CFLAGS) -c -o umount-strverscmp.obj `if test -f '../lib/strverscmp.c'; then $(CYGPATH_W) '../lib/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strverscmp.c'; fi`
+ install-man5: $(man5_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
+Index: util-linux-ng-2.14/partx/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/partx/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/partx/Makefile.in 2008-07-26 01:28:47.000000000 -0700
+@@ -40,11 +40,7 @@
+ @BUILD_PARTX_TRUE@ delpart$(EXEEXT) partx$(EXEEXT)
+ subdir = partx
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/po/Makevars.template
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ util-linux-ng-2.14/po/Makevars.template 2008-07-26 01:28:28.000000000 -0700
+@@ -0,0 +1,41 @@
++# Makefile variables for PO directory in any package using GNU gettext.
++
++# Usually the message domain is the same as the package name.
++DOMAIN = $(PACKAGE)
++
++# These two variables depend on the location of this directory.
++subdir = po
++top_builddir = ..
++
++# These options get passed to xgettext.
++XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
++
++# This is the copyright holder that gets inserted into the header of the
++# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
++# package. (Note that the msgstr strings, extracted from the package's
++# sources, belong to the copyright holder of the package.) Translators are
++# expected to transfer the copyright for their translations to this person
++# or entity, or to disclaim their copyright. The empty string stands for
++# the public domain; in this case the translators are expected to disclaim
++# their copyright.
++COPYRIGHT_HOLDER = Free Software Foundation, Inc.
++
++# This is the email address or URL to which the translators shall report
++# bugs in the untranslated strings:
++# - Strings which are not entire sentences, see the maintainer guidelines
++# in the GNU gettext documentation, section 'Preparing Strings'.
++# - Strings which use unclear terms or require additional context to be
++# understood.
++# - Strings which make invalid assumptions about notation of date, time or
++# money.
++# - Pluralisation problems.
++# - Incorrect English spelling.
++# - Incorrect formatting.
++# It can be your email address, or a mailing list address where translators
++# can write to without being subscribed, or the URL of a web page through
++# which the translators can contact you.
++MSGID_BUGS_ADDRESS =
++
++# This is the list of locale categories, beyond LC_MESSAGES, for which the
++# message catalogs shall be used. It is usually empty.
++EXTRA_LOCALE_CATEGORIES =
+Index: util-linux-ng-2.14/schedutils/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/schedutils/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/schedutils/Makefile.in 2008-07-26 01:28:47.000000000 -0700
+@@ -44,11 +44,7 @@
+ @BUILD_SCHEDUTILS_TRUE@@HAVE_SCHED_GETAFFINITY_TRUE@am__append_4 = taskset.1
+ subdir = schedutils
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/sys-utils/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/sys-utils/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/sys-utils/Makefile.in 2008-07-26 01:28:47.000000000 -0700
+@@ -60,11 +60,7 @@
+ @ARCH_HPPA_TRUE@am__append_16 = parisc parisc64 parisc32
+ subdir = sys-utils
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/tests/helpers/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/tests/helpers/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/tests/helpers/Makefile.in 2008-07-26 01:28:48.000000000 -0700
+@@ -38,11 +38,7 @@
+ noinst_PROGRAMS = test_sysinfo$(EXEEXT) test_pathnames$(EXEEXT)
+ subdir = tests/helpers
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/tests/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/tests/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/tests/Makefile.in 2008-07-26 01:28:47.000000000 -0700
+@@ -37,11 +37,7 @@
+ $(top_srcdir)/config/include-Makefile.am
+ subdir = tests
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+Index: util-linux-ng-2.14/text-utils/Makefile.in
+===================================================================
+--- util-linux-ng-2.14.orig/text-utils/Makefile.in 2008-06-09 05:02:13.000000000 -0700
++++ util-linux-ng-2.14/text-utils/Makefile.in 2008-07-26 01:28:48.000000000 -0700
+@@ -46,11 +46,7 @@
+ @HAVE_NCURSES_FALSE@@HAVE_TERMCAP_TRUE@am__append_3 = more.1
+ subdir = text-utils
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+- $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+- $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+- $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+- $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
++am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
diff --git a/packages/util-linux-ng/util-linux-ng_2.14.bb b/packages/util-linux-ng/util-linux-ng_2.14.bb
index ed80268e22..455c0b8c46 100644
--- a/packages/util-linux-ng/util-linux-ng_2.14.bb
+++ b/packages/util-linux-ng/util-linux-ng_2.14.bb
@@ -1,3 +1,11 @@
require util-linux-ng.inc
-PR = "r1"
+PR = "r2"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/util-linux-ng-2.14', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+
+SRC_URI += "file://util-linux-ng-uclibc-versionsort.patch;patch=1 \
+ "
+LDFLAGS_append_linux-uclibc = " -lintl"
+LDFLAGS_append_linux-uclibcgnueabi = " -lintl "
+LDFLAGS_append_uclinux-uclibc = " -lintl"
+
diff --git a/packages/vlc/vlc-davinci_0.8.6h.bb b/packages/vlc/vlc-davinci_0.8.6h.bb
index 9d64cb4901..6f0308880c 100644
--- a/packages/vlc/vlc-davinci_0.8.6h.bb
+++ b/packages/vlc/vlc-davinci_0.8.6h.bb
@@ -4,13 +4,13 @@ LICENSE = "GPL"
PRIORITY = "optional"
SECTION = "multimedia"
-SRCREV = "fa02f65b17429432d13a108f73744f33709dd01c"
+SRCREV = "1ae3abd276bc478f7a3156c4acef1dd20f1b1899"
-PR = "r2"
+PR = "r3"
PV = "0.8.6h+${PR}+gitr${SRCREV}"
-DEPENDS = "dbus libxml2 gnutls tremor faad2 ffmpeg flac liba52 libid3tag libmad mpeg2dec"
+DEPENDS = "codec-engine dbus libxml2 gnutls tremor faad2 ffmpeg flac liba52 libid3tag libmad mpeg2dec"
SRC_URI = "git://git.videolan.org/vlc.git;protocol=git;branch=0.8.6-neuros"
@@ -19,7 +19,8 @@ S = "${WORKDIR}/git"
inherit autotools
EXTRA_OECONF = "\
- --with-contrib \
+ --enable-libtool \
+ --with-contrib \
--disable-dvdread \
--disable-wxwidgets \
--disable-skins2 \
@@ -34,7 +35,7 @@ EXTRA_OECONF = "\
--enable-live555 --enable-tremor \
--disable-mod \
--enable-davinci --enable-davincifb --enable-davinciresizer \
- --enable-v4l2 --enable-aa --enable-wma --enable-faad \
+ --enable-v4l2 --disable-aa --enable-wma --disable-faad \
--enable-dbus \
"
@@ -53,10 +54,6 @@ do_stage() {
autotools_stage_all
}
-do_compile() {
- ${S}/compile
-}
-
RCONFLICTS_${PN} = "vlc"
FILES_${PN} += "${bindir}/vlc \
diff --git a/packages/xorg-font/font-misc-misc/.mtn2git_empty b/packages/xorg-font/font-misc-misc/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xorg-font/font-misc-misc/.mtn2git_empty
diff --git a/packages/xorg-font/font-misc-misc/configure-mapdir.patch b/packages/xorg-font/font-misc-misc/configure-mapdir.patch
new file mode 100644
index 0000000000..caf09b6a73
--- /dev/null
+++ b/packages/xorg-font/font-misc-misc/configure-mapdir.patch
@@ -0,0 +1,11 @@
+--- s/configure.ac~ 2005-12-15 00:24:25.000000000 +0000
++++ s/configure.ac 2008-07-27 10:05:30.000000000 +0100
+@@ -45,7 +45,7 @@
+ AC_SUBST(FONTDIR)
+
+ PKG_CHECK_MODULES(MAPS, [fontutil])
+-MAPFILES_PATH=$(pkg-config --variable=mapdir fontutil)
++MAPFILES_PATH=$(PKG_CONFIG_PATH="${STAGING_LIBDIR_NATIVE}/pkg-config" ${PKG_CONFIG} --variable=mapdir fontutil)
+ AC_SUBST(MAPFILES_PATH)
+
+ XORG_FONT_CHECK_ISO8859_1
diff --git a/packages/xorg-font/font-misc-misc_1.0.0.bb b/packages/xorg-font/font-misc-misc_1.0.0.bb
new file mode 100644
index 0000000000..ad42a16ae2
--- /dev/null
+++ b/packages/xorg-font/font-misc-misc_1.0.0.bb
@@ -0,0 +1,9 @@
+EXTRA_OECONF = "STAGING_LIBDIR_NATIVE=\"${STAGING_LIBDIR_NATIVE}\""
+
+require xorg-font-common.inc
+
+SRC_URI += " file://configure-mapdir.patch;patch=1"
+
+#DESCRIPTION = ""
+
+#DEPENDS += " "
diff --git a/packages/xorg-lib/libx11-native_1.0.1.bb b/packages/xorg-lib/libx11-native_1.0.1.bb
index 7bc5fd3524..e46f46814e 100644
--- a/packages/xorg-lib/libx11-native_1.0.1.bb
+++ b/packages/xorg-lib/libx11-native_1.0.1.bb
@@ -11,7 +11,7 @@ PROVIDES = "x11-native"
XORG_PN = "libX11"
-SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-1.1.1.tar.bz2"
+SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-1.0.1.tar.bz2"
S = "${WORKDIR}/libX11-${PV}"
inherit native autotools pkgconfig