summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
Diffstat (limited to 'recipes')
-rw-r--r--recipes/addons/devshell.bb3
-rw-r--r--recipes/blackbox/blackbox_0.70.1.bb3
-rw-r--r--recipes/boost/boost_1.36.0.bb5
-rw-r--r--recipes/boost/files/gcc-44.diff304
-rw-r--r--recipes/boost/files/sscanf.patch13
-rw-r--r--recipes/busybox/busybox_1.14.3.bb5
-rw-r--r--recipes/cdparanoia/cdparanoia/Makefile.in.patch (renamed from recipes/cdparanoia/files/Makefile.in.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/Makefile.patch (renamed from recipes/cdparanoia/files/Makefile.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch561
-rw-r--r--recipes/cdparanoia/cdparanoia/fixes.patch (renamed from recipes/cdparanoia/files/fixes.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/fixes10.patch (renamed from recipes/cdparanoia/files/fixes10.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/interface_Makefile.in.patch (renamed from recipes/cdparanoia/files/interface_Makefile.in.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia/paranoia_Makefile.in.patch (renamed from recipes/cdparanoia/files/paranoia_Makefile.in.patch)0
-rw-r--r--recipes/cdparanoia/cdparanoia_10.2.bb36
-rw-r--r--recipes/cdparanoia/cdparanoia_9.8alpha.bb34
-rw-r--r--recipes/curl/curl-common.inc19
-rw-r--r--recipes/curl/curl-native_7.18.2.bb8
-rw-r--r--recipes/curl/curl-native_7.19.6.bb8
-rw-r--r--recipes/curl/curl-sdk_7.18.2.bb10
-rw-r--r--recipes/dbus/dbus-1.2.1/fix-install-daemon.patch42
-rw-r--r--recipes/dbus/dbus-native_1.0.3.bb2
-rw-r--r--recipes/dbus/dbus-native_1.2.1.bb5
-rw-r--r--recipes/dbus/dbus.inc7
-rw-r--r--recipes/dbus/dbus_1.2.1.bb2
-rw-r--r--recipes/eglibc/eglibc-initial_2.11.bb6
-rw-r--r--recipes/eglibc/eglibc_2.10.bb2
-rw-r--r--recipes/eglibc/eglibc_2.11.bb100
-rw-r--r--recipes/eglibc/eglibc_2.9.bb2
-rw-r--r--recipes/eglibc/eglibc_svn.bb9
-rw-r--r--recipes/freesmartphone/fso-term_git.bb4
-rw-r--r--recipes/freesmartphone/fsogsmd_git.bb4
-rw-r--r--recipes/gcc/mingw-gcc-build.inc2
-rw-r--r--recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch35
-rw-r--r--recipes/glibc/glibc-initial_2.10.1.bb6
-rw-r--r--recipes/glibc/glibc_2.10.1.bb151
-rw-r--r--recipes/gnutls/gnutls-native_2.4.2.bb4
-rw-r--r--recipes/gob2/gob2_2.0.14.bb2
-rw-r--r--recipes/gstreamer/gst-plugins-good_0.10.15.bb4
-rw-r--r--recipes/icu/icu_3.6.bb8
-rw-r--r--recipes/klibc/klibc-1.5.15/signal-cleanup.patch22
-rw-r--r--recipes/klibc/klibc_1.5.15.bb2
-rw-r--r--recipes/libdiscid/libdiscid.inc14
-rw-r--r--recipes/libdiscid/libdiscid_0.2.2.bb1
-rw-r--r--recipes/libsdl/libsdl-mixer_1.2.10.bb25
-rw-r--r--recipes/meta/meta-toolchain-qte.bb22
-rw-r--r--recipes/meta/meta-toolchain.bb109
-rw-r--r--recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb10
-rw-r--r--recipes/module-init-tools/module-init-tools-cross_3.2.2.bb4
-rw-r--r--recipes/module-init-tools/module-init-tools.inc25
-rw-r--r--recipes/module-init-tools/module-init-tools_3.2.1.bb18
-rw-r--r--recipes/module-init-tools/module-init-tools_3.2.2.bb25
-rw-r--r--recipes/module-init-tools/module-init-tools_3.4.bb19
-rw-r--r--recipes/mplayer/files/disable-executable-stack-test.patch6
-rw-r--r--recipes/mplayer/files/mplayer-arm-pld.patch18
-rw-r--r--recipes/mplayer/files/mplayer-lavc-arm.patch17
-rw-r--r--recipes/mplayer/mplayer_svn.bb2
-rw-r--r--recipes/musicbrainz/libmusicbrainz.inc5
-rw-r--r--recipes/mysql/mysql5_5.1.40.inc5
-rw-r--r--recipes/mysql/mysql_4.1.22.bb8
-rw-r--r--recipes/perl/libfile-slurp-perl_9999.13.bb4
-rw-r--r--recipes/perl/libhtml-mason-perl_1.35.bb4
-rw-r--r--recipes/perl/libhtml-parser-perl-native_3.64.bb6
-rw-r--r--recipes/perl/libhtml-parser-perl_3.64.bb15
-rw-r--r--recipes/perl/liblog-dispatch-perl_2.13.bb4
-rw-r--r--recipes/perl/libmodule-build-perl_0.2805.bb4
-rw-r--r--recipes/perl/libtermreadkey-perl_2.30.bb4
-rw-r--r--recipes/perl/libwww-mechanize-perl-native_1.60.bb6
-rw-r--r--recipes/perl/libwww-mechanize-perl_1.60.bb10
-rw-r--r--recipes/perl/libxml-parser-perl-native_2.36.bb6
-rw-r--r--recipes/perl/libxml-twig-perl_3.33.bb4
-rw-r--r--recipes/perl/libxml-writer-perl_0.606.bb4
-rw-r--r--recipes/perl/perl-native_5.8.4.bb2
-rw-r--r--recipes/perl/perl-native_5.8.7.bb2
-rw-r--r--recipes/perl/perl-native_5.8.8.bb9
-rw-r--r--recipes/perl/perl.inc4
-rw-r--r--recipes/perl/perl_5.8.4.bb2
-rw-r--r--recipes/perl/perl_5.8.7.bb2
-rw-r--r--recipes/perl/perl_5.8.8.bb7
-rw-r--r--recipes/pingus/files/boost.patch13
-rw-r--r--recipes/pingus/files/cheader.patch27
-rw-r--r--recipes/pingus/pingus_0.7.2.bb10
-rw-r--r--recipes/pkgconfig/pkgconfig.inc2
-rw-r--r--recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch82
-rw-r--r--recipes/povray/povray_3.6.1+3.7.0-beta25b.bb3
-rw-r--r--recipes/ptpd/ptpd_1.0.0.bb14
-rw-r--r--recipes/qt4/qt4-embedded_4.4.3.bb2
-rw-r--r--recipes/qt4/qt4-x11-free_4.5.2.bb2
-rw-r--r--recipes/shr/ophonekitd_git.bb24
-rw-r--r--recipes/tcltk/files/tcl-add-soname.patch51
-rw-r--r--recipes/tcltk/tcl-native_8.4.19.bb2
-rw-r--r--recipes/tcltk/tcl_8.4.19.bb4
-rw-r--r--recipes/udev/udev_141.bb10
-rw-r--r--recipes/vala/vala-native_git.bb11
-rw-r--r--recipes/wt/wt3-3.0.0/noqt.patch19
-rw-r--r--recipes/wt/wt3-3.0.0/wgooglemap.patch17
-rw-r--r--recipes/wt/wt3.inc29
-rw-r--r--recipes/wt/wt3/cheader.patch24
-rw-r--r--recipes/wt/wt3/ext.patch (renamed from recipes/wt/wt3-2.99.0/ext.patch)0
-rw-r--r--recipes/wt/wt3_2.99.0.bb41
-rw-r--r--recipes/wt/wt3_3.0.0.bb6
-rw-r--r--recipes/xmltv/files/Makefile.PL.patch14
-rw-r--r--recipes/xmltv/xmltv_0.5.56.bb31
-rw-r--r--recipes/xorg-app/xterm_207.bb10
-rw-r--r--recipes/xorg-app/xterm_251.bb28
-rw-r--r--recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch830
-rw-r--r--recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch1061
-rw-r--r--recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch63
-rw-r--r--recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch60
-rw-r--r--recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch87
-rw-r--r--recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch540
-rw-r--r--recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch592
-rw-r--r--recipes/xorg-lib/pixman/neon-24bpp.patch264
-rw-r--r--recipes/xorg-lib/pixman/over-8888-0565.patch296
-rw-r--r--recipes/xorg-lib/pixman_git.bb14
-rw-r--r--recipes/zaurus-utils/zaurus-updater.bb5
115 files changed, 1955 insertions, 4195 deletions
diff --git a/recipes/addons/devshell.bb b/recipes/addons/devshell.bb
index 9ac6821e0e..5921125d12 100644
--- a/recipes/addons/devshell.bb
+++ b/recipes/addons/devshell.bb
@@ -11,9 +11,6 @@ do_configure() {
def devshell_emit_env(o, d, all=False, funcwhitelist=None):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
- import bb
- import bb.data
-
env = bb.data.keys(d)
for e in env:
diff --git a/recipes/blackbox/blackbox_0.70.1.bb b/recipes/blackbox/blackbox_0.70.1.bb
index 05010f97bb..0376f99980 100644
--- a/recipes/blackbox/blackbox_0.70.1.bb
+++ b/recipes/blackbox/blackbox_0.70.1.bb
@@ -16,6 +16,7 @@ EXTRA_OECONF = "--disable-i18n --without-imlib --with-xpm --with-gnome-menus"
do_install_append() {
sed -i s#${STAGING_LIBDIR}#${libdir}#g ${D}/${libdir}/pkgconfig/libbt.pc
}
-do_stage_append () {
+
+do_stage () {
sed -i s#${STAGING_LIBDIR}#${libdir}#g ${STAGING_LIBDIR}/pkgconfig/libbt.pc
}
diff --git a/recipes/boost/boost_1.36.0.bb b/recipes/boost/boost_1.36.0.bb
index 898d1b1603..f4fad8ced4 100644
--- a/recipes/boost/boost_1.36.0.bb
+++ b/recipes/boost/boost_1.36.0.bb
@@ -1,12 +1,15 @@
include boost-36.inc
-PR = "r7"
+PR = "r8"
SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2 \
file://arm-intrinsics.patch;patch=1 \
file://01-no-serialization-test.patch;patch=1 \
file://02-atomic-count-pthreads-on-arm.patch;patch=1 \
file://03-exception-clone-destructor-fix.patch;patch=1 \
+ file://gcc-44.diff;patch=1 \
+ file://uclibc.patch;patch=1 \
+ file://sscanf.patch;patch=1 \
"
BJAM_OPTS = '${BJAM_TOOLS} \
diff --git a/recipes/boost/files/gcc-44.diff b/recipes/boost/files/gcc-44.diff
new file mode 100644
index 0000000000..ae072e06d5
--- /dev/null
+++ b/recipes/boost/files/gcc-44.diff
@@ -0,0 +1,304 @@
+Index: /boost/python/call.hpp
+===================================================================
+--- /boost/python/call.hpp (revision 24055)
++++ /boost/python/call.hpp (revision 48960)
+@@ -39,5 +39,8 @@
+ # endif // CALL_DWA2002411_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -77,3 +80,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/object/value_holder.hpp
+===================================================================
+--- /boost/python/object/value_holder.hpp (revision 32284)
++++ /boost/python/object/value_holder.hpp (revision 48960)
+@@ -118,5 +118,8 @@
+ // --------------- value_holder ---------------
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -164,3 +167,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/object/make_holder.hpp
+===================================================================
+--- /boost/python/object/make_holder.hpp (revision 39191)
++++ /boost/python/object/make_holder.hpp (revision 48960)
+@@ -48,5 +48,8 @@
+ # endif // MAKE_HOLDER_DWA20011215_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -103,3 +106,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/object/pointer_holder.hpp
+===================================================================
+--- /boost/python/object/pointer_holder.hpp (revision 41521)
++++ /boost/python/object/pointer_holder.hpp (revision 48960)
+@@ -171,5 +171,8 @@
+
+ /* --------------- pointer_holder --------------- */
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -213,3 +216,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/call_method.hpp
+===================================================================
+--- /boost/python/call_method.hpp (revision 24614)
++++ /boost/python/call_method.hpp (revision 48960)
+@@ -38,5 +38,8 @@
+ # endif // CALL_METHOD_DWA2002411_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -77,3 +80,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/python/detail/target.hpp
+===================================================================
+--- /boost/python/detail/target.hpp (revision 24614)
++++ /boost/python/detail/target.hpp (revision 48960)
+@@ -38,5 +38,8 @@
+
+ /* --------------- function pointers --------------- */
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -80,3 +83,4 @@
+ # undef Q
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/detail/result.hpp
+===================================================================
+--- /boost/python/detail/result.hpp (revision 43799)
++++ /boost/python/detail/result.hpp (revision 48960)
+@@ -87,5 +87,8 @@
+
+ /* --------------- function pointers --------------- */
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_FUNCTION_POINTER
+ # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \
+ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201)))
+@@ -129,3 +132,4 @@
+ # undef Q
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif
+Index: /boost/python/signature.hpp
+===================================================================
+--- /boost/python/signature.hpp (revision 24055)
++++ /boost/python/signature.hpp (revision 48960)
+@@ -114,5 +114,8 @@
+ # endif // SIGNATURE_JDG20020813_HPP
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1 // defined(BOOST_PP_IS_ITERATING)
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1 // defined(BOOST_PP_IS_ITERATING)
+
+ # define N BOOST_PP_ITERATION()
+@@ -177,3 +180,4 @@
+ # undef N
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // !defined(BOOST_PP_IS_ITERATING)
+Index: /boost/mpl/aux_/numeric_op.hpp
+===================================================================
+--- /boost/mpl/aux_/numeric_op.hpp (revision 30670)
++++ /boost/mpl/aux_/numeric_op.hpp (revision 48960)
+@@ -288,5 +288,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -309,3 +312,4 @@
+ # undef i_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/aux_/advance_backward.hpp
+===================================================================
+--- /boost/mpl/aux_/advance_backward.hpp (revision 24874)
++++ /boost/mpl/aux_/advance_backward.hpp (revision 48960)
+@@ -80,5 +80,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ #define i_ BOOST_PP_FRAME_ITERATION(1)
+
+@@ -122,3 +125,4 @@
+ # undef AUX778076_ITER_0
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/aux_/full_lambda.hpp
+===================================================================
+--- /boost/mpl/aux_/full_lambda.hpp (revision 24896)
++++ /boost/mpl/aux_/full_lambda.hpp (revision 48960)
+@@ -228,5 +228,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ #define i_ BOOST_PP_FRAME_ITERATION(1)
+
+@@ -348,3 +351,4 @@
+
+ #undef i_
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/aux_/advance_forward.hpp
+===================================================================
+--- /boost/mpl/aux_/advance_forward.hpp (revision 24874)
++++ /boost/mpl/aux_/advance_forward.hpp (revision 48960)
+@@ -80,5 +80,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+ #define i_ BOOST_PP_FRAME_ITERATION(1)
+
+@@ -121,3 +124,4 @@
+ # undef AUX778076_ITER_0
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/unpack_args.hpp
+===================================================================
+--- /boost/mpl/unpack_args.hpp (revision 24874)
++++ /boost/mpl/unpack_args.hpp (revision 48960)
+@@ -112,5 +112,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -144,3 +147,4 @@
+ # undef i_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/bind.hpp
+===================================================================
+--- /boost/mpl/bind.hpp (revision 25875)
++++ /boost/mpl/bind.hpp (revision 48960)
+@@ -362,5 +362,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -545,3 +548,4 @@
+ # undef j_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/apply.hpp
+===================================================================
+--- /boost/mpl/apply.hpp (revision 24874)
++++ /boost/mpl/apply.hpp (revision 48960)
+@@ -136,5 +136,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -223,3 +226,4 @@
+ # undef i_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
+Index: /boost/mpl/apply_wrap.hpp
+===================================================================
+--- /boost/mpl/apply_wrap.hpp (revision 24892)
++++ /boost/mpl/apply_wrap.hpp (revision 48960)
+@@ -79,5 +79,8 @@
+ ///// iteration, depth == 1
+
+-#elif BOOST_PP_ITERATION_DEPTH() == 1
++// For gcc 4.4 compatability, we must include the
++// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
++#else // BOOST_PP_IS_ITERATING
++#if BOOST_PP_ITERATION_DEPTH() == 1
+
+ # define i_ BOOST_PP_FRAME_ITERATION(1)
+@@ -198,3 +201,4 @@
+ # undef j_
+
++#endif // BOOST_PP_ITERATION_DEPTH()
+ #endif // BOOST_PP_IS_ITERATING
diff --git a/recipes/boost/files/sscanf.patch b/recipes/boost/files/sscanf.patch
new file mode 100644
index 0000000000..11d1c96a47
--- /dev/null
+++ b/recipes/boost/files/sscanf.patch
@@ -0,0 +1,13 @@
+Index: boost_1_36_0/boost/test/impl/debug.ipp
+===================================================================
+--- boost_1_36_0.orig/boost/test/impl/debug.ipp 2009-11-11 22:45:05.239343879 +0100
++++ boost_1_36_0/boost/test/impl/debug.ipp 2009-11-11 22:45:11.981848731 +0100
+@@ -277,7 +277,7 @@
+ while( *name_end && *name_end != ')' )
+ ++name_end;
+
+- std::sscanf( name_end+1, "%*s%d", &m_parent_pid );
++ sscanf( name_end+1, "%*s%d", &m_parent_pid );
+
+ m_binary_name.assign( name_beg+1, name_end );
+
diff --git a/recipes/busybox/busybox_1.14.3.bb b/recipes/busybox/busybox_1.14.3.bb
index 1634727854..8d45e1e880 100644
--- a/recipes/busybox/busybox_1.14.3.bb
+++ b/recipes/busybox/busybox_1.14.3.bb
@@ -4,7 +4,7 @@ PR = "${INC_PR}.0"
DEFAULT_PREFERENCE = "-1"
SRC_URI = "\
- http://www.busybox.net/downloads/busybox-${PV}.tar.gz \
+ http://www.busybox.net/downloads/busybox-${PV}.tar.gz;name=tarball \
\
file://udhcpscript.patch;patch=1 \
file://udhcpc-fix-nfsroot.patch;patch=1 \
@@ -27,6 +27,9 @@ SRC_URI = "\
file://mdev.conf \
"
+SRC_URI[tarball.md5sum] = "dfb197b8de260ff284f7222ed23614fe"
+SRC_URI[tarball.sha256sum] = "b5a0c76d414cca97fb21622a5d09fa5a58f59890f5c9ce4f8b851c4e8b73a163"
+
EXTRA_OEMAKE += "V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX}"
do_configure_prepend () {
diff --git a/recipes/cdparanoia/files/Makefile.in.patch b/recipes/cdparanoia/cdparanoia/Makefile.in.patch
index 40cf4ad516..40cf4ad516 100644
--- a/recipes/cdparanoia/files/Makefile.in.patch
+++ b/recipes/cdparanoia/cdparanoia/Makefile.in.patch
diff --git a/recipes/cdparanoia/files/Makefile.patch b/recipes/cdparanoia/cdparanoia/Makefile.patch
index 798ccf9003..798ccf9003 100644
--- a/recipes/cdparanoia/files/Makefile.patch
+++ b/recipes/cdparanoia/cdparanoia/Makefile.patch
diff --git a/recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch b/recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch
new file mode 100644
index 0000000000..55f39b26da
--- /dev/null
+++ b/recipes/cdparanoia/cdparanoia/cdparanoia-III-10.2-privatefix.patch
@@ -0,0 +1,561 @@
+diff -ru cdparanoia-III-10.2/interface/cdda_interface.h cdparanoia-III-10.2-mod/interface/cdda_interface.h
+--- cdparanoia-III-10.2/interface/cdda_interface.h 2008-09-11 11:43:52.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/cdda_interface.h 2009-09-08 16:08:37.000000000 +0100
+@@ -84,7 +84,7 @@
+ int is_atapi;
+ int is_mmc;
+
+- cdda_private_data_t *private;
++ cdda_private_data_t *impl;
+ void *reserved;
+ unsigned char inqbytes[4];
+
+diff -ru cdparanoia-III-10.2/interface/cooked_interface.c cdparanoia-III-10.2-mod/interface/cooked_interface.c
+--- cdparanoia-III-10.2/interface/cooked_interface.c 2008-08-26 10:55:22.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/cooked_interface.c 2009-09-08 16:09:35.000000000 +0100
+@@ -13,13 +13,13 @@
+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->impl->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->impl->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->impl->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+ }
+diff -ru cdparanoia-III-10.2/interface/interface.c cdparanoia-III-10.2-mod/interface/interface.c
+--- cdparanoia-III-10.2/interface/interface.c 2008-09-11 11:43:52.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/interface.c 2009-09-08 16:09:50.000000000 +0100
+@@ -39,9 +39,9 @@
+ if(d->drive_model)free(d->drive_model);
+ if(d->cdda_fd!=-1)close(d->cdda_fd);
+ if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->impl){
++ if(d->impl->sg_hd)free(d->impl->sg_hd);
++ free(d->impl);
+ }
+
+ free(d);
+@@ -127,7 +127,7 @@
+ }
+ }
+ }
+- if(ms)*ms=d->private->last_milliseconds;
++ if(ms)*ms=d->impl->last_milliseconds;
+ return(sectors);
+ }
+
+diff -ru cdparanoia-III-10.2/interface/scan_devices.c cdparanoia-III-10.2-mod/interface/scan_devices.c
+--- cdparanoia-III-10.2/interface/scan_devices.c 2008-08-26 10:55:22.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/scan_devices.c 2009-09-08 16:09:17.000000000 +0100
+@@ -264,11 +264,11 @@
+ d->interface=COOKED_IOCTL;
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->impl=calloc(1,sizeof(*d->impl));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->impl->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
+ return(d);
+@@ -674,15 +674,15 @@
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+ d->messagedest = messagedest;
+- d->private=calloc(1,sizeof(*d->private));
++ d->impl=calloc(1,sizeof(*d->impl));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->impl->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ if(use_sgio){
+ d->interface=SGIO_SCSI;
+- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
++ d->impl->sg_buffer=(unsigned char *)(d->impl->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
+ g_fd=d->cdda_fd=dup(d->ioctl_fd);
+ }else{
+ version=verify_SG_version(d,messagedest,messages);
+@@ -696,8 +696,8 @@
+ }
+
+ /* malloc our big buffer for scsi commands */
+- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->impl->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
++ d->impl->sg_buffer=((unsigned char *)d->impl->sg_hd)+SG_OFF;
+ }
+
+ {
+@@ -772,9 +772,9 @@
+ if(i_fd!=-1)close(i_fd);
+ if(g_fd!=-1)close(g_fd);
+ if(d){
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->impl){
++ if(d->impl->sg_hd)free(d->impl->sg_hd);
++ free(d->impl);
+ }
+ free(d);
+ }
+@@ -821,7 +821,7 @@
+ d->interface=TEST_INTERFACE;
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->impl=calloc(1,sizeof(*d->impl));
+ d->drive_model=copystring("File based test interface");
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
+
+diff -ru cdparanoia-III-10.2/interface/scsi_interface.c cdparanoia-III-10.2-mod/interface/scsi_interface.c
+--- cdparanoia-III-10.2/interface/scsi_interface.c 2008-09-11 21:33:30.000000000 +0100
++++ cdparanoia-III-10.2-mod/interface/scsi_interface.c 2009-09-08 16:10:30.000000000 +0100
+@@ -15,13 +15,13 @@
+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->impl->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->impl->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->impl->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+ }
+@@ -96,7 +96,7 @@
+ static void clear_garbage(cdrom_drive *d){
+ fd_set fdset;
+ struct timeval tv;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->impl->sg_hd;
+ int flag=0;
+
+ /* clear out any possibly preexisting garbage */
+@@ -185,7 +185,7 @@
+ struct timespec tv2;
+ int tret1,tret2;
+ int status = 0;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->impl->sg_hd;
+ long writebytes=SG_OFF+cmd_len+in_size;
+
+ /* generic scsi device services */
+@@ -195,7 +195,7 @@
+
+ memset(sg_hd,0,sizeof(sg_hd));
+ memset(sense_buffer,0,SG_MAX_SENSE);
+- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
++ memcpy(d->impl->sg_buffer,cmd,cmd_len+in_size);
+ sg_hd->twelve_byte = cmd_len == 12;
+ sg_hd->result = 0;
+ sg_hd->reply_len = SG_OFF + out_size;
+@@ -209,7 +209,7 @@
+ tell if the command failed. Scared yet? */
+
+ if(bytecheck && out_size>in_size){
+- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
++ memset(d->impl->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
+ /* the size does not remove cmd_len due to the way the kernel
+ driver copies buffers */
+ writebytes+=(out_size-in_size);
+@@ -243,7 +243,7 @@
+ }
+
+ sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
+- tret1=clock_gettime(d->private->clock,&tv1);
++ tret1=clock_gettime(d->impl->clock,&tv1);
+ errno=0;
+ status = write(d->cdda_fd, sg_hd, writebytes );
+
+@@ -289,7 +289,7 @@
+ }
+ }
+
+- tret2=clock_gettime(d->private->clock,&tv2);
++ tret2=clock_gettime(d->impl->clock,&tv2);
+ errno=0;
+ status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
+ sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL );
+@@ -313,7 +313,7 @@
+ if(bytecheck && in_size+cmd_len<out_size){
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->impl->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+ }
+@@ -326,9 +326,9 @@
+
+ errno=0;
+ if(tret1<0 || tret2<0){
+- d->private->last_milliseconds=-1;
++ d->impl->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
++ d->impl->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
+ }
+ return(0);
+ }
+@@ -347,7 +347,7 @@
+
+ memset(&hdr,0,sizeof(hdr));
+ memset(sense,0,sizeof(sense));
+- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
++ memcpy(d->impl->sg_buffer,cmd+cmd_len,in_size);
+
+ hdr.cmdp = cmd;
+ hdr.cmd_len = cmd_len;
+@@ -355,7 +355,7 @@
+ hdr.mx_sb_len = SG_MAX_SENSE;
+ hdr.timeout = 50000;
+ hdr.interface_id = 'S';
+- hdr.dxferp = d->private->sg_buffer;
++ hdr.dxferp = d->impl->sg_buffer;
+ hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
+
+ /* scary buffer fill hack */
+@@ -400,7 +400,7 @@
+ if(bytecheck && in_size<out_size){
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->impl->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+ }
+@@ -412,7 +412,7 @@
+ }
+
+ /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
+- /* d->private->last_milliseconds = hdr.duration; */
++ /* d->impl->last_milliseconds = hdr.duration; */
+
+ errno = 0;
+ return 0;
+@@ -445,9 +445,9 @@
+
+ handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
+
+- key = d->private->sg_buffer[2] & 0xf;
+- ASC = d->private->sg_buffer[12];
+- ASCQ = d->private->sg_buffer[13];
++ key = d->impl->sg_buffer[2] & 0xf;
++ ASC = d->impl->sg_buffer[12];
++ ASCQ = d->impl->sg_buffer[13];
+
+ if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
+ return 1;
+@@ -492,7 +492,7 @@
+ if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1);
+
+ {
+- unsigned char *b=d->private->sg_buffer;
++ unsigned char *b=d->impl->sg_buffer;
+ if(b[0])return(1); /* Handles only up to 256 bytes */
+ if(b[6])return(1); /* Handles only up to 256 bytes */
+
+@@ -604,8 +604,8 @@
+ static unsigned int get_orig_sectorsize(cdrom_drive *d){
+ if(mode_sense(d,12,0x01))return(-1);
+
+- d->orgdens = d->private->sg_buffer[4];
+- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
++ d->orgdens = d->impl->sg_buffer[4];
++ return(d->orgsize = ((int)(d->impl->sg_buffer[10])<<8)+d->impl->sg_buffer[11]);
+ }
+
+ /* switch CDROM scsi drives to given sector size */
+@@ -664,8 +664,8 @@
+ return(-4);
+ }
+
+- first=d->private->sg_buffer[2];
+- last=d->private->sg_buffer[3];
++ first=d->impl->sg_buffer[2];
++ last=d->impl->sg_buffer[3];
+ tracks=last-first+1;
+
+ if (last > MAXTRK || first > MAXTRK || last<0 || first<0) {
+@@ -683,7 +683,7 @@
+ return(-5);
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->impl->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+ d->disc_toc[i-first].bTrack=i;
+@@ -704,7 +704,7 @@
+ return(-2);
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->impl->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+ d->disc_toc[i-first].bTrack=0xAA;
+@@ -738,7 +738,7 @@
+ }
+
+ /* copy to our structure and convert start sector */
+- tracks = d->private->sg_buffer[1];
++ tracks = d->impl->sg_buffer[1];
+ if (tracks > MAXTRK) {
+ cderror(d,"003: CDROM reporting illegal number of tracks\n");
+ return(-3);
+@@ -754,33 +754,33 @@
+ return(-5);
+ }
+
+- d->disc_toc[i].bFlags = d->private->sg_buffer[10];
++ d->disc_toc[i].bFlags = d->impl->sg_buffer[10];
+ d->disc_toc[i].bTrack = i + 1;
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- (((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]));
++ (((signed char)(d->impl->sg_buffer[2])<<24) |
++ (d->impl->sg_buffer[3]<<16)|
++ (d->impl->sg_buffer[4]<<8)|
++ (d->impl->sg_buffer[5]));
+ }
+
+ d->disc_toc[i].bFlags = 0;
+ d->disc_toc[i].bTrack = i + 1;
+- memcpy (&foo, d->private->sg_buffer+2, 4);
+- memcpy (&bar, d->private->sg_buffer+6, 4);
++ memcpy (&foo, d->impl->sg_buffer+2, 4);
++ memcpy (&bar, d->impl->sg_buffer+6, 4);
+ d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
+ be32_to_cpu(bar));
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- ((((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]))+
++ ((((signed char)(d->impl->sg_buffer[2])<<24) |
++ (d->impl->sg_buffer[3]<<16)|
++ (d->impl->sg_buffer[4]<<8)|
++ (d->impl->sg_buffer[5]))+
+
+- ((((signed char)(d->private->sg_buffer[6])<<24) |
+- (d->private->sg_buffer[7]<<16)|
+- (d->private->sg_buffer[8]<<8)|
+- (d->private->sg_buffer[9]))));
++ ((((signed char)(d->impl->sg_buffer[6])<<24) |
++ (d->impl->sg_buffer[7]<<16)|
++ (d->impl->sg_buffer[8]<<8)|
++ (d->impl->sg_buffer[9]))));
+
+
+ d->cd_extra = FixupTOC(d,tracks+1);
+@@ -817,7 +817,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -836,7 +836,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -854,7 +854,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -872,7 +872,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -890,7 +890,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -908,7 +908,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -922,7 +922,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -936,7 +936,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -950,7 +950,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -964,7 +964,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -978,7 +978,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -992,7 +992,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1026,7 +1026,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1039,7 +1039,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1052,7 +1052,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->impl->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1275,7 +1275,7 @@
+ static int count_2352_bytes(cdrom_drive *d){
+ long i;
+ for(i=2351;i>=0;i--)
+- if(d->private->sg_buffer[i]!=(unsigned char)'\177')
++ if(d->impl->sg_buffer[i]!=(unsigned char)'\177')
+ return(((i+3)>>2)<<2);
+
+ return(0);
+@@ -1284,7 +1284,7 @@
+ static int verify_nonzero(cdrom_drive *d){
+ long i,flag=0;
+ for(i=0;i<2352;i++)
+- if(d->private->sg_buffer[i]!=0){
++ if(d->impl->sg_buffer[i]!=0){
+ flag=1;
+ break;
+ }
+@@ -1625,7 +1625,7 @@
+ d->is_mmc=0;
+ if(mode_sense(d,22,0x2A)==0){
+
+- b=d->private->sg_buffer;
++ b=d->impl->sg_buffer;
+ b+=b[3]+4;
+
+ if((b[0]&0x3F)==0x2A){
+@@ -1673,7 +1673,7 @@
+ cderror(d,"008: Unable to identify CDROM model\n");
+ return(NULL);
+ }
+- return (d->private->sg_buffer);
++ return (d->impl->sg_buffer);
+ }
+
+ int scsi_init_drive(cdrom_drive *d){
+@@ -1742,8 +1742,8 @@
+ check_cache(d);
+
+ d->error_retry=1;
+- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->impl->sg_hd=realloc(d->impl->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
++ d->impl->sg_buffer=((unsigned char *)d->impl->sg_hd)+SG_OFF;
+ d->report_all=1;
+ return(0);
+ }
diff --git a/recipes/cdparanoia/files/fixes.patch b/recipes/cdparanoia/cdparanoia/fixes.patch
index 6ffc8a6af9..6ffc8a6af9 100644
--- a/recipes/cdparanoia/files/fixes.patch
+++ b/recipes/cdparanoia/cdparanoia/fixes.patch
diff --git a/recipes/cdparanoia/files/fixes10.patch b/recipes/cdparanoia/cdparanoia/fixes10.patch
index 414ff3944d..414ff3944d 100644
--- a/recipes/cdparanoia/files/fixes10.patch
+++ b/recipes/cdparanoia/cdparanoia/fixes10.patch
diff --git a/recipes/cdparanoia/files/interface_Makefile.in.patch b/recipes/cdparanoia/cdparanoia/interface_Makefile.in.patch
index 4dbd2bb19a..4dbd2bb19a 100644
--- a/recipes/cdparanoia/files/interface_Makefile.in.patch
+++ b/recipes/cdparanoia/cdparanoia/interface_Makefile.in.patch
diff --git a/recipes/cdparanoia/files/paranoia_Makefile.in.patch b/recipes/cdparanoia/cdparanoia/paranoia_Makefile.in.patch
index 962a43a634..962a43a634 100644
--- a/recipes/cdparanoia/files/paranoia_Makefile.in.patch
+++ b/recipes/cdparanoia/cdparanoia/paranoia_Makefile.in.patch
diff --git a/recipes/cdparanoia/cdparanoia_10.2.bb b/recipes/cdparanoia/cdparanoia_10.2.bb
index 2a220336fd..9ae4b7ed02 100644
--- a/recipes/cdparanoia/cdparanoia_10.2.bb
+++ b/recipes/cdparanoia/cdparanoia_10.2.bb
@@ -1,33 +1,31 @@
# cdparanoia OE build file
# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
+LICENSE = "GPL"
-PR ="r0"
-LICENSE="GPL"
+SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-10.2.src.tgz \
+ file://fixes10.patch;patch=1 \
+ file://Makefile.in.patch;patch=1 \
+ file://interface_Makefile.in.patch;patch=1 \
+ file://paranoia_Makefile.in.patch;patch=1 \
+ file://cdparanoia-III-10.2-privatefix.patch;patch=1 "
-SRC_URI="http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-10.2.src.tgz \
- file://fixes10.patch;patch=1 \
- file://Makefile.in.patch;patch=1 \
- file://interface_Makefile.in.patch;patch=1 \
- file://paranoia_Makefile.in.patch;patch=1 "
+S = "${WORKDIR}/cdparanoia-III-10.2"
-S="${WORKDIR}/cdparanoia-III-10.2"
+inherit autotools
PARALLEL_MAKE = ""
-inherit autotools
-
do_install() {
- oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
- INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
+ oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
+ INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
}
do_stage() {
- install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
-
- install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
- install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
-
- oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
- oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
+ install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
+ install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
+ oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
+ oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
}
+
diff --git a/recipes/cdparanoia/cdparanoia_9.8alpha.bb b/recipes/cdparanoia/cdparanoia_9.8alpha.bb
index 8c1bbd446f..2305ec7d83 100644
--- a/recipes/cdparanoia/cdparanoia_9.8alpha.bb
+++ b/recipes/cdparanoia/cdparanoia_9.8alpha.bb
@@ -1,31 +1,29 @@
# cdparanoia OE build file
# Copyright (C) 2005, Advanced Micro Devices, Inc. All Rights Reserved
# Released under the MIT license (see packages/COPYING)
+LICENSE = "GPL"
-PR ="r2"
-LICENSE="GPL"
+PR = "r3"
-SRC_URI="http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-alpha9.8.src.tgz \
- file://fixes.patch;patch=1 \
- file://Makefile.patch;patch=1"
+SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-alpha9.8.src.tgz \
+ file://fixes.patch;patch=1 \
+ file://Makefile.patch;patch=1"
-S="${WORKDIR}/cdparanoia-III-alpha9.8"
-
-PARALLEL_MAKE = ""
+S = "${WORKDIR}/cdparanoia-III-alpha9.8"
inherit autotools
+PARALLEL_MAKE = ""
+
do_install() {
- oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
- INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
+ oe_runmake BINDIR="${D}/usr/bin" MANDIR="${D}/usr/share/man/" \
+ INCLUDEDIR="${D}/usr/include/" LIBDIR="${D}/usr/lib" install
}
-
do_stage() {
- install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
-
- install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
- install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
-
- oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
- oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR} ${STAGING_LIBDIR}
+ install -m 0644 paranoia/cdda_paranoia.h ${STAGING_INCDIR}
+ install -m 0644 interface/cdda_interface.h ${STAGING_INCDIR}
+ oe_libinstall -C interface libcdda_interface ${STAGING_LIBDIR}
+ oe_libinstall -C paranoia libcdda_paranoia ${STAGING_LIBDIR}
}
+
diff --git a/recipes/curl/curl-common.inc b/recipes/curl/curl-common.inc
index 29af47ee8d..41c5d919c5 100644
--- a/recipes/curl/curl-common.inc
+++ b/recipes/curl/curl-common.inc
@@ -6,7 +6,7 @@ SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
file://pkgconfig_fix.patch;patch=1"
S = "${WORKDIR}/curl-${PV}"
-INC_PR = "r2"
+INC_PR = "r3"
CURL_FEATURES ?= "zlib,gnutls,cookies,crypto-auth,dict,file,ftp,http,telnet,tftp"
# other allowed features: ipv6, ares, openssl
@@ -23,6 +23,11 @@ python __anonymous() {
f = bb.data.getVar("CURL_FEATURES", d, True).split(",")
oeconf = bb.data.getVar("EXTRA_OECONF", d, False)
deps = bb.data.getVar("DEPENDS", d, False).split()
+ pn = bb.data.getVar("PN", d, True)
+ if "native" in pn:
+ native = "-native"
+ else:
+ native = ""
for x in [ 'cookies', 'crypto-auth', 'dict', 'file', 'ftp', 'http', 'telnet', 'tftp', 'ipv6' ]:
if x in f:
oeconf += " --enable-%s" % x
@@ -30,22 +35,22 @@ python __anonymous() {
oeconf += " --disable-%s" % x
if 'zlib' in f:
oeconf += " --with-zlib=${STAGING_LIBDIR}/../"
- deps.append("zlib")
+ deps.append("zlib" + native)
else:
oeconf += " --without-zlib"
if 'gnutls' in f:
oeconf += " --with-gnutls=${STAGING_BINDIR_CROSS}"
- deps.append("gnutls")
+ deps.append("gnutls" + native)
else:
oeconf += " --without-gnutls"
if 'openssl' in f:
oeconf += " --with-ssl=${STAGING_LIBDIR}/../"
- deps.append("openssl")
+ deps.append("openssl" + native)
else:
oeconf += " --without-ssl"
if 'ares' in f:
oeconf += " --enable-ares"
- deps.append("c-ares")
+ deps.append("c-ares" + native)
else:
oeconf += " --disable-ares"
bb.data.setVar('EXTRA_OECONF', oeconf, d)
@@ -57,7 +62,5 @@ do_configure_prepend() {
}
do_stage () {
- install -d ${STAGING_INCDIR}/curl
- install -m 0644 ${S}/include/curl/*.h ${STAGING_INCDIR}/curl/
- oe_libinstall -so -a -C lib libcurl ${STAGING_LIBDIR}
+ autotools_stage_all
}
diff --git a/recipes/curl/curl-native_7.18.2.bb b/recipes/curl/curl-native_7.18.2.bb
index d395021512..1eef23b29c 100644
--- a/recipes/curl/curl-native_7.18.2.bb
+++ b/recipes/curl/curl-native_7.18.2.bb
@@ -2,11 +2,3 @@ require curl-common.inc
inherit native
DEPENDS = "zlib-native"
PR = "${INC_PR}.1"
-
-do_stage () {
- autotools_stage_all
-}
-
-do_install() {
- :
-}
diff --git a/recipes/curl/curl-native_7.19.6.bb b/recipes/curl/curl-native_7.19.6.bb
index b201530cf6..392476b745 100644
--- a/recipes/curl/curl-native_7.19.6.bb
+++ b/recipes/curl/curl-native_7.19.6.bb
@@ -4,11 +4,3 @@ DEPENDS = "zlib-native"
PR = "${INC_PR}.2"
CURL_FEATURES = "zlib,cookies,crypto-auth,dict,file,ftp,http,telnet,tftp"
-
-do_stage () {
- autotools_stage_all
-}
-
-do_install() {
- :
-}
diff --git a/recipes/curl/curl-sdk_7.18.2.bb b/recipes/curl/curl-sdk_7.18.2.bb
index 8eed3d664a..f1fd34ff2c 100644
--- a/recipes/curl/curl-sdk_7.18.2.bb
+++ b/recipes/curl/curl-sdk_7.18.2.bb
@@ -2,13 +2,3 @@ require curl-common.inc
inherit sdk
DEPENDS = "zlib-sdk"
PR = "${INC_PR}.1"
-
-do_stage () {
- install -d ${STAGING_INCDIR}/curl
- install -m 0644 ${S}/include/curl/*.h ${STAGING_INCDIR}/curl/
- oe_libinstall -so -a -C lib libcurl ${STAGING_LIBDIR}
-}
-
-do_install() {
- :
-}
diff --git a/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch b/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch
index c31786357d..8d3bfd07e1 100644
--- a/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch
+++ b/recipes/dbus/dbus-1.2.1/fix-install-daemon.patch
@@ -1,13 +1,37 @@
-Index: dbus-0.94/bus/Makefile.am
+Index: dbus-1.2.1/bus/Makefile.am
===================================================================
---- dbus-0.94.orig/bus/Makefile.am 2006-10-01 17:36:18.000000000 +0200
-+++ dbus-0.94/bus/Makefile.am 2006-10-14 21:40:05.000000000 +0200
-@@ -110,7 +110,7 @@
- $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
- chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
- fi
+--- dbus-1.2.1.orig/bus/Makefile.am 2008-04-04 16:24:08.000000000 +0100
++++ dbus-1.2.1/bus/Makefile.am 2009-11-13 09:30:57.000000000 +0000
+@@ -149,7 +149,7 @@
+
+ ## we use noinst_PROGRAMS not check_PROGRAMS so that we build
+ ## even when not doing "make check"
+-noinst_PROGRAMS=$(TESTS) dbus-daemon dbus-daemon-launch-helper-test dbus-daemon-launch-helper
++noinst_PROGRAMS=$(TESTS) dbus-daemon-launch-helper-test dbus-daemon-launch-helper
+
+ bus_test_system_SOURCES= \
+ $(XML_SOURCES) \
+@@ -171,20 +171,17 @@
+ bus_test_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS)
+ bus_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
+
++dbusdaemondir = $(DBUS_DAEMONDIR)
++dbusdaemon_PROGRAMS = dbus-daemon
++
+ ## mop up the gcov files
+ clean-local:
+ /bin/rm *.bb *.bbg *.da *.gcov || true
+
+ uninstall-hook:
+- rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon
+ rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper
+
+ install-data-hook:
+- if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \
+- $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
+- chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
+- fi
- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
-+ $(INSTALL_PROGRAM) .libs/dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
+ $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
diff --git a/recipes/dbus/dbus-native_1.0.3.bb b/recipes/dbus/dbus-native_1.0.3.bb
index 6ec0fc870d..98b389e4e6 100644
--- a/recipes/dbus/dbus-native_1.0.3.bb
+++ b/recipes/dbus/dbus-native_1.0.3.bb
@@ -5,6 +5,8 @@ DEFAULT_PREFERENCE = "-1"
inherit native
+EXTRA_OECONF_X = "--without-x"
+
DEPENDS = "glib-2.0-native libxml2-native expat-native"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-${PV}"
diff --git a/recipes/dbus/dbus-native_1.2.1.bb b/recipes/dbus/dbus-native_1.2.1.bb
index 2b1610ee49..f9f87dc440 100644
--- a/recipes/dbus/dbus-native_1.2.1.bb
+++ b/recipes/dbus/dbus-native_1.2.1.bb
@@ -1,9 +1,11 @@
require dbus.inc
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.2"
RRECOMMENDS_${PN} = ""
RDEPENDS_${PN} = ""
inherit native
+EXTRA_OECONF_X = "--without-x"
+
DEPENDS = "glib-2.0-native libxml2-native expat-native"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-${PV}"
@@ -11,6 +13,7 @@ SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
file://cross.patch;patch=1 \
file://tmpdir.patch;patch=1 \
+ file://fix-install-daemon.patch;patch=1 \
file://dbus-1.init \
"
diff --git a/recipes/dbus/dbus.inc b/recipes/dbus/dbus.inc
index 202aec432d..0477a27474 100644
--- a/recipes/dbus/dbus.inc
+++ b/recipes/dbus/dbus.inc
@@ -4,7 +4,7 @@ SECTION = "base"
LICENSE = "GPL"
DEPENDS = "expat glib-2.0 virtual/libintl libsm libice virtual/libx11"
-INC_PR = "r16"
+INC_PR = "r17"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
@@ -19,6 +19,8 @@ S = "${WORKDIR}/dbus-${PV}"
inherit autotools pkgconfig update-rc.d gettext
+EXTRA_OECONF_X = "--with-x"
+
EXTRA_OECONF = "\
--disable-qt \
--disable-qt3 \
@@ -27,9 +29,10 @@ EXTRA_OECONF = "\
--disable-checks \
--disable-xml-docs \
--disable-doxygen-docs \
+ --disable-libaudit \
--with-xml=expat \
- --with-x \
--with-dbus-default-reply-timeout=200000 \
+ ${EXTRA_OECONF_X} \
"
do_compile_prepend_mipsel() {
diff --git a/recipes/dbus/dbus_1.2.1.bb b/recipes/dbus/dbus_1.2.1.bb
index 72db1daa9c..d4e5811451 100644
--- a/recipes/dbus/dbus_1.2.1.bb
+++ b/recipes/dbus/dbus_1.2.1.bb
@@ -1,3 +1,3 @@
include dbus.inc
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
diff --git a/recipes/eglibc/eglibc-initial_2.11.bb b/recipes/eglibc/eglibc-initial_2.11.bb
new file mode 100644
index 0000000000..787c762609
--- /dev/null
+++ b/recipes/eglibc/eglibc-initial_2.11.bb
@@ -0,0 +1,6 @@
+require eglibc_${PV}.bb
+require eglibc-initial.inc
+
+do_configure_prepend () {
+ unset CFLAGS
+}
diff --git a/recipes/eglibc/eglibc_2.10.bb b/recipes/eglibc/eglibc_2.10.bb
index 2a62fe3828..38faaf81b6 100644
--- a/recipes/eglibc/eglibc_2.10.bb
+++ b/recipes/eglibc/eglibc_2.10.bb
@@ -6,7 +6,7 @@ PV = "2.10"
PR = "${INC_PR}.5"
SVN_REV="9124"
EGLIBC_BRANCH="eglibc-2_10"
-SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_10;rev=${SVN_REV};proto=svn \
+SRC_URI = "svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};rev=${SVN_REV};proto=svn \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
file://armv4t-interworking.patch;patch=1 \
file://IO-acquire-lock-fix.patch;patch=1 \
diff --git a/recipes/eglibc/eglibc_2.11.bb b/recipes/eglibc/eglibc_2.11.bb
new file mode 100644
index 0000000000..8c7901c3e2
--- /dev/null
+++ b/recipes/eglibc/eglibc_2.11.bb
@@ -0,0 +1,100 @@
+require eglibc.inc
+
+DEFAULT_PREFERENCE = "-1"
+DEPENDS += "gperf-native"
+FILESPATHPKG =. "eglibc-svn:"
+PV = "2.11"
+PR = "${INC_PR}.0"
+SVN_REV="9235"
+EGLIBC_BRANCH="eglibc-2_11"
+SRC_URI = "svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};rev=${SVN_REV};proto=svn \
+ file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
+ file://IO-acquire-lock-fix.patch;patch=1 \
+ file://etc/ld.so.conf \
+ file://generate-supported.mk"
+S = "${WORKDIR}/${EGLIBC_BRANCH}/libc"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+PACKAGES_DYNAMIC = "libc6*"
+RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
+PROVIDES_${PN}-dbg = "glibc-dbg"
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
+
+GLIBC_ADDONS ?= "ports,nptl,libidn"
+
+GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
+
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+ import bb, re
+ uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
+ if uc_os:
+ raise bb.parse.SkipPackage("incompatible with target %s" %
+ bb.data.getVar('TARGET_OS', d, 1))
+}
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+ --without-cvs --disable-profile --disable-debug --without-gd \
+ --enable-clocale=gnu \
+ --enable-add-ons=${GLIBC_ADDONS},ports \
+ --with-headers=${STAGING_INCDIR} \
+ --without-selinux \
+ ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_eglibc_fpu_setting(bb, d)}"
+
+do_unpack_append() {
+ bb.build.exec_func('do_move_ports', d)
+}
+
+do_move_ports() {
+ if test -d ${WORKDIR}/${EGLIBC_BRANCH}/ports ; then
+ rm -rf ${S}/ports
+ mv ${WORKDIR}/${EGLIBC_BRANCH}/ports ${S}/
+ fi
+}
+
+do_configure () {
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+ if [ -z "`which rpcgen`" ]; then
+ echo "rpcgen not found. Install glibc-devel."
+ exit 1
+ fi
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ find ${S} -name "configure" | xargs touch
+ CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+ rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+ # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+ unset LDFLAGS
+ base_do_compile
+ (
+ cd ${S}/sunrpc/rpcsvc
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
+ done
+ )
+}
+
+require eglibc-stage.inc
+
+require eglibc-package.bbclass
diff --git a/recipes/eglibc/eglibc_2.9.bb b/recipes/eglibc/eglibc_2.9.bb
index 7a8262783e..792ca83726 100644
--- a/recipes/eglibc/eglibc_2.9.bb
+++ b/recipes/eglibc/eglibc_2.9.bb
@@ -6,7 +6,7 @@ PV = "2.9"
PR = "${INC_PR}.6"
SVN_REV="8690"
EGLIBC_BRANCH="eglibc-2_9"
-SRC_URI = "svn://svn.eglibc.org/branches;module=eglibc-2_9;rev=${SVN_REV};proto=svn \
+SRC_URI = "svn://svn.eglibc.org/branches;module=${EGLIBC_BRANCH};rev=${SVN_REV};proto=svn \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
file://armv4t-interworking.patch;patch=1 \
file://IO-acquire-lock-fix.patch;patch=1 \
diff --git a/recipes/eglibc/eglibc_svn.bb b/recipes/eglibc/eglibc_svn.bb
index 08f280a8bf..460af5a335 100644
--- a/recipes/eglibc/eglibc_svn.bb
+++ b/recipes/eglibc/eglibc_svn.bb
@@ -1,15 +1,14 @@
require eglibc.inc
DEPENDS += "gperf-native"
-SRCREV = "9191"
+SRCREV = "9241"
DEFAULT_PREFERENCE = "-1"
FILESPATHPKG =. "eglibc-svn:"
-PV = "2.10+svnr${SRCREV}"
-PR = "${INC_PR}.2"
+PV = "2.11+svnr${SRCREV}"
+PR = "${INC_PR}.3"
EGLIBC_BRANCH="trunk"
-SRC_URI = "svn://svn.eglibc.org;module=trunk \
+SRC_URI = "svn://svn.eglibc.org;module=${EGLIBC_BRANCH} \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
- file://armv4t-interworking.patch;patch=1 \
file://IO-acquire-lock-fix.patch;patch=1 \
file://etc/ld.so.conf \
file://generate-supported.mk"
diff --git a/recipes/freesmartphone/fso-term_git.bb b/recipes/freesmartphone/fso-term_git.bb
index e3f674d7cb..acb20cdb05 100644
--- a/recipes/freesmartphone/fso-term_git.bb
+++ b/recipes/freesmartphone/fso-term_git.bb
@@ -12,6 +12,10 @@ SRC_URI = "\
"
S = "${WORKDIR}/git"
+do_stage() {
+ :
+}
+
inherit autotools vala
FILES_${PN} += "${datadir}"
diff --git a/recipes/freesmartphone/fsogsmd_git.bb b/recipes/freesmartphone/fsogsmd_git.bb
index d5067145d2..c96dc1cedc 100644
--- a/recipes/freesmartphone/fsogsmd_git.bb
+++ b/recipes/freesmartphone/fsogsmd_git.bb
@@ -1,6 +1,6 @@
require cornucopia.inc
inherit fso-plugin
PR = "${INC_PR}.0"
-PV = "0.1.0+gitr${SRCREV}"
+PV = "0.2.0+gitr${SRCREV}"
-DEPENDS += "libfsoresource libgsm0710mux"
+DEPENDS += "libfsoresource libgsm0710mux libxml2 mobile-broadband-provider-info"
diff --git a/recipes/gcc/mingw-gcc-build.inc b/recipes/gcc/mingw-gcc-build.inc
index 4d7440f6d5..b79aab4a6a 100644
--- a/recipes/gcc/mingw-gcc-build.inc
+++ b/recipes/gcc/mingw-gcc-build.inc
@@ -34,7 +34,7 @@ do_configure () {
oe_runconf
}
-do_stage_append () {
+do_stage () {
# Fixup various .la files
sed -i -e "s|installed=yes|installed=no|" -e "s|dependency_libs\s*=\s*.*|dependency_libs='-L${STAGING_DIR_HOST}${layout_libdir} ${LIBGCCS_VAR} -lc -lm '|" ${STAGING_DIR_HOST}${layout_libdir}/libsupc++.la || true
sed -i -e "s|installed=yes|installed=no|" -e "s|dependency_libs\s*=\s*.*|dependency_libs='-L${STAGING_DIR_HOST}${layout_libdir} ${LIBGCCS_VAR} -lc -lm '|" ${STAGING_DIR_HOST}${layout_libdir}/libstdc++.la || true
diff --git a/recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch b/recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch
new file mode 100644
index 0000000000..09200dd43b
--- /dev/null
+++ b/recipes/glibc/glibc-2.10.1/glibc-2.9-enable-binutils-2.2.patch
@@ -0,0 +1,35 @@
+--- glibc-2.9.orig/configure.in 2009-10-22 15:38:13.000000000 +0200
++++ glibc-2.9/configure.in 2009-10-22 15:37:33.000000000 +0200
+@@ -844,10 +844,10 @@
+ # Accept binutils 2.13 or newer.
+ AC_CHECK_PROG_VER(AS, $AS, --version,
+ [GNU assembler.* \([0-9]*\.[0-9.]*\)],
+- [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
++ [2.1[3-9]* | 2.2* ], AS=: critic_missing="$critic_missing as")
+ AC_CHECK_PROG_VER(LD, $LD, --version,
+ [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
+- [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
++ [2.1[3-9]* | 2.2* ], LD=: critic_missing="$critic_missing ld")
+
+ # We need the physical current working directory. We cannot use the
+ # "pwd -P" shell builtin since that's not portable. Instead we try to
+--- glibc-2.9.orig/configure 2009-02-26 22:28:17.000000000 +0100
++++ glibc-2.9/configure 2009-10-22 15:43:11.000000000 +0200
+@@ -4531,7 +4531,7 @@
+ ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 2.1[3-9]*)
++ 2.1[3-9]* | 2.2*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+@@ -4594,7 +4594,7 @@
+ ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 2.1[3-9]*)
++ 2.1[3-9]* | 2.2*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
diff --git a/recipes/glibc/glibc-initial_2.10.1.bb b/recipes/glibc/glibc-initial_2.10.1.bb
new file mode 100644
index 0000000000..d66297090f
--- /dev/null
+++ b/recipes/glibc/glibc-initial_2.10.1.bb
@@ -0,0 +1,6 @@
+require glibc_${PV}.bb
+require glibc-initial.inc
+
+do_configure_prepend () {
+ unset CFLAGS
+}
diff --git a/recipes/glibc/glibc_2.10.1.bb b/recipes/glibc/glibc_2.10.1.bb
new file mode 100644
index 0000000000..27fbef5222
--- /dev/null
+++ b/recipes/glibc/glibc_2.10.1.bb
@@ -0,0 +1,151 @@
+require glibc.inc
+
+ARM_INSTRUCTION_SET = "arm"
+
+PACKAGES_DYNAMIC = "libc6*"
+RPROVIDES_${PN}-dev = "libc6-dev virtual-libc-dev"
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
+
+
+FILESPATHPKG =. "glibc-2.4:"
+
+GLIBC_ADDONS ?= "ports,nptl,libidn"
+
+GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN"
+
+#
+# For now, we will skip building of a gcc package if it is a uclibc one
+# and our build is not a uclibc one, and we skip a glibc one if our build
+# is a uclibc build.
+#
+# See the note in gcc/gcc_3.4.0.oe
+#
+
+python __anonymous () {
+ import bb, re
+ uc_os = (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None)
+ if uc_os:
+ raise bb.parse.SkipPackage("incompatible with target %s" %
+ bb.data.getVar('TARGET_OS', d, 1))
+}
+
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+
+SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-ports-${PV}.tar.bz2 \
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-libidn-${PV}.tar.bz2 \
+ file://nscd-init.patch;patch=1;pnum=0 \
+ file://arm-memcpy.patch;patch=1 \
+ file://arm-longlong.patch;patch=1 \
+ file://fhs-linux-paths.patch;patch=1 \
+ file://dl-cache-libcmp.patch;patch=1 \
+ file://ldsocache-varrun.patch;patch=1 \
+ file://nptl-crosscompile.patch;patch=1 \
+ file://glibc-check_pf.patch;patch=1;pnum=0 \
+ file://ldd-unbash.patch;patch=1 \
+ file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
+ file://generic-bits_select.h \
+ file://generic-bits_types.h \
+ file://generic-bits_typesizes.h \
+ file://generic-bits_time.h \
+ file://etc/ld.so.conf \
+ file://generate-supported.mk \
+ file://march-i686.patch;patch=1;pnum=0 \
+ file://arm-lowlevellock-include-tls.patch;patch=1 \
+ file://glibc-2.9-enable-binutils-2.2.patch;patch=1 \
+ file://armv4t-interworking.patch;patch=1 \
+ "
+
+# Build fails on sh3 and sh4 without additional patches
+SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
+SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
+
+#powerpc patches to add support for soft-float
+SRC_URI_append_powerpc= " file://powerpc-sqrt-hack.diff;patch=1"
+
+S = "${WORKDIR}/glibc-${PV}"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+ --without-cvs --disable-profile --disable-debug --without-gd \
+ --enable-clocale=gnu \
+ --enable-add-ons=${GLIBC_ADDONS} \
+ --with-headers=${STAGING_INCDIR} \
+ --without-selinux \
+ ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_glibc_fpu_setting(bb, d)}"
+
+do_munge() {
+ # Integrate ports and libidn into tree
+ mv ${WORKDIR}/glibc-ports-${PV} ${S}/ports
+ mv ${WORKDIR}/glibc-libidn-${PV} ${S}/libidn
+
+ # Ports isn't really working... Fix it
+ # Some of this is rather dirty, but it seems to be the only
+ # quick way to get this cruft to compile
+ rm -rf ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
+ ln -s nptl ${S}/ports/sysdeps/unix/sysv/linux/arm/linuxthreads
+ cp ${S}/nptl/sysdeps/pthread/bits/sigthread.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${S}/sysdeps/wordsize-32/bits/wordsize.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ cp ${WORKDIR}/generic-bits_select.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/select.h
+ cp ${WORKDIR}/generic-bits_types.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/types.h
+ cp ${WORKDIR}/generic-bits_typesizes.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
+ cp ${WORKDIR}/generic-bits_time.h ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/time.h
+ # Copy in generic stuff for not yet implemented headers
+ for i in ${S}/bits/*.h; do
+ F=`basename $i`
+ [ "$F" = "local_lim.h" ] && continue
+ [ "$F" = "errno.h" ] && continue
+ test -e ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/$F || test -e ${S}/ports/sysdeps/arm/bits/$F || test -e ${S}/sysdeps/unix/sysv/linux/bits/$F || test -e ${S}/sysdeps/ieee754/bits/$F || cp $i ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/
+ done
+ # This is harmful; we need to get the one from nptl/sysdeps/pthreads
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/libc-lock.h
+ # Obsoleted by sysdeps/arm/{fpu,eabi}/bits/fenv.h
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
+ # Obsoleted by sysdeps/gnu/bits/utmp.h
+ rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
+}
+
+addtask munge before do_patch after do_unpack
+
+
+do_configure () {
+# /var/db was not included to FHS
+ sed -i s:/var/db/nscd:/var/run/nscd: ${S}/nscd/nscd.h
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+ if [ -z "`which rpcgen`" ]; then
+ echo "rpcgen not found. Install glibc-devel."
+ exit 1
+ fi
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+ rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+ # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+ unset LDFLAGS
+ base_do_compile
+ (
+ cd ${S}/sunrpc/rpcsvc
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ rpcgen -h $r -o $h || oewarn "unable to generate header for $r"
+ done
+ )
+}
+
+require glibc-stage.inc
+
+require glibc-package.bbclass
diff --git a/recipes/gnutls/gnutls-native_2.4.2.bb b/recipes/gnutls/gnutls-native_2.4.2.bb
new file mode 100644
index 0000000000..fb896cdb1b
--- /dev/null
+++ b/recipes/gnutls/gnutls-native_2.4.2.bb
@@ -0,0 +1,4 @@
+require gnutls_${PV}.bb
+
+inherit native
+
diff --git a/recipes/gob2/gob2_2.0.14.bb b/recipes/gob2/gob2_2.0.14.bb
index eca8d13795..86f2f0979e 100644
--- a/recipes/gob2/gob2_2.0.14.bb
+++ b/recipes/gob2/gob2_2.0.14.bb
@@ -12,6 +12,6 @@ do_compile_prepend() {
find ${S} -name Makefile | xargs sed -i 's~-I$(includedir)~-I${STAGING_INCDIR}~g'
}
-do_stage_append() {
+do_stage() {
install -m 0644 ${S}/gob2.m4 ${STAGING_DATADIR}/aclocal
}
diff --git a/recipes/gstreamer/gst-plugins-good_0.10.15.bb b/recipes/gstreamer/gst-plugins-good_0.10.15.bb
index 5913a447e7..ae7566143e 100644
--- a/recipes/gstreamer/gst-plugins-good_0.10.15.bb
+++ b/recipes/gstreamer/gst-plugins-good_0.10.15.bb
@@ -1,13 +1,13 @@
require gst-plugins.inc
-PR = "r4"
+PR = "r5"
SRC_URI += "file://fix-unit-scale-asseration.patch;patch=1"
OE_ALLOW_INSECURE_DOWNLOADS = "1"
inherit gconf
-DEPENDS += "gst-plugins-base openssl popt esound"
+DEPENDS += "flac gst-plugins-base openssl popt esound"
PACKAGES =+ "gst-plugin-gconfelements"
FILES_gst-plugin-gconfelements += "${sysconfdir}/gconf"
diff --git a/recipes/icu/icu_3.6.bb b/recipes/icu/icu_3.6.bb
index 3eccfb53d9..56a70a2f1d 100644
--- a/recipes/icu/icu_3.6.bb
+++ b/recipes/icu/icu_3.6.bb
@@ -37,9 +37,11 @@ do_stage() {
autotools_stage_all
}
-# We need to append this so it runs *after* binconfig.do_stage
-do_stage_append() {
- sed -i -e s:^prefix=:prefix=\"${STAGING_DIR_TARGET}/usr\": ${STAGING_BINDIR_CROSS}/icu-config
+SYSROOT_PREPROCESS_FUNCS += "icu_sysroot_preprocess"
+
+# We need to append this so it runs *after* binconfig's preprocess function
+icu_sysroot_preprocess () {
+ sed -i -e s:^prefix=:prefix=\"${STAGING_DIR_TARGET}/usr\": ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/icu-config
}
diff --git a/recipes/klibc/klibc-1.5.15/signal-cleanup.patch b/recipes/klibc/klibc-1.5.15/signal-cleanup.patch
index fd41f4d7b7..c64cd5bbb6 100644
--- a/recipes/klibc/klibc-1.5.15/signal-cleanup.patch
+++ b/recipes/klibc/klibc-1.5.15/signal-cleanup.patch
@@ -1,21 +1,27 @@
Description: Cope with header changes in kernel commit
63b852a6b67d0820d388b0ecd0da83ccb4048b8d.
-diff -Nur -x '*.orig' -x '*~' klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h klibc-1.5.15.new/usr/include/arch/i386/klibc/archsignal.h
---- klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h 2009-10-04 23:10:17.000000000 +0100
-+++ klibc-1.5.15.new/usr/include/arch/i386/klibc/archsignal.h 2009-10-05 09:35:14.000000000 +0100
-@@ -96,7 +96,7 @@
+Index: klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h
+===================================================================
+--- klibc-1.5.15.orig/usr/include/arch/i386/klibc/archsignal.h 2009-01-04 11:28:03.000000000 -0800
++++ klibc-1.5.15/usr/include/arch/i386/klibc/archsignal.h 2009-11-11 14:21:10.000000000 -0800
+@@ -96,7 +96,12 @@ typedef struct {
#define MINSIGSTKSZ 2048
#define SIGSTKSZ 8192
--#include <asm-generic/signal.h>
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+#include <asm-generic/signal-defs.h>
++#else
+ #include <asm-generic/signal.h>
++#endif
/* This uses gcc anonymous union support... */
struct siginfo;
-diff -Nur -x '*.orig' -x '*~' klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h klibc-1.5.15.new/usr/include/arch/sparc/klibc/archsignal.h
---- klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h 2009-01-04 19:28:03.000000000 +0000
-+++ klibc-1.5.15.new/usr/include/arch/sparc/klibc/archsignal.h 2009-10-05 09:37:31.000000000 +0100
+Index: klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h
+===================================================================
+--- klibc-1.5.15.orig/usr/include/arch/sparc/klibc/archsignal.h 2009-01-04 11:28:03.000000000 -0800
++++ klibc-1.5.15/usr/include/arch/sparc/klibc/archsignal.h 2009-11-09 15:06:29.000000000 -0800
@@ -11,13 +11,6 @@
#define __WANT_POSIX1B_SIGNALS__
#include <asm/signal.h>
diff --git a/recipes/klibc/klibc_1.5.15.bb b/recipes/klibc/klibc_1.5.15.bb
index 31c4fbca3d..777dcd2c3c 100644
--- a/recipes/klibc/klibc_1.5.15.bb
+++ b/recipes/klibc/klibc_1.5.15.bb
@@ -1,4 +1,4 @@
require klibc_1.5.15.inc
-PR = "r3"
+PR = "r4"
KLIBC_FETCHDIR = "Testing"
diff --git a/recipes/libdiscid/libdiscid.inc b/recipes/libdiscid/libdiscid.inc
new file mode 100644
index 0000000000..a8ebfafe8a
--- /dev/null
+++ b/recipes/libdiscid/libdiscid.inc
@@ -0,0 +1,14 @@
+DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. \
+It allows you to access the data held on the MusicBrainz server."
+
+HOMEPAGE = "http://musicbrainz.org"
+LICENSE = "LGPL"
+
+SRC_URI = "http://users.musicbrainz.org/~matt/libdiscid-${PV}.tar.gz"
+
+inherit cmake pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
+
diff --git a/recipes/libdiscid/libdiscid_0.2.2.bb b/recipes/libdiscid/libdiscid_0.2.2.bb
new file mode 100644
index 0000000000..bd54419686
--- /dev/null
+++ b/recipes/libdiscid/libdiscid_0.2.2.bb
@@ -0,0 +1 @@
+require ${PN}.inc
diff --git a/recipes/libsdl/libsdl-mixer_1.2.10.bb b/recipes/libsdl/libsdl-mixer_1.2.10.bb
new file mode 100644
index 0000000000..1a9e808c52
--- /dev/null
+++ b/recipes/libsdl/libsdl-mixer_1.2.10.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Simple DirectMedia Layer mixer library."
+SECTION = "libs"
+PRIORITY = "optional"
+DEPENDS = "virtual/libsdl libmikmod libvorbis"
+LICENSE = "LGPL"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${PV}.tar.gz"
+S = "${WORKDIR}/SDL_mixer-${PV}"
+
+export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+
+inherit autotools_stage
+
+EXTRA_OECONF = "--disable-music-mp3"
+# although we build smpeg... need to find out how
+# to deal with optional dependencies
+
+do_compile() {
+ # Override SDL_LIBS to include a linker rpath so the linker
+ # can find the correct libdl.so when it links playwave to
+ # libSDL_mixer.so.
+ oe_runmake SDL_LIBS="$(pkg-config sdl --libs) -Wl,-rpath-link,${STAGING_LIBDIR}"
+}
diff --git a/recipes/meta/meta-toolchain-qte.bb b/recipes/meta/meta-toolchain-qte.bb
index c27e7cc88c..789b99a032 100644
--- a/recipes/meta/meta-toolchain-qte.bb
+++ b/recipes/meta/meta-toolchain-qte.bb
@@ -10,21 +10,21 @@ SDK_SUFFIX = "toolchain-qte"
QT_DIR_NAME = "qtopia"
do_populate_sdk_append() {
- script = "${SDK_OUTPUT}/${prefix}/environment-setup"
+ script = "${SDK_OUTPUT}/${SDKPATH}/environment-setup"
touch $script
echo 'export OE_QMAKE_CC=${TARGET_SYS}-gcc' >> $script
echo 'export OE_QMAKE_CXX=${TARGET_SYS}-g++' >> $script
echo 'export OE_QMAKE_LINK=${TARGET_SYS}-g++' >> $script
- echo 'export OE_QMAKE_LIBDIR_QT=${prefix}/${TARGET_SYS}/${layout_libdir}' >> $script
- echo 'export OE_QMAKE_INCDIR_QT=${prefix}/${TARGET_SYS}/${layout_includedir}/${QT_DIR_NAME}' >> $script
- echo 'export OE_QMAKE_MOC=${prefix}/bin/moc4' >> $script
- echo 'export OE_QMAKE_UIC=${prefix}/bin/uic4' >> $script
- echo 'export OE_QMAKE_UIC3=${prefix}/bin/uic34' >> $script
- echo 'export OE_QMAKE_RCC=${prefix}/bin/rcc4' >> $script
- echo 'export OE_QMAKE_QDBUSCPP2XML=${prefix}/bin/qdbuscpp2xml4' >> $script
- echo 'export OE_QMAKE_QDBUSXML2CPP=${prefix}/bin/qdbusxml2cpp4' >> $script
- echo 'export OE_QMAKE_QT_CONFIG=${prefix}/${TARGET_SYS}/${layout_datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
- echo 'export QMAKESPEC=${prefix}/${TARGET_SYS}/${layout_datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
+ echo 'export OE_QMAKE_LIBDIR_QT=${SDKPATH}/${TARGET_SYS}/${libdir}' >> $script
+ echo 'export OE_QMAKE_INCDIR_QT=${SDKPATH}/${TARGET_SYS}/${includedir}/${QT_DIR_NAME}' >> $script
+ echo 'export OE_QMAKE_MOC=${SDKPATH}/bin/moc4' >> $script
+ echo 'export OE_QMAKE_UIC=${SDKPATH}/bin/uic4' >> $script
+ echo 'export OE_QMAKE_UIC3=${SDKPATH}/bin/uic34' >> $script
+ echo 'export OE_QMAKE_RCC=${SDKPATH}/bin/rcc4' >> $script
+ echo 'export OE_QMAKE_QDBUSCPP2XML=${SDKPATH}/bin/qdbuscpp2xml4' >> $script
+ echo 'export OE_QMAKE_QDBUSXML2CPP=${SDKPATH}/bin/qdbusxml2cpp4' >> $script
+ echo 'export OE_QMAKE_QT_CONFIG=${SDKPATH}/${TARGET_SYS}/${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
+ echo 'export QMAKESPEC=${SDKPATH}/${TARGET_SYS}/${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
# Repack SDK with new environment-setup
cd ${SDK_OUTPUT}
diff --git a/recipes/meta/meta-toolchain.bb b/recipes/meta/meta-toolchain.bb
index 2e83b1d02f..e09778f82c 100644
--- a/recipes/meta/meta-toolchain.bb
+++ b/recipes/meta/meta-toolchain.bb
@@ -2,21 +2,7 @@ DESCRIPTION = "Meta package for building a installable toolchain"
LICENSE = "MIT"
DEPENDS = "opkg-native ipkg-utils-native fakeroot-native sed-native"
-# NOTE: We need to save and restore PACKAGE_ARCHS, because sdk.bbclass
-# will change HOST_ARCH, which can result in SITEINFO_ENDIANESS (which
-# is computed in siteinfo.bbclass) in changing if the original HOST_ARCH
-# endianess differs from the new HOST_ARCH endianess. SITEINFO_ENDIANNESS
-# is used in a number of places, including the construction of the
-# PACKAGE_EXTRA_ARCHS list for machines that are capable of running in
-# either endianess. There may be better ways to fix this.
-
-# Save value of PACKAGE_ARCHS (note the ":=" syntax to force immediate eval)
-REAL_PACKAGE_ARCHS := "${PACKAGE_ARCHS}"
-
-inherit sdk meta
-
-# Restore PACKAGE_ARCHS (sdk.bbclass may have caused it to change)
-PACKAGE_ARCHS := "${REAL_PACKAGE_ARCHS}"
+inherit meta
SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
@@ -24,7 +10,7 @@ SDK_OUTPUT2 = "${SDK_DIR}/image-extras"
SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
-IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${SDK_PATH}/${TARGET_SYS}"
+IPKG_TARGET = "opkg-cl -f ${IPKGCONF_TARGET} -o ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}"
TOOLCHAIN_HOST_TASK ?= "task-sdk-host"
TOOLCHAIN_TARGET_TASK ?= "task-sdk-bare"
@@ -37,12 +23,12 @@ RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
TOOLCHAIN_FEED_URI ?= "${DISTRO_FEED_URI}"
modify_opkg_conf () {
- OUTPUT_OPKGCONF_TARGET="${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}/opkg.conf"
- OUTPUT_OPKGCONF_HOST="${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}/opkg-sdk.conf"
+ OUTPUT_OPKGCONF_TARGET="${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/opkg.conf"
+ OUTPUT_OPKGCONF_HOST="${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/opkg-sdk.conf"
OUTPUT_OPKGCONF_SDK="${SDK_OUTPUT}/${sysconfdir}/opkg-sdk.conf"
- rm ${OUTPUT_OPKGCONF_TARGET}
- rm ${OUTPUT_OPKGCONF_HOST}
- rm ${OUTPUT_OPKGCONF_SDK}
+ rm -f ${OUTPUT_OPKGCONF_TARGET}
+ rm -f ${OUTPUT_OPKGCONF_HOST}
+ rm -f ${OUTPUT_OPKGCONF_SDK}
opkgarchs="${PACKAGE_ARCHS}"
priority=1
for arch in ${opkgarchs}; do
@@ -55,6 +41,8 @@ modify_opkg_conf () {
do_populate_sdk() {
rm -rf ${SDK_OUTPUT}
mkdir -p ${SDK_OUTPUT}
+ mkdir -p ${SDK_OUTPUT}${libdir}/opkg/
+ mkdir -p ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}${libdir}/opkg/
package_generate_ipkg_conf
@@ -62,48 +50,45 @@ do_populate_sdk() {
revipkgarchs="$arch $revipkgarchs"
done
- mkdir -p ${SDK_OUTPUT}/${layout_libdir}/opkg
${IPKG_HOST} update
${IPKG_HOST} -force-depends install ${TOOLCHAIN_HOST_TASK}
- mkdir -p ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_libdir}/opkg
${IPKG_TARGET} update
${IPKG_TARGET} install ${TOOLCHAIN_TARGET_TASK}
- install -d ${SDK_OUTPUT}/${prefix}/${layout_libdir}/opkg
- mv ${SDK_OUTPUT}/${layout_libdir}/opkg/* \
- ${SDK_OUTPUT}/${prefix}/${layout_libdir}/opkg/
- rm -Rf ${SDK_OUTPUT}/${layout_libdir}
+ install -d ${SDK_OUTPUT}/${SDKPATH}/usr/lib/opkg
+ mv ${SDK_OUTPUT}/usr/lib/opkg/* ${SDK_OUTPUT}/${SDKPATH}/usr/lib/opkg/
+ rm -Rf ${SDK_OUTPUT}/usr/lib
- install -d ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}
- install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/${layout_sysconfdir}/
+ install -d ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}
+ install -m 0644 ${IPKGCONF_TARGET} ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/${sysconfdir}/
- install -d ${SDK_OUTPUT}/${sysconfdir}
- install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${sysconfdir}/
+ install -d ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir}
+ install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATH}/${sysconfdir}/
# extract and store ipks, pkgdata and shlibs data
- target_pkgs=`cat ${SDK_OUTPUT}/${prefix}/package-status | grep Package: | cut -f 2 -d ' '`
- mkdir -p ${SDK_OUTPUT2}/${prefix}/ipk/
- mkdir -p ${SDK_OUTPUT2}/${prefix}/pkgdata/runtime/
- mkdir -p ${SDK_OUTPUT2}/${prefix}/${TARGET_SYS}/shlibs/
+ target_pkgs=`cat ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/usr/lib/opkg/status | grep Package: | cut -f 2 -d ' '`
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/ipk/
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/runtime/
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
for pkg in $target_pkgs ; do
for arch in $revipkgarchs; do
pkgnames=${DEPLOY_DIR_IPK}/$arch/${pkg}_*_$arch.ipk
if [ -e $pkgnames ]; then
oenote "Found $pkgnames"
- cp $pkgnames ${SDK_OUTPUT2}/${prefix}/ipk/
+ cp $pkgnames ${SDK_OUTPUT2}/${SDKPATH}/ipk/
orig_pkg=`ipkg-list-fields $pkgnames | grep OE: | cut -d ' ' -f2`
pkg_subdir=$arch${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}
- mkdir -p ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime
- cp ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/
- subpkgs=`cat ${STAGING_DIR}/pkgdata/$pkg_subdir/$orig_pkg | grep PACKAGES: | cut -b 10-`
+ mkdir -p ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime
+ cp ${TMPDIR}/pkgdata/$pkg_subdir/$orig_pkg ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/
+ subpkgs=`cat ${TMPDIR}/pkgdata/$pkg_subdir/$orig_pkg | grep PACKAGES: | cut -b 10-`
for subpkg in $subpkgs; do
- cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime/
- if [ -e ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ];then
- cp ${STAGING_DIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ${SDK_OUTPUT2}/${prefix}/pkgdata/$pkg_subdir/runtime/
+ cp ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime/
+ if [ -e ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ];then
+ cp ${TMPDIR}/pkgdata/$pkg_subdir/runtime/$subpkg.packaged ${SDK_OUTPUT2}/${SDKPATH}/pkgdata/$pkg_subdir/runtime/
fi
if [ -e ${STAGING_DIR_TARGET}/shlibs/$subpkg.list ]; then
- cp ${STAGING_DIR_TARGET}/shlibs/$subpkg.* ${SDK_OUTPUT2}/${prefix}/${TARGET_SYS}/shlibs/
+ cp ${STAGING_DIR_TARGET}/shlibs/$subpkg.* ${SDK_OUTPUT2}/${SDKPATH}/${TARGET_SYS}/shlibs/
fi
done
break
@@ -115,44 +100,44 @@ do_populate_sdk() {
# libgcc-dev should be responsible for that, but it's not getting built
# RP: it gets smashed up depending on the order that gcc, gcc-cross and
# gcc-cross-sdk get built :( (30/11/07)
- ln -sf libgcc_s.so.1 ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/lib/libgcc_s.so
+ ln -sf libgcc_s.so.1 ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/lib/libgcc_s.so
# With sysroot support, gcc expects the default C++ headers to be
# in a specific place.
- install -d ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/include
- mv ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/usr/include/c++ \
- ${SDK_OUTPUT}/${prefix}/${TARGET_SYS}/include/
+ install -d ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/include
+ mv ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/usr/include/c++ \
+ ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS}/include/
# Fix or remove broken .la files
- for i in `find ${SDK_OUTPUT}/${prefix}/${TARGET_SYS} -name \*.la`; do
- sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${layout_base_libdir},\1${prefix}/${TARGET_SYS}${layout_base_libdir},g" \
- -e "/^dependency_libs=/s,\([[:space:]']\)${layout_libdir},\1${prefix}/${TARGET_SYS}${layout_libdir},g" \
- -e "/^dependency_libs=/s,\-\([LR]\)${layout_base_libdir},-\1${prefix}/${TARGET_SYS}${layout_base_libdir},g" \
- -e "/^dependency_libs=/s,\-\([LR]\)${layout_libdir},-\1${prefix}/${TARGET_SYS}${layout_libdir},g" \
+ for i in `find ${SDK_OUTPUT}/${SDKPATH}/${TARGET_SYS} -name \*.la`; do
+ sed -i -e "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1${SDKPATH}/${TARGET_SYS}${base_libdir},g" \
+ -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${SDKPATH}/${TARGET_SYS}${libdir},g" \
+ -e "/^dependency_libs=/s,\-\([LR]\)${base_libdir},-\1${SDKPATH}/${TARGET_SYS}${base_libdir},g" \
+ -e "/^dependency_libs=/s,\-\([LR]\)${libdir},-\1${SDKPATH}/${TARGET_SYS}${libdir},g" \
-e 's/^installed=yes$/installed=no/' $i
done
- rm -f ${SDK_OUTPUT}/${prefix}/lib/*.la
+ rm -f ${SDK_OUTPUT}/${SDKPATH}/lib/*.la
# Setup site file for external use
- siteconfig=${SDK_OUTPUT}/${prefix}/site-config
+ siteconfig=${SDK_OUTPUT}/${SDKPATH}/site-config
touch $siteconfig
for sitefile in ${CONFIG_SITE} ; do
cat $sitefile >> $siteconfig
done
# Create environment setup script
- script=${SDK_OUTPUT}/${prefix}/environment-setup
+ script=${SDK_OUTPUT}/${SDKPATH}/environment-setup
touch $script
- echo 'export PATH=${prefix}/bin:$PATH' >> $script
+ echo 'export PATH=${SDKPATH}/bin:$PATH' >> $script
echo 'export LIBTOOL_SYSROOT_PATH=${prefix}/${TARGET_SYS}' >> $script
- echo 'export PKG_CONFIG_SYSROOT_DIR=${prefix}/${TARGET_SYS}' >> $script
- echo 'export PKG_CONFIG_PATH=${prefix}/${TARGET_SYS}${layout_libdir}/pkgconfig' >> $script
- echo 'export CONFIG_SITE=${prefix}/site-config' >> $script
- echo "alias opkg='LD_LIBRARY_PATH=${prefix}/lib ${prefix}/bin/opkg-cl -f ${sysconfdir}/opkg-sdk.conf -o ${prefix}'" >> $script
- echo "alias opkg-target='LD_LIBRARY_PATH=${prefix}/lib ${prefix}/bin/opkg-cl -f ${prefix}/${TARGET_SYS}${layout_sysconfdir}/opkg.conf -o ${prefix}/${TARGET_SYS}'" >> $script
+ echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKPATH}/${TARGET_SYS}' >> $script
+ echo 'export PKG_CONFIG_PATH=${SDKPATH}/${TARGET_SYS}${libdir}/pkgconfig' >> $script
+ echo 'export CONFIG_SITE=${SDKPATH}/site-config' >> $script
+ echo "alias opkg='LD_LIBRARY_PATH=${SDKPATH}/lib ${SDKPATH}/bin/opkg-cl -f ${SDKPATH}/${sysconfdir}/opkg-sdk.conf -o ${SDKPATH}'" >> $script
+ echo "alias opkg-target='LD_LIBRARY_PATH=${SDKPATH}/lib ${SDKPATH}/bin/opkg-cl -f ${SDKPATH}/${TARGET_SYS}${sysconfdir}/opkg.conf -o ${SDKPATH}/${TARGET_SYS}'" >> $script
# Add version information
- versionfile=${SDK_OUTPUT}/${prefix}/version
+ versionfile=${SDK_OUTPUT}/${SDKPATH}/version
touch $versionfile
echo 'Distro: ${DISTRO}' >> $versionfile
echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
diff --git a/recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
new file mode 100644
index 0000000000..65fab979b1
--- /dev/null
+++ b/recipes/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "Mobile Broadband Service Provider Database"
+SECTION = "network"
+LICENSE = "CCPD"
+PV = "gitr${SRCREV}"
+PR = "r0"
+
+SRC_URI = "git://git.gnome.org/mobile-broadband-provider-info;protocol=git"
+S = "${WORKDIR}/git"
+
+inherit autotools_stage
diff --git a/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb b/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb
index eb2027b384..c8a35c766b 100644
--- a/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb
+++ b/recipes/module-init-tools/module-init-tools-cross_3.2.2.bb
@@ -1,5 +1,5 @@
-LICENSE = "GPL"
-require module-init-tools_${PV}.bb
+
+require module-init-tools.inc
inherit cross
DEFAULT_PREFERENCE = "0"
PROVIDES += "virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}depmod-2.6"
diff --git a/recipes/module-init-tools/module-init-tools.inc b/recipes/module-init-tools/module-init-tools.inc
new file mode 100644
index 0000000000..59e93d4533
--- /dev/null
+++ b/recipes/module-init-tools/module-init-tools.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
+removing kernel modules for Linux (versions 2.5.48 and above). It serves \
+the same function that the modutils package serves for Linux 2.4."
+LICENSE = "GPL"
+SECTION = "base"
+PR = "r5"
+
+PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
+RDEPENDS_${PN} += "module-init-tools-depmod"
+
+FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
+FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
+ file://ignore_arch_directory;patch=1 \
+ file://modutils_extension;patch=1 \
+ file://no_man_rebuild;patch=1 \
+ file://manpagesopt;patch=1 \
+ file://module-init-tools-remove-index.patch;patch=1 "
+S = "${WORKDIR}/module-init-tools-${PV}"
+
+EXTRA_OECONF = "--disable-manpages"
+
+
+inherit autotools
diff --git a/recipes/module-init-tools/module-init-tools_3.2.1.bb b/recipes/module-init-tools/module-init-tools_3.2.1.bb
index 91c0efcd64..6481913ca7 100644
--- a/recipes/module-init-tools/module-init-tools_3.2.1.bb
+++ b/recipes/module-init-tools/module-init-tools_3.2.1.bb
@@ -1,30 +1,14 @@
-DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
-removing kernel modules for Linux (versions 2.5.48 and above). It serves \
-the same function that the modutils package serves for Linux 2.4."
-LICENSE = "GPL"
-SECTION = "base"
-PR = "r1"
-
-PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
-RDEPENDS_${PN} += "module-init-tools-depmod"
-
-FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
-FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+require module-init-tools.inc
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
file://ignore_arch_directory;patch=1 \
file://modutils_extension;patch=1 \
file://no_man_rebuild;patch=1 \
file://manpagesopt;patch=1 "
-S = "${WORKDIR}/module-init-tools-${PV}"
-
-EXTRA_OECONF = "--disable-manpages"
bindir = "/bin"
sbindir = "/sbin"
-inherit autotools
-
do_install() {
autotools_do_install
for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do
diff --git a/recipes/module-init-tools/module-init-tools_3.2.2.bb b/recipes/module-init-tools/module-init-tools_3.2.2.bb
index a56bac7a82..4e2cba8d6f 100644
--- a/recipes/module-init-tools/module-init-tools_3.2.2.bb
+++ b/recipes/module-init-tools/module-init-tools_3.2.2.bb
@@ -1,31 +1,8 @@
-DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
-removing kernel modules for Linux (versions 2.5.48 and above). It serves \
-the same function that the modutils package serves for Linux 2.4."
-LICENSE = "GPL"
-SECTION = "base"
-PR = "r5"
-
-PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
-RDEPENDS_${PN} += "module-init-tools-depmod"
-
-FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
-FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
-
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
- file://ignore_arch_directory;patch=1 \
- file://modutils_extension;patch=1 \
- file://no_man_rebuild;patch=1 \
- file://manpagesopt;patch=1 \
- file://module-init-tools-remove-index.patch;patch=1 "
-S = "${WORKDIR}/module-init-tools-${PV}"
-
-EXTRA_OECONF = "--disable-manpages"
+require module-init-tools.inc
bindir = "/bin"
sbindir = "/sbin"
-inherit autotools
-
do_install() {
autotools_do_install
for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do
diff --git a/recipes/module-init-tools/module-init-tools_3.4.bb b/recipes/module-init-tools/module-init-tools_3.4.bb
index caea00d194..0b94c3b317 100644
--- a/recipes/module-init-tools/module-init-tools_3.4.bb
+++ b/recipes/module-init-tools/module-init-tools_3.4.bb
@@ -1,29 +1,12 @@
-DESCRIPTION = "This package contains a set of programs for loading, inserting, and \
-removing kernel modules for Linux (versions 2.5.48 and above). It serves \
-the same function that the modutils package serves for Linux 2.4."
-LICENSE = "GPL"
-SECTION = "base"
-
-PR = "r1"
-
-PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
-RDEPENDS_${PN} += "module-init-tools-depmod"
-
-FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
-FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+require module-init-tools.inc
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
file://modutils_extension;patch=1 \
"
-S = "${WORKDIR}/module-init-tools-${PV}"
-
-EXTRA_OECONF = "--disable-manpages"
bindir = "/bin"
sbindir = "/sbin"
-inherit autotools
-
do_configure_prepend() {
sed -i -e /MAN5\ =/d -e /MAN8\ =/d Makefile.am
}
diff --git a/recipes/mplayer/files/disable-executable-stack-test.patch b/recipes/mplayer/files/disable-executable-stack-test.patch
index dc8871b6ae..466e62cc8d 100644
--- a/recipes/mplayer/files/disable-executable-stack-test.patch
+++ b/recipes/mplayer/files/disable-executable-stack-test.patch
@@ -19,12 +19,12 @@ at runtime.
-int main(void) { return 0; }
-EOF
-if cc_check -Wl,-z,noexecstack ; then
-- _ld_extra="-Wl,-z,noexecstack $_ld_extra"
+- extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
- echores "yes"
-else
- echores "no"
-fi
+echores "no"
- echocheck "ftello()"
- # if we don't have ftello use the osdep/ compatibility module
+ # Dynamic linking flags
+ # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
diff --git a/recipes/mplayer/files/mplayer-arm-pld.patch b/recipes/mplayer/files/mplayer-arm-pld.patch
new file mode 100644
index 0000000000..b10117e4b3
--- /dev/null
+++ b/recipes/mplayer/files/mplayer-arm-pld.patch
@@ -0,0 +1,18 @@
+Index: trunk/libmpeg2/motion_comp_arm_s.S
+===================================================================
+--- trunk.orig/libmpeg2/motion_comp_arm_s.S 2009-11-11 20:49:15.376079099 +0300
++++ trunk/libmpeg2/motion_comp_arm_s.S 2009-11-11 20:51:46.468064654 +0300
+@@ -18,6 +18,13 @@
+ @ along with mpeg2dec; if not, write to the Free Software
+ @ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
++#include "../config.h"
++
++#if !HAVE_PLD
++.macro pld reg
++.endm
++#endif
++
+
+ .text
+
diff --git a/recipes/mplayer/files/mplayer-lavc-arm.patch b/recipes/mplayer/files/mplayer-lavc-arm.patch
new file mode 100644
index 0000000000..8c2c832ab3
--- /dev/null
+++ b/recipes/mplayer/files/mplayer-lavc-arm.patch
@@ -0,0 +1,17 @@
+Index: trunk/libavcodec/arm/dsputil_arm.S
+===================================================================
+--- trunk.orig/libavcodec/arm/dsputil_arm.S 2009-11-11 22:16:37.216062301 +0300
++++ trunk/libavcodec/arm/dsputil_arm.S 2009-11-11 22:22:00.908058155 +0300
+@@ -29,6 +29,12 @@
+ .endm
+ #endif
+
++#ifndef __THUMB_INTERWORK__
++.macro bx reg
++ mov pc, \reg
++.endm
++#endif
++
+ #if HAVE_ARMV5TE
+ function ff_prefetch_arm, export=1
+ subs r2, r2, #1
diff --git a/recipes/mplayer/mplayer_svn.bb b/recipes/mplayer/mplayer_svn.bb
index 7d2f27aa3a..f9bad67a43 100644
--- a/recipes/mplayer/mplayer_svn.bb
+++ b/recipes/mplayer/mplayer_svn.bb
@@ -9,6 +9,8 @@ RDEPENDS = "mplayer-common"
LICENSE = "GPL"
SRC_URI = "svn://svn.mplayerhq.hu/mplayer;module=trunk \
file://makefile-nostrip-svn.patch;patch=1 \
+ file://mplayer-arm-pld.patch;patch=1 \
+ file://mplayer-lavc-arm.patch;patch=1 \
"
SRCREV = "29789"
diff --git a/recipes/musicbrainz/libmusicbrainz.inc b/recipes/musicbrainz/libmusicbrainz.inc
index 64a7f50794..dfd96fabbb 100644
--- a/recipes/musicbrainz/libmusicbrainz.inc
+++ b/recipes/musicbrainz/libmusicbrainz.inc
@@ -1,10 +1,9 @@
-DEFAULT_PREFERENCE = "-1"
-
DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. \
It allows you to access the data held on the MusicBrainz server."
HOMEPAGE = "http://musicbrainz.org"
LICENSE = "LGPL"
-DEPENDS = "expat neon"
+
+DEPENDS = "expat neon libdiscid"
SRC_URI = "ftp://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-${PV}.tar.gz"
diff --git a/recipes/mysql/mysql5_5.1.40.inc b/recipes/mysql/mysql5_5.1.40.inc
index aa69831397..28716747e6 100644
--- a/recipes/mysql/mysql5_5.1.40.inc
+++ b/recipes/mysql/mysql5_5.1.40.inc
@@ -41,7 +41,10 @@ do_stage() {
oe_libinstall -a -C libmysqld libmysqld ${STAGING_LIBDIR}
}
-do_stage_append() {
+SYSROOT_PREPROCESS_FUNCS += "mysql5_sysroot_preprocess"
+
+# We need to append this so it runs *after* binconfig's preprocess function
+mysql5_sysroot_preprocess () {
sed -i -es,^pkgincludedir=\'/usr/include/mysql\',pkgincludedir=\'${STAGING_INCDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
sed -i -es,^pkglibdir=\'/usr/lib/mysql\',pkglibdir=\'${STAGING_LIBDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
}
diff --git a/recipes/mysql/mysql_4.1.22.bb b/recipes/mysql/mysql_4.1.22.bb
index 9e5ff885f9..1dacff6781 100644
--- a/recipes/mysql/mysql_4.1.22.bb
+++ b/recipes/mysql/mysql_4.1.22.bb
@@ -38,9 +38,11 @@ do_stage() {
oe_libinstall -a -C libmysqld libmysqld ${STAGING_LIBDIR}
}
-do_stage_append() {
- sed -i -es,^pkgincludedir=\'/usr/include/mysql\',pkgincludedir=\'${STAGING_INCDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
- sed -i -es,^pkglibdir=\'/usr/lib/mysql\',pkglibdir=\'${STAGING_LIBDIR}\', ${STAGING_BINDIR_CROSS}/mysql_config
+SYSROOT_PREPROCESS_FUNCS += "mysqlmangle"
+
+mysqlmangle() {
+ sed -i -es,^pkgincludedir=\'/usr/include/mysql\',pkgincludedir=\'${STAGING_INCDIR}\', ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/mysql_config
+ sed -i -es,^pkglibdir=\'/usr/lib/mysql\',pkglibdir=\'${STAGING_LIBDIR}\', ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/mysql_config
}
do_install() {
diff --git a/recipes/perl/libfile-slurp-perl_9999.13.bb b/recipes/perl/libfile-slurp-perl_9999.13.bb
index c4c967d90c..5854761696 100644
--- a/recipes/perl/libfile-slurp-perl_9999.13.bb
+++ b/recipes/perl/libfile-slurp-perl_9999.13.bb
@@ -1,13 +1,11 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://search.cpan.org/~uri/"
-PR = "r0"
+PR = "r1"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/File-Slurp-${PV}.tar.gz"
S = "${WORKDIR}/File-Slurp-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/libhtml-mason-perl_1.35.bb b/recipes/perl/libhtml-mason-perl_1.35.bb
index 71e96005e8..dfc6f3cc87 100644
--- a/recipes/perl/libhtml-mason-perl_1.35.bb
+++ b/recipes/perl/libhtml-mason-perl_1.35.bb
@@ -16,6 +16,10 @@ SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/HTML-Mason-${PV}.
S = "${WORKDIR}/HTML-Mason-${PV}"
+do_stage() {
+ :
+}
+
inherit cpan_build
do_install_append () {
diff --git a/recipes/perl/libhtml-parser-perl-native_3.64.bb b/recipes/perl/libhtml-parser-perl-native_3.64.bb
new file mode 100644
index 0000000000..3760a422fa
--- /dev/null
+++ b/recipes/perl/libhtml-parser-perl-native_3.64.bb
@@ -0,0 +1,6 @@
+SECTION = "libs"
+
+require libhtml-parser-perl_${PV}.bb
+
+inherit native
+
diff --git a/recipes/perl/libhtml-parser-perl_3.64.bb b/recipes/perl/libhtml-parser-perl_3.64.bb
new file mode 100644
index 0000000000..122fba2dc2
--- /dev/null
+++ b/recipes/perl/libhtml-parser-perl_3.64.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "HTML Parser bits."
+SECTION = "libs"
+LICENSE = "Artistic|GPL"
+PR = "r0"
+
+RDEPENDS = "perl-module-test-more \
+ perl-module-xsloader \
+ perl-module-test-simple \
+ libhtml-tagset-perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-${PV}.tar.gz"
+
+S = "${WORKDIR}/HTML-Parser-${PV}"
+
+inherit cpan
diff --git a/recipes/perl/liblog-dispatch-perl_2.13.bb b/recipes/perl/liblog-dispatch-perl_2.13.bb
index ee4a2198c1..643deda664 100644
--- a/recipes/perl/liblog-dispatch-perl_2.13.bb
+++ b/recipes/perl/liblog-dispatch-perl_2.13.bb
@@ -7,4 +7,8 @@ SRC_URI = "http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Log-Dispatch-${PV
S = "${WORKDIR}/Log-Dispatch-${PV}"
+do_stage() {
+ :
+}
+
inherit cpan_build
diff --git a/recipes/perl/libmodule-build-perl_0.2805.bb b/recipes/perl/libmodule-build-perl_0.2805.bb
index 8a7ce9fa04..b7819fdebc 100644
--- a/recipes/perl/libmodule-build-perl_0.2805.bb
+++ b/recipes/perl/libmodule-build-perl_0.2805.bb
@@ -12,4 +12,8 @@ PR = "r5"
S = "${WORKDIR}/Module-Build-${PV}"
+do_stage() {
+ :
+}
+
inherit cpan_build
diff --git a/recipes/perl/libtermreadkey-perl_2.30.bb b/recipes/perl/libtermreadkey-perl_2.30.bb
index 3296aef4d8..4f2f26f471 100644
--- a/recipes/perl/libtermreadkey-perl_2.30.bb
+++ b/recipes/perl/libtermreadkey-perl_2.30.bb
@@ -1,13 +1,11 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://search.cpan.org/~jstowe/TermReadKey-2.30/"
-PR = "r0"
+PR = "r1"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-${PV}.tar.gz"
S = "${WORKDIR}/TermReadKey-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/libwww-mechanize-perl-native_1.60.bb b/recipes/perl/libwww-mechanize-perl-native_1.60.bb
new file mode 100644
index 0000000000..8718cd268e
--- /dev/null
+++ b/recipes/perl/libwww-mechanize-perl-native_1.60.bb
@@ -0,0 +1,6 @@
+SECTION = "libs"
+
+require libwww-mechanize-perl_${PV}.bb
+
+inherit native
+
diff --git a/recipes/perl/libwww-mechanize-perl_1.60.bb b/recipes/perl/libwww-mechanize-perl_1.60.bb
new file mode 100644
index 0000000000..e82cc498c1
--- /dev/null
+++ b/recipes/perl/libwww-mechanize-perl_1.60.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "WWW::Mechanize Handy web browsing in a Perl object"
+SECTION = "libs"
+LICENSE = "Perl"
+PR = "r0"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/WWW-Mechanize-${PV}.tar.gz"
+
+S = "${WORKDIR}/WWW-Mechanize-${PV}"
+
+inherit cpan
diff --git a/recipes/perl/libxml-parser-perl-native_2.36.bb b/recipes/perl/libxml-parser-perl-native_2.36.bb
new file mode 100644
index 0000000000..64758ad5f2
--- /dev/null
+++ b/recipes/perl/libxml-parser-perl-native_2.36.bb
@@ -0,0 +1,6 @@
+SECTION = "libs"
+
+require libxml-parser-perl_${PV}.bb
+
+inherit native
+
diff --git a/recipes/perl/libxml-twig-perl_3.33.bb b/recipes/perl/libxml-twig-perl_3.33.bb
index d828a63166..d688d2c372 100644
--- a/recipes/perl/libxml-twig-perl_3.33.bb
+++ b/recipes/perl/libxml-twig-perl_3.33.bb
@@ -2,13 +2,11 @@ SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://www.xmltwig.com/"
DEPENDS += "libxml-parser-perl"
-PR = "r1"
+PR = "r2"
SRC_URI = "http://www.angstrom-distribution.org/unstable/sources/XML-Twig-${PV}-upstream-keeps-changing-this-tarball-so-we-mirror-our-own.tar.gz"
S = "${WORKDIR}/XML-Twig-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/libxml-writer-perl_0.606.bb b/recipes/perl/libxml-writer-perl_0.606.bb
index 863e8e792c..776d338f0b 100644
--- a/recipes/perl/libxml-writer-perl_0.606.bb
+++ b/recipes/perl/libxml-writer-perl_0.606.bb
@@ -1,13 +1,11 @@
SECTION = "libs"
LICENSE = "Artistic|GPL"
HOMEPAGE = "http://search.cpan.org/dist/XML-Writer/"
-PR = "r1"
+PR = "r2"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JO/JOSEPHW/XML-Writer-${PV}.tar.gz"
S = "${WORKDIR}/XML-Writer-${PV}"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
inherit cpan
diff --git a/recipes/perl/perl-native_5.8.4.bb b/recipes/perl/perl-native_5.8.4.bb
index 69555e0fac..d3ecb67863 100644
--- a/recipes/perl/perl-native_5.8.4.bb
+++ b/recipes/perl/perl-native_5.8.4.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Perl is a popular scripting language."
HOMEPAGE = "http://www.perl.org/"
LICENSE = "Artistic|GPL"
-PR = "r3"
+PR = "r4"
SECTION = "libs"
inherit native
diff --git a/recipes/perl/perl-native_5.8.7.bb b/recipes/perl/perl-native_5.8.7.bb
index ebb10e5580..d8ccd0c33d 100644
--- a/recipes/perl/perl-native_5.8.7.bb
+++ b/recipes/perl/perl-native_5.8.7.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Perl is a popular scripting language."
HOMEPAGE = "http://www.perl.org/"
LICENSE = "Artistic|GPL"
-PR = "r5"
+PR = "r6"
SECTION = "libs"
inherit native
diff --git a/recipes/perl/perl-native_5.8.8.bb b/recipes/perl/perl-native_5.8.8.bb
index ba05406eb0..60a5cf5b0f 100644
--- a/recipes/perl/perl-native_5.8.8.bb
+++ b/recipes/perl/perl-native_5.8.8.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
SECTION = "libs"
LICENSE = "Artistic|GPL"
DEPENDS = "virtual/db-native gdbm-native"
-PR = "r14"
+PR = "r15"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}"
@@ -66,10 +66,9 @@ do_stage_append() {
# We need a hostperl link for building perl
ln -sf ${STAGING_BINDIR_NATIVE}/perl${PV} ${STAGING_BINDIR_NATIVE}/hostperl
# Store native config in non-versioned directory
- install -d ${STAGING_DIR}/${HOST_SYS}/perl \
- ${STAGING_LIBDIR_NATIVE}/perl/${PV}/CORE \
+ install -d ${STAGING_LIBDIR_NATIVE}/perl/${PV}/CORE \
${STAGING_DATADIR_NATIVE}/perl/${PV}/ExtUtils
- install config.sh ${STAGING_DIR}/${HOST_SYS}/perl
+ install config.sh ${STAGING_LIBDIR}/perl
# target configuration
install lib/Config.pm ${STAGING_LIBDIR_NATIVE}/perl/${PV}/
install lib/ExtUtils/typemap ${STAGING_DATADIR_NATIVE}/perl/${PV}/ExtUtils/
@@ -88,7 +87,7 @@ do_stage_append() {
}
do_stage_append_nylon() {
# get rid of definitions not supported by the gcc version we use for nylon...
- for i in ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy.pl ${STAGING_DIR}/${HOST_SYS}/perl/config.sh; do
+ for i in ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy.pl ${STAGING_LIBDIR}/perl/config.sh; do
perl -pi -e 's/-Wdeclaration-after-statement //g' ${i}
done
}
diff --git a/recipes/perl/perl.inc b/recipes/perl/perl.inc
index 9e20ae63e6..15ae55cf17 100644
--- a/recipes/perl/perl.inc
+++ b/recipes/perl/perl.inc
@@ -36,8 +36,8 @@ do_install() {
}
do_stage() {
- install -d ${STAGING_DIR}/${HOST_SYS}/perl/
- install config.sh ${STAGING_DIR}/${HOST_SYS}/perl/
+ install -d ${STAGING_LIBDIR}/perl/
+ install config.sh ${STAGING_LIBDIR}/perl/
}
PACKAGES_DYNAMIC = "perl-module-*"
diff --git a/recipes/perl/perl_5.8.4.bb b/recipes/perl/perl_5.8.4.bb
index 10a871c8dd..881a2acee5 100644
--- a/recipes/perl/perl_5.8.4.bb
+++ b/recipes/perl/perl_5.8.4.bb
@@ -1,6 +1,6 @@
require perl.inc
-PR = "r5"
+PR = "r6"
SRC_URI += "file://uclibc.patch;patch=1 \
file://config.sh-mipsel-linux \
diff --git a/recipes/perl/perl_5.8.7.bb b/recipes/perl/perl_5.8.7.bb
index 6589180ff2..5891670394 100644
--- a/recipes/perl/perl_5.8.7.bb
+++ b/recipes/perl/perl_5.8.7.bb
@@ -26,7 +26,7 @@ SRC_URI_append_powerpc += " ${GCCLINK_SRC}"
PARALLEL_MAKE = ""
-PR = "r22"
+PR = "r23"
do_configure() {
ln -sf ${HOSTPERL} ${STAGING_BINDIR_NATIVE}/hostperl
diff --git a/recipes/perl/perl_5.8.8.bb b/recipes/perl/perl_5.8.8.bb
index 35fcc83ccc..13e44556be 100644
--- a/recipes/perl/perl_5.8.8.bb
+++ b/recipes/perl/perl_5.8.8.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPL"
PRIORITY = "optional"
# We need gnugrep (for -I)
DEPENDS = "virtual/db perl-native grep-native"
-PR = "r29"
+PR = "r30"
# Major part of version
PVM = "5.8"
@@ -141,12 +141,11 @@ do_install() {
fi
}
do_stage() {
- install -d ${STAGING_DIR}/${HOST_SYS}/perl \
- ${STAGING_LIBDIR_NATIVE}/perl/${PV} \
+ install -d ${STAGING_LIBDIR_NATIVE}/perl/${PV} \
${STAGING_LIBDIR}/perl/${PV}/CORE \
${STAGING_DATADIR}/perl/${PV}/ExtUtils
# target config, used by cpan.bbclass to extract version information
- install config.sh ${STAGING_DIR}/${HOST_SYS}/perl/
+ install config.sh ${STAGING_LIBDIR}/perl/
# target configuration, used by native perl when cross-compiling
install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-target.pl
# target configuration
diff --git a/recipes/pingus/files/boost.patch b/recipes/pingus/files/boost.patch
new file mode 100644
index 0000000000..cdf2425575
--- /dev/null
+++ b/recipes/pingus/files/boost.patch
@@ -0,0 +1,13 @@
+Index: pingus-0.7.2/SConstruct
+===================================================================
+--- pingus-0.7.2.orig/SConstruct 2009-11-13 01:58:16.445278586 +0100
++++ pingus-0.7.2/SConstruct 2009-11-13 01:58:25.944023225 +0100
+@@ -476,7 +476,7 @@
+ env['optional_sources'] += ['src/input/xinput_driver.cpp',
+ 'src/input/xinput_device.cpp']
+
+- if not config.CheckLibWithHeader('boost_signals', 'boost/signals.hpp', 'c++'):
++ if not config.CheckLibWithHeader('boost_signals-mt', 'boost/signals.hpp', 'c++'):
+ fatal_error += " * library 'boost_signals' not found\n"
+
+ if not config.CheckLibWithHeader('png', 'png.h', 'c++'):
diff --git a/recipes/pingus/files/cheader.patch b/recipes/pingus/files/cheader.patch
new file mode 100644
index 0000000000..dee22409a7
--- /dev/null
+++ b/recipes/pingus/files/cheader.patch
@@ -0,0 +1,27 @@
+Index: pingus-0.7.2/src/input/evdev_device.cpp
+===================================================================
+--- pingus-0.7.2.orig/src/input/evdev_device.cpp 2009-11-13 02:02:22.730671880 +0100
++++ pingus-0.7.2/src/input/evdev_device.cpp 2009-11-13 02:05:02.494404553 +0100
+@@ -25,6 +25,8 @@
+ #include <stdexcept>
+ #include <iostream>
+ #include <errno.h>
++#include <cstring>
++#include <cstdio>
+
+ #include "evdev_device.hpp"
+
+Index: pingus-0.7.2/src/tinygettext/po_file_reader.cpp
+===================================================================
+--- pingus-0.7.2.orig/src/tinygettext/po_file_reader.cpp 2009-11-13 01:59:35.807355200 +0100
++++ pingus-0.7.2/src/tinygettext/po_file_reader.cpp 2009-11-13 02:02:13.407754735 +0100
+@@ -23,7 +23,8 @@
+ #include <errno.h>
+ #include <sstream>
+ #include <stdexcept>
+-#include <string.h>
++#include <cstring>
++#include <cstdio>
+ #include "iconv.hpp"
+ #include "po_file_reader.hpp"
+
diff --git a/recipes/pingus/pingus_0.7.2.bb b/recipes/pingus/pingus_0.7.2.bb
index a10131fa51..10f99bae0e 100644
--- a/recipes/pingus/pingus_0.7.2.bb
+++ b/recipes/pingus/pingus_0.7.2.bb
@@ -1,9 +1,9 @@
DESCRIPTION = "Pingus is a free Lemmings clone."
-DEPENDS = "virtual/libsdl libsdl-image libsdl-mixer boost libpng"
+DEPENDS = "virtual/libiconv virtual/libsdl libsdl-image libsdl-mixer boost libpng"
LICENSE = "GPL"
HOMEPAGE = "http://pingus.seul.org/"
SECTION = "x11/games"
-PR = "r1"
+PR = "r2"
ARM_INSTRUCTION_SET = "arm"
@@ -12,6 +12,8 @@ inherit scons
SRC_URI = "\
http://pingus.seul.org/files/pingus-0.7.2.tar.bz2 \
file://sconstruct.diff;patch=1 \
+ file://boost.patch;patch=1 \
+ file://cheader.patch;patch=1 \
file://pingus.desktop \
file://pingus.png \
file://pingus-gta012.sh \
@@ -36,6 +38,10 @@ do_install() {
fi
}
+do_stage() {
+ :
+}
+
# Account for 1337 script in do_install
PACKAGE_ARCH_om-gta01 = "${MACHINE_ARCH}"
PACKAGE_ARCH_om-gta02 = "${MACHINE_ARCH}"
diff --git a/recipes/pkgconfig/pkgconfig.inc b/recipes/pkgconfig/pkgconfig.inc
index 495403eaf5..cb6bd0256e 100644
--- a/recipes/pkgconfig/pkgconfig.inc
+++ b/recipes/pkgconfig/pkgconfig.inc
@@ -21,6 +21,6 @@ do_configure_prepend () {
install -m 0644 ${WORKDIR}/glibconfig-sysdefs.h glib-1.2.*/
}
-do_stage_prepend() {
+do_stage() {
install -d -m 0755 ${STAGING_LIBDIR}/pkgconfig
}
diff --git a/recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch b/recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch
new file mode 100644
index 0000000000..bd2ba46d2f
--- /dev/null
+++ b/recipes/povray/povray-3.6.1+3.7.0-beta25b/boost.patch
@@ -0,0 +1,82 @@
+Index: povray-3.7.0.beta.25b/source/backend/support/taskqueue.h
+===================================================================
+--- povray-3.7.0.beta.25b.orig/source/backend/support/taskqueue.h 2009-11-11 21:18:50.066527987 +0100
++++ povray-3.7.0.beta.25b/source/backend/support/taskqueue.h 2009-11-11 21:20:14.249441749 +0100
+@@ -98,6 +98,7 @@
+
+ #include <boost/thread.hpp>
+ #include <boost/shared_ptr.hpp>
++#include <boost/thread/condition.hpp>
+
+ #include "base/povmscpp.h"
+ #include "backend/support/task.h"
+Index: povray-3.7.0.beta.25b/source/backend/support/task.cpp
+===================================================================
+--- povray-3.7.0.beta.25b.orig/source/backend/support/task.cpp 2009-11-11 21:21:32.645269202 +0100
++++ povray-3.7.0.beta.25b/source/backend/support/task.cpp 2009-11-11 21:22:52.322759257 +0100
+@@ -241,7 +241,7 @@
+ FatalErrorHandler(e);
+ failed = e.code(kUncategorizedError);
+ }
+- catch(exception& e)
++ catch(std::exception& e)
+ {
+ FatalErrorHandler(POV_EXCEPTION_STRING(e.what()));
+ failed = kUncategorizedError;
+@@ -266,7 +266,7 @@
+ FatalErrorHandler(e);
+ failed = e.code(kUncategorizedError);
+ }
+- catch(exception& e)
++ catch(std::exception& e)
+ {
+ FatalErrorHandler(POV_EXCEPTION_STRING(e.what()));
+ failed = kUncategorizedError;
+@@ -291,7 +291,7 @@
+ {
+ FatalErrorHandler(e);
+ }
+- catch(exception& e)
++ catch(std::exception& e)
+ {
+ FatalErrorHandler(POV_EXCEPTION_STRING(e.what()));
+ }
+Index: povray-3.7.0.beta.25b/vfe/vfesession.h
+===================================================================
+--- povray-3.7.0.beta.25b.orig/vfe/vfesession.h 2009-11-11 21:24:05.381913997 +0100
++++ povray-3.7.0.beta.25b/vfe/vfesession.h 2009-11-11 21:27:19.715316358 +0100
+@@ -94,6 +94,8 @@
+ #ifndef __VFESESSION_H__
+ #define __VFESESSION_H__
+
++#include <boost/thread/condition.hpp>
++
+ namespace vfe
+ {
+ using namespace pov_frontend;
+Index: povray-3.7.0.beta.25b/vfe/vfecontrol.cpp
+===================================================================
+--- povray-3.7.0.beta.25b.orig/vfe/vfecontrol.cpp 2009-11-11 21:27:33.098560840 +0100
++++ povray-3.7.0.beta.25b/vfe/vfecontrol.cpp 2009-11-11 21:28:18.396060074 +0100
+@@ -430,7 +430,7 @@
+ if (!m_Frontend->Start (m_RenderOptions.m_Options))
+ return (m_LastError = vfeFailedToSendRenderStart) ;
+ }
+- catch (exception& e)
++ catch (std::exception& e)
+ {
+ if (dynamic_cast<pov_base::Exception *> (&e) != NULL)
+ m_RenderErrorCode = dynamic_cast<pov_base::Exception *> (&e)->code() ;
+Index: povray-3.7.0.beta.25b/vfe/vfesession.cpp
+===================================================================
+--- povray-3.7.0.beta.25b.orig/vfe/vfesession.cpp 2009-11-11 21:29:12.798555641 +0100
++++ povray-3.7.0.beta.25b/vfe/vfesession.cpp 2009-11-11 21:30:29.119796942 +0100
+@@ -695,7 +695,7 @@
+ m_Failed = true;
+ m_LastError = vfeCaughtException;
+ }
+- catch (exception&)
++ catch (std::exception&)
+ {
+ m_Failed = true;
+ m_LastError = vfeCaughtException;
diff --git a/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb b/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb
index 5ca797cef6..82eacaee7c 100644
--- a/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb
+++ b/recipes/povray/povray_3.6.1+3.7.0-beta25b.bb
@@ -4,12 +4,13 @@ SECTION = "console/graphics"
LICENSE = "povray"
DEPENDS = "virtual/libx11 boost zlib jpeg libpng tiff"
-PR = "r1"
+PR = "r2"
#We apply a patch that subverts the checks for jpeg, zlib, png and tiff because we know OE has the required versions, but it is still a hack.
SRC_URI = "http://www.povray.org/redirect/www.povray.org/beta/source/povray-src-3.7.0.beta.25b.tar.bz2 \
file://configure-cross-hack.patch;patch=1 \
file://gcc43.diff;patch=1 \
+ file://boost.patch;patch=1 \
"
S = "${WORKDIR}/povray-3.7.0.beta.25b"
diff --git a/recipes/ptpd/ptpd_1.0.0.bb b/recipes/ptpd/ptpd_1.0.0.bb
new file mode 100644
index 0000000000..a5263a07ef
--- /dev/null
+++ b/recipes/ptpd/ptpd_1.0.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Precision Time Protocol (PTP) as defined by the IEEE 1588 standard"
+HOMEPAGE = "http://sourceforge.net/projects/ptpd"
+LICENSE = "BSD"
+SECTION = "network"
+PR = "r0"
+
+SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${PV}/ptpd-${PV}.tar.gz"
+S = "${WORKDIR}/ptpd-${PV}/src"
+
+do_install() {
+ install -d ${D}${bindir} ${D}${mandir}/man8
+ install -m 4555 ptpd ${D}${bindir}
+ install -m 644 ptpd.8 ${D}${mandir}/man8
+}
diff --git a/recipes/qt4/qt4-embedded_4.4.3.bb b/recipes/qt4/qt4-embedded_4.4.3.bb
index fce2e657ee..075aafd936 100644
--- a/recipes/qt4/qt4-embedded_4.4.3.bb
+++ b/recipes/qt4/qt4-embedded_4.4.3.bb
@@ -1,3 +1,3 @@
require qt4-embedded.inc
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
diff --git a/recipes/qt4/qt4-x11-free_4.5.2.bb b/recipes/qt4/qt4-x11-free_4.5.2.bb
index 09f63363f0..7aebd68320 100644
--- a/recipes/qt4/qt4-x11-free_4.5.2.bb
+++ b/recipes/qt4/qt4-x11-free_4.5.2.bb
@@ -1,5 +1,5 @@
require qt4-x11-free.inc
LICENSE = "LGPLv2.1 GPLv3"
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
SRC_URI += "file://hack-out-pg_config.patch;patch=1"
diff --git a/recipes/shr/ophonekitd_git.bb b/recipes/shr/ophonekitd_git.bb
deleted file mode 100644
index ed561c7c75..0000000000
--- a/recipes/shr/ophonekitd_git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Ophonekitd daemon"
-HOMEPAGE = "http://shr-project.org/"
-LICENSE = "GPL"
-SECTION = "x11/applications"
-DEPENDS += " dbus-glib libframeworkd-glib libframeworkd-phonegui sqlite3"
-PV = "0.0.2+gitr${SRCREV}"
-PR = "r18"
-
-SRC_URI = "git://git.shr-project.org/repo/shr.git;protocol=http;branch=master"
-S = "${WORKDIR}/git/${PN}"
-
-inherit autotools
-
-do_install_append() {
- install -d ${D}${sysconfdir}/X11/Xsession.d/
- install -d ${D}${sysconfdir}/dbus-1/system.d/
- install -d ${D}${datadir}/ophonekitd/
- install -d ${D}${localstatedir}/db
- install -m 0755 ${S}/data/80ophonekitd ${D}${sysconfdir}/X11/Xsession.d/
- install -m 0755 ${S}/data/ophonekitd.conf ${D}${sysconfdir}/dbus-1/system.d/
-}
-
-FILES_${PN} += "${datadir} ${sysconfdir}"
-
diff --git a/recipes/tcltk/files/tcl-add-soname.patch b/recipes/tcltk/files/tcl-add-soname.patch
index 951244327b..38762644cd 100644
--- a/recipes/tcltk/files/tcl-add-soname.patch
+++ b/recipes/tcltk/files/tcl-add-soname.patch
@@ -1,14 +1,19 @@
-Patch by Chris Waters removes -rpath from search flags and adds -soname
-to library build options.
-
---- tcl8.4-8.4.19.orig/unix/configure
-+++ tcl8.4-8.4.19/unix/configure
-@@ -3072,12 +3072,15 @@
+--- clean/tcl8.4.19/unix/configure 2008-04-17 21:29:49.000000000 +0100
++++ tcl8.4.19/unix/configure 2009-11-13 11:46:36.000000000 +0000
+@@ -3065,6 +3065,7 @@
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
++ SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.so.0'
+
+ CFLAGS_OPTIMIZE=-O2
+ # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+@@ -3072,12 +3073,15 @@
# get rid of the warnings.
#CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
+ # following line added by CW for Debian GNU/Linux
-+ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0"
++ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}"
+
if test "$have_dl" = yes; then
SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
@@ -20,9 +25,26 @@ to library build options.
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
else
ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
---- tcl8.4-8.4.19.orig/unix/tcl.m4
-+++ tcl8.4-8.4.19/unix/tcl.m4
-@@ -1346,12 +1346,15 @@
+@@ -4299,7 +4303,7 @@
+
+ if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then
+ LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+- MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
++ MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} ; ln -s $(LIB_FILE) `basename $(LIB_FILE) .so.0`\${SHLIB_SUFFIX}'
+ INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
+ else
+ LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
+--- clean/tcl8.4.19/unix/tcl.m4 2008-04-17 21:29:49.000000000 +0100
++++ tcl8.4.19/unix/tcl.m4 2009-11-13 11:53:57.000000000 +0000
+@@ -1337,6 +1337,7 @@
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
++ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.0'
+
+ CFLAGS_OPTIMIZE=-O2
+ # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+@@ -1344,12 +1345,15 @@
# get rid of the warnings.
#CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
@@ -39,3 +61,12 @@ to library build options.
LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
else
AC_CHECK_HEADER(dld.h, [
+@@ -2117,7 +2121,7 @@
+
+ if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then
+ LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+- MAKE_LIB='${SHLIB_LD} -o [$]@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
++ MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} ; ln -s $(LIB_FILE) `basename $(LIB_FILE) .so.0`\${SHLIB_SUFFIX}'
+ INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
+ else
+ LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
diff --git a/recipes/tcltk/tcl-native_8.4.19.bb b/recipes/tcltk/tcl-native_8.4.19.bb
index a2d5efae42..ca8ab612fd 100644
--- a/recipes/tcltk/tcl-native_8.4.19.bb
+++ b/recipes/tcltk/tcl-native_8.4.19.bb
@@ -9,7 +9,7 @@ do_stage() {
install -d ${STAGING_BINDIR}/
install -m 0755 tclConfig.sh ${STAGING_BINDIR}
install -m 0755 tclsh ${STAGING_BINDIR}/tclsh8.4
- ln -s tclsh8.4 ${STAGING_BINDIR}/tclsh
+ ln -s -f tclsh8.4 ${STAGING_BINDIR}/tclsh
cd ..
for dir in compat generic unix
do
diff --git a/recipes/tcltk/tcl_8.4.19.bb b/recipes/tcltk/tcl_8.4.19.bb
index e70a2c861c..dc71db9c72 100644
--- a/recipes/tcltk/tcl_8.4.19.bb
+++ b/recipes/tcltk/tcl_8.4.19.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Tool Command Language"
LICENSE = "tcl"
SECTION = "devel/tcltk"
HOMEPAGE = "http://tcl.sourceforge.net"
-PR = "r2"
+PR = "r3"
SRC_URI = "\
${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \
@@ -44,8 +44,6 @@ do_stage() {
do_install() {
autotools_do_install
- mv libtcl8.4.so libtcl8.4.so.0
- oe_libinstall -so libtcl8.4 ${D}${libdir}
ln -sf ./tclsh8.4 ${D}${bindir}/tclsh
}
diff --git a/recipes/udev/udev_141.bb b/recipes/udev/udev_141.bb
index a0e0381549..b54b059516 100644
--- a/recipes/udev/udev_141.bb
+++ b/recipes/udev/udev_141.bb
@@ -6,7 +6,7 @@ LICENSE = "GPL"
# Untested
DEFAULT_PREFERENCE = "-1"
-PR = "r13"
+PR = "r15"
# needed for init.d script
RDEPENDS_${PN} += "udev-utils"
@@ -104,4 +104,12 @@ do_stage_append() {
install -m 0644 ${S}/extras/volume_id/lib/libvolume_id.h ${STAGING_INCDIR}
oe_libinstall -C extras/volume_id/lib -so libvolume_id ${STAGING_LIBDIR}
oe_libinstall -C udev/lib -so libudev ${STAGING_LIBDIR}
+ # Since we change exec_prefix above, autotools_stage_all will not see the .pc files
+ # When we upgrade to 145 with the path bugs fixed we can drop all this (see poky)
+ install -d ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
+ install ${S}/extras/volume_id/lib/libvolume_id.pc ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
+ install ${S}/udev/lib/libudev.pc ${STAGING_DIR_TARGET}${prefix}${libdir}/pkgconfig/
+ install -d ${STAGING_DIR_TARGET}${prefix}${includedir}/
+ install ${S}/extras/volume_id/lib/libvolume_id.h ${STAGING_DIR_TARGET}${prefix}${includedir}/
+ install ${S}/udev/lib/libudev.h ${STAGING_DIR_TARGET}${prefix}${includedir}/
}
diff --git a/recipes/vala/vala-native_git.bb b/recipes/vala/vala-native_git.bb
deleted file mode 100644
index 698ad4a301..0000000000
--- a/recipes/vala/vala-native_git.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require vala.inc
-inherit native
-
-DEPENDS = "glib-2.0-native"
-# vala from git always needs the latest released version to compile itself
-PV = "0.7.0-fso1-gitr${SRCREV}"
-
-SRC_URI = "\
- ${FREESMARTPHONE_GIT}/vala-lang;protocol=git;branch=pending-upstream-move \
-"
-S = "${WORKDIR}/git"
diff --git a/recipes/wt/wt3-3.0.0/noqt.patch b/recipes/wt/wt3-3.0.0/noqt.patch
new file mode 100644
index 0000000000..48231246d3
--- /dev/null
+++ b/recipes/wt/wt3-3.0.0/noqt.patch
@@ -0,0 +1,19 @@
+Index: wt-3.0.0/CMakeLists.txt
+===================================================================
+--- wt-3.0.0.orig/CMakeLists.txt 2009-11-12 18:50:12.087842114 +0100
++++ wt-3.0.0/CMakeLists.txt 2009-11-12 18:50:42.023261611 +0100
+@@ -111,10 +111,10 @@
+ INCLUDE(cmake/WtFindSsl.txt)
+ INCLUDE(cmake/WtFindMysqlpp.txt)
+
+-FIND_PACKAGE(Qt4)
+-IF(QT_FOUND)
+- INCLUDE(${QT_USE_FILE})
+-ENDIF(QT_FOUND)
++#FIND_PACKAGE(Qt4)
++#IF(QT_FOUND)
++# INCLUDE(${QT_USE_FILE})
++#ENDIF(QT_FOUND)
+
+ # Boost is used nearly everywhere, so we can put these here
+ INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIRS})
diff --git a/recipes/wt/wt3-3.0.0/wgooglemap.patch b/recipes/wt/wt3-3.0.0/wgooglemap.patch
new file mode 100644
index 0000000000..6827afbbe7
--- /dev/null
+++ b/recipes/wt/wt3-3.0.0/wgooglemap.patch
@@ -0,0 +1,17 @@
+Index: wt-3.0.0/src/Wt/WGoogleMap.C
+===================================================================
+--- wt-3.0.0.orig/src/Wt/WGoogleMap.C 2009-09-01 17:46:54.000000000 +0200
++++ wt-3.0.0/src/Wt/WGoogleMap.C 2009-11-12 16:23:39.614976154 +0100
+@@ -26,6 +26,12 @@
+ using std::min;
+ using std::max;
+
++#if not defined(_GLIBCXX_HAVE__SINL) && not defined(acosl)
++#define cosl cos
++#define acosl acos
++#define sinl sin
++#endif
++
+ #ifndef M_PI
+ #define M_PI 3.14159265358979323846
+ #endif
diff --git a/recipes/wt/wt3.inc b/recipes/wt/wt3.inc
new file mode 100644
index 0000000000..1734212f63
--- /dev/null
+++ b/recipes/wt/wt3.inc
@@ -0,0 +1,29 @@
+DESCRIPTION = "A C++ Web Toolkit"
+PRIORITY = "optional"
+SECTION = "devel"
+LICENSE = "GPL"
+HOMEPAGE = "http://www.webtoolkit.eu/wt"
+DEPENDS = "boost zlib openssl"
+
+INC_PR = "r0"
+
+# package wt3 is for wt 2.99 and wt 3.*
+# the api of these versions is incompatible with 2.*
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/witty/wt-${PV}.tar.gz \
+ file://ext.patch;patch=1 \
+ file://wgooglemap.patch;patch=1"
+
+CXXFLAGS += "-Dsinl=sin -Dcosl=cos -Dasinl=asin"
+
+FILES_${PN} += "${datadir}/Wt"
+FILES_${PN}-dev += "${datadir}/cmake-2.*"
+
+S = "${WORKDIR}/wt-${PV}"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DBOOST_DIR=${STAGING_DIR_HOST}${prefix} \
+ -DUseQt4=0 \
+ "
+
diff --git a/recipes/wt/wt3/cheader.patch b/recipes/wt/wt3/cheader.patch
new file mode 100644
index 0000000000..6f45b1a27d
--- /dev/null
+++ b/recipes/wt/wt3/cheader.patch
@@ -0,0 +1,24 @@
+Index: wt-2.99.0/src/Wt/Ext/Widget.C
+===================================================================
+--- wt-2.99.0.orig/src/Wt/Ext/Widget.C 2009-11-12 16:13:54.337530490 +0100
++++ wt-2.99.0/src/Wt/Ext/Widget.C 2009-11-12 16:14:35.268780586 +0100
+@@ -16,6 +16,7 @@
+ #include <iostream>
+ #include <sstream>
+ #include <cstring>
++#include <cstdio>
+
+ namespace Wt {
+
+Index: wt-2.99.0/src/Wt/WAbstractItemModel.C
+===================================================================
+--- wt-2.99.0.orig/src/Wt/WAbstractItemModel.C 2009-11-12 16:01:30.927610427 +0100
++++ wt-2.99.0/src/Wt/WAbstractItemModel.C 2009-11-12 16:03:33.458430052 +0100
+@@ -6,6 +6,7 @@
+
+ #include <boost/lexical_cast.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
++#include <cstdio>
+
+ #include "Wt/WModelIndex"
+ #include "Wt/WAbstractItemModel"
diff --git a/recipes/wt/wt3-2.99.0/ext.patch b/recipes/wt/wt3/ext.patch
index 89246ebbf6..89246ebbf6 100644
--- a/recipes/wt/wt3-2.99.0/ext.patch
+++ b/recipes/wt/wt3/ext.patch
diff --git a/recipes/wt/wt3_2.99.0.bb b/recipes/wt/wt3_2.99.0.bb
index fea28494ca..ccfbc31dd8 100644
--- a/recipes/wt/wt3_2.99.0.bb
+++ b/recipes/wt/wt3_2.99.0.bb
@@ -1,41 +1,10 @@
-DESCRIPTION = "A C++ Web Toolkit"
-PRIORITY = "optional"
-SECTION = "devel"
-LICENSE = "GPL"
-HOMEPAGE = "http://www.webtoolkit.eu/wt"
-DEPENDS = "boost zlib openssl"
-PR = "r0"
+require wt3.inc
-# package wt3 is for wt 2.99 and wt 3.*
-# the api of these versions is incompatible with 2.*
+PR = "${INC_PR}.1"
-SRC_URI = "${SOURCEFORGE_MIRROR}/witty/wt-${PV}.tar.gz \
- file://src.patch;patch=1 \
- file://ext.patch;patch=1 \
- file://wgooglemap.patch;patch=1"
-
-CXXFLAGS += "-Dsinl=sin -Dcosl=cos -Dasinl=asin"
-
-FILES_${PN} += "${datadir}/Wt"
-FILES_${PN}-dev += "${datadir}/cmake-2.*"
-
-S = "${WORKDIR}/wt-${PV}"
-
-inherit cmake
-
-STAGE_TEMP = "${WORKDIR}/temp-staging"
+SRC_URI += "file://src.patch;patch=1 \
+ "
do_configure_append() {
- ${BUILD_CXX} ${BUILD_CXXFLAGS} -o src/filetostring src/web/skeleton/FileToString.C
-}
-
-do_stage() {
- rm -rf ${STAGE_TEMP}
- mkdir -p ${STAGE_TEMP}
- oe_runmake DESTDIR="${STAGE_TEMP}" install
- cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR}
- cp -pPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR}
- cp -pPR ${STAGE_TEMP}/${datadir}/cmake-2.* ${STAGING_DATADIR}
- rm -rf ${STAGE_TEMP}
+ ${BUILD_CXX} ${BUILD_CXXFLAGS} -o src/filetostring src/web/skeleton/FileToString.C
}
-
diff --git a/recipes/wt/wt3_3.0.0.bb b/recipes/wt/wt3_3.0.0.bb
new file mode 100644
index 0000000000..665590a7d4
--- /dev/null
+++ b/recipes/wt/wt3_3.0.0.bb
@@ -0,0 +1,6 @@
+require wt3.inc
+
+PR = "${INC_PR}.1"
+
+SRC_URI += "file://noqt.patch;patch=1"
+
diff --git a/recipes/xmltv/files/Makefile.PL.patch b/recipes/xmltv/files/Makefile.PL.patch
new file mode 100644
index 0000000000..7acc2cbf8c
--- /dev/null
+++ b/recipes/xmltv/files/Makefile.PL.patch
@@ -0,0 +1,14 @@
+Index: xmltv-0.5.56/Makefile.PL
+===================================================================
+--- xmltv-0.5.56.orig/Makefile.PL
++++ xmltv-0.5.56/Makefile.PL
+@@ -777,8 +777,7 @@ END
+ die;
+ }
+
+- $info->{install} =
+- ask(0, $msg, not $missing);
++ $info->{install} = not $missing;
+ }
+ }
+ }
diff --git a/recipes/xmltv/xmltv_0.5.56.bb b/recipes/xmltv/xmltv_0.5.56.bb
index 70005d70f4..842ef5fbd1 100644
--- a/recipes/xmltv/xmltv_0.5.56.bb
+++ b/recipes/xmltv/xmltv_0.5.56.bb
@@ -1,14 +1,35 @@
DESCRIPTION="prerequisites for xmltv"
PARALLEL_MAKE = ""
-SRC_URI="http://downloads.sourceforge.net/xmltv/xmltv-${PV}.tar.bz2"
+SRC_URI="http://downloads.sourceforge.net/xmltv/xmltv-${PV}.tar.bz2 \
+ file://Makefile.PL.patch;patch=1"
+RDEPENDS = "perl libxml-parser-perl libwww-perl libdate-manip-perl \
+ libxml-twig-perl libxml-writer-perl libfile-slurp-perl \
+ libtermreadkey-perl libarchive-zip-perl libio-zlib-perl \
+ libdate-manip-perl \
+ libhtml-treebuilder-perl libwww-mechanize-perl"
DEPENDS = "perl libxml-parser-perl-native libwww-perl-native libdate-manip-perl-native \
libxml-twig-perl-native libxml-writer-perl-native libfile-slurp-perl-native \
- libtermreadkey-perl-native"
+ libtermreadkey-perl-native libarchive-zip-perl-native libio-zlib-perl-native \
+ libdate-manip-perl-native \
+ libhtml-treebuilder-perl-native libwww-mechanize-perl-native"
-PR = "r0"
+PR = "r1"
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+# cpan does not work, it installs things in the perl work dir iso the xmltv work dir
+# root cause are bad definitions in perl/config.sh, but I don't know what they should be
+# so for now commented out the cpan stuff and do the work myself.
+#EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-inherit cpan
+#inherit cpan
+
+FILES_${PN} += "${libdir}"
+
+do_configure() {
+ perl Makefile.PL PREFIX=/usr
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/recipes/xorg-app/xterm_207.bb b/recipes/xorg-app/xterm_207.bb
index f8ed913117..0f31f41de3 100644
--- a/recipes/xorg-app/xterm_207.bb
+++ b/recipes/xorg-app/xterm_207.bb
@@ -10,12 +10,12 @@ inherit autotools pkgconfig
FILES_${PN} += " /usr/lib/X11"
-#EXTRA_OERECONF = " -I${S}/xterm.m4"
-EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR} FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config --disable-imake"
+EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
+ --x-libraries=${STAGING_LIBDIR} \
+ FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
+ --disable-imake \
+ --disable-setuid"
-#do_configure_prepend () {
-# mv ${S}/aclocal.m4 ${S}/xterm.m4
-#}
do_configure() {
sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
diff --git a/recipes/xorg-app/xterm_251.bb b/recipes/xorg-app/xterm_251.bb
new file mode 100644
index 0000000000..004679e3b7
--- /dev/null
+++ b/recipes/xorg-app/xterm_251.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "xterm is the standard terminal emulator for the X Window System."
+SECTION = "x11/applications"
+LICENSE = "MIT-X"
+
+DEPENDS = "libxaw xproto virtual/libx11 xextproto xext xau libxpm ncurses"
+
+SRC_URI = "ftp://invisible-island.net/xterm/${PN}-${PV}.tgz"
+
+inherit autotools pkgconfig
+
+FILES_${PN} += " /usr/lib/X11"
+
+EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
+ --x-libraries=${STAGING_LIBDIR} \
+ FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
+ --disable-imake \
+ --disable-setuid"
+
+do_configure() {
+
+ sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
+
+ oe_runconf
+}
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch b/recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch
deleted file mode 100644
index 227b95e87d..0000000000
--- a/recipes/xorg-lib/pixman/0001-ARM-Removal-of-unused-broken-NEON-code.patch
+++ /dev/null
@@ -1,830 +0,0 @@
-From 2761591638f8c56732398b1fc6cf4bc7ca5005fd Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 27 Jul 2009 01:21:26 +0300
-Subject: [PATCH 1/7] ARM: Removal of unused/broken NEON code
-
----
- pixman/pixman-arm-neon.c | 786 ----------------------------------------------
- 1 files changed, 0 insertions(+), 786 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 0a29e50..9caef61 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -1901,710 +1901,6 @@ pixman_fill_neon (uint32_t *bits,
- #endif
- }
-
--/* TODO: is there a more generic way of doing this being introduced? */
--#define NEON_SCANLINE_BUFFER_PIXELS (1024)
--
--static inline void
--neon_quadword_copy (void * dst,
-- void * src,
-- uint32_t count, /* of quadwords */
-- uint32_t trailer_count /* of bytes */)
--{
-- uint8_t *t_dst = dst, *t_src = src;
--
-- /* Uses aligned multi-register loads to maximise read bandwidth
-- * on uncached memory such as framebuffers
-- * The accesses do not have the aligned qualifiers, so that the copy
-- * may convert between aligned-uncached and unaligned-cached memory.
-- * It is assumed that the CPU can infer alignedness from the address.
-- */
--
--#ifdef USE_GCC_INLINE_ASM
--
-- asm volatile (
-- " cmp %[count], #8 \n"
-- " blt 1f @ skip oversized fragments \n"
-- "0: @ start with eight quadwords at a time \n"
-- " sub %[count], %[count], #8 \n"
-- " vld1.8 {d16, d17, d18, d19}, [%[src]]! \n"
-- " vld1.8 {d20, d21, d22, d23}, [%[src]]! \n"
-- " vld1.8 {d24, d25, d26, d27}, [%[src]]! \n"
-- " vld1.8 {d28, d29, d30, d31}, [%[src]]! \n"
-- " cmp %[count], #8 \n"
-- " vst1.8 {d16, d17, d18, d19}, [%[dst]]! \n"
-- " vst1.8 {d20, d21, d22, d23}, [%[dst]]! \n"
-- " vst1.8 {d24, d25, d26, d27}, [%[dst]]! \n"
-- " vst1.8 {d28, d29, d30, d31}, [%[dst]]! \n"
-- " bge 0b \n"
-- "1: @ four quadwords \n"
-- " tst %[count], #4 \n"
-- " beq 2f @ skip oversized fragment \n"
-- " vld1.8 {d16, d17, d18, d19}, [%[src]]! \n"
-- " vld1.8 {d20, d21, d22, d23}, [%[src]]! \n"
-- " vst1.8 {d16, d17, d18, d19}, [%[dst]]! \n"
-- " vst1.8 {d20, d21, d22, d23}, [%[dst]]! \n"
-- "2: @ two quadwords \n"
-- " tst %[count], #2 \n"
-- " beq 3f @ skip oversized fragment \n"
-- " vld1.8 {d16, d17, d18, d19}, [%[src]]! \n"
-- " vst1.8 {d16, d17, d18, d19}, [%[dst]]! \n"
-- "3: @ one quadword \n"
-- " tst %[count], #1 \n"
-- " beq 4f @ skip oversized fragment \n"
-- " vld1.8 {d16, d17}, [%[src]]! \n"
-- " vst1.8 {d16, d17}, [%[dst]]! \n"
-- "4: @ end \n"
--
-- /* Clobbered input registers marked as input/outputs */
-- : [dst] "+r" (t_dst), [src] "+r" (t_src), [count] "+r" (count)
--
-- /* No unclobbered inputs */
-- :
--
-- /* Clobbered vector registers */
-- : "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23", "d24", "d25",
-- "d26", "d27", "d28", "d29", "d30", "d31", "cc", "memory");
--
--#else
--
-- while (count >= 8)
-- {
-- uint8x16x4_t t1 = vld4q_u8 (t_src);
-- uint8x16x4_t t2 = vld4q_u8 (t_src + sizeof(uint8x16x4_t));
--
-- t_src += sizeof(uint8x16x4_t) * 2;
-- vst4q_u8 (t_dst, t1);
-- vst4q_u8 (t_dst + sizeof(uint8x16x4_t), t2);
-- t_dst += sizeof(uint8x16x4_t) * 2;
-- count -= 8;
-- }
--
-- if (count & 4)
-- {
-- uint8x16x4_t t1 = vld4q_u8 (t_src);
--
-- t_src += sizeof(uint8x16x4_t);
-- vst4q_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x16x4_t);
-- }
--
-- if (count & 2)
-- {
-- uint8x8x4_t t1 = vld4_u8 (t_src);
--
-- t_src += sizeof(uint8x8x4_t);
-- vst4_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x8x4_t);
-- }
--
-- if (count & 1)
-- {
-- uint8x16_t t1 = vld1q_u8 (t_src);
--
-- t_src += sizeof(uint8x16_t);
-- vst1q_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x16_t);
-- }
--
--#endif /* !USE_GCC_INLINE_ASM */
--
-- if (trailer_count)
-- {
-- if (trailer_count & 8)
-- {
-- uint8x8_t t1 = vld1_u8 (t_src);
--
-- t_src += sizeof(uint8x8_t);
-- vst1_u8 (t_dst, t1);
-- t_dst += sizeof(uint8x8_t);
-- }
--
-- if (trailer_count & 4)
-- {
-- *((uint32_t*) t_dst) = *((uint32_t*) t_src);
--
-- t_dst += 4;
-- t_src += 4;
-- }
--
-- if (trailer_count & 2)
-- {
-- *((uint16_t*) t_dst) = *((uint16_t*) t_src);
--
-- t_dst += 2;
-- t_src += 2;
-- }
--
-- if (trailer_count & 1)
-- {
-- *t_dst++ = *t_src++;
-- }
-- }
--}
--
--static inline void
--solid_over_565_8_pix_neon (uint32_t glyph_colour,
-- uint16_t *dest,
-- uint8_t * in_mask,
-- uint32_t dest_stride, /* bytes, not elements */
-- uint32_t mask_stride,
-- uint32_t count /* 8-pixel groups */)
--{
-- /* Inner loop of glyph blitter (solid colour, alpha mask) */
--
--#ifdef USE_GCC_INLINE_ASM
--
-- asm volatile (
-- " vld4.8 {d20[], d21[], d22[], d23[]}, [%[glyph_colour]] @ splat solid colour components \n"
-- "0: @ loop \n"
-- " vld1.16 {d0, d1}, [%[dest]] @ load first pixels from framebuffer \n"
-- " vld1.8 {d17}, [%[in_mask]] @ load alpha mask of glyph \n"
-- " vmull.u8 q9, d17, d23 @ apply glyph colour alpha to mask \n"
-- " vshrn.u16 d17, q9, #8 @ reformat it to match original mask \n"
-- " vmvn d18, d17 @ we need the inverse mask for the background \n"
-- " vsli.u16 q3, q0, #5 @ duplicate framebuffer blue bits \n"
-- " vshrn.u16 d2, q0, #8 @ unpack red from framebuffer pixels \n"
-- " vshrn.u16 d4, q0, #3 @ unpack green \n"
-- " vsri.u8 d2, d2, #5 @ duplicate red bits (extend 5 to 8) \n"
-- " vshrn.u16 d6, q3, #2 @ unpack extended blue (truncate 10 to 8) \n"
-- " vsri.u8 d4, d4, #6 @ duplicate green bits (extend 6 to 8) \n"
-- " vmull.u8 q1, d2, d18 @ apply inverse mask to background red... \n"
-- " vmull.u8 q2, d4, d18 @ ...green... \n"
-- " vmull.u8 q3, d6, d18 @ ...blue \n"
-- " subs %[count], %[count], #1 @ decrement/test loop counter \n"
-- " vmlal.u8 q1, d17, d22 @ add masked foreground red... \n"
-- " vmlal.u8 q2, d17, d21 @ ...green... \n"
-- " vmlal.u8 q3, d17, d20 @ ...blue \n"
-- " add %[in_mask], %[in_mask], %[mask_stride] @ advance mask pointer, while we wait \n"
-- " vsri.16 q1, q2, #5 @ pack green behind red \n"
-- " vsri.16 q1, q3, #11 @ pack blue into pixels \n"
-- " vst1.16 {d2, d3}, [%[dest]] @ store composited pixels \n"
-- " add %[dest], %[dest], %[dest_stride] @ advance framebuffer pointer \n"
-- " bne 0b @ next please \n"
--
-- /* Clobbered registers marked as input/outputs */
-- : [dest] "+r" (dest), [in_mask] "+r" (in_mask), [count] "+r" (count)
--
-- /* Inputs */
-- : [dest_stride] "r" (dest_stride), [mask_stride] "r" (mask_stride), [glyph_colour] "r" (&glyph_colour)
--
-- /* Clobbers, including the inputs we modify, and potentially lots of memory */
-- : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d17", "d18", "d19",
-- "d20", "d21", "d22", "d23", "d24", "d25", "cc", "memory"
-- );
--
--#else
--
-- uint8x8x4_t solid_colour = vld4_dup_u8 ((uint8_t*) &glyph_colour);
--
-- while (count--)
-- {
-- uint16x8_t pixels = vld1q_u16 (dest);
-- uint8x8_t mask = vshrn_n_u16 (vmull_u8 (solid_colour.val[3], vld1_u8 (in_mask)), 8);
-- uint8x8_t mask_image = vmvn_u8 (mask);
--
-- uint8x8_t t_red = vshrn_n_u16 (pixels, 8);
-- uint8x8_t t_green = vshrn_n_u16 (pixels, 3);
-- uint8x8_t t_blue = vshrn_n_u16 (vsli_n_u8 (pixels, pixels, 5), 2);
--
-- uint16x8_t s_red = vmull_u8 (vsri_n_u8 (t_red, t_red, 5), mask_image);
-- uint16x8_t s_green = vmull_u8 (vsri_n_u8 (t_green, t_green, 6), mask_image);
-- uint16x8_t s_blue = vmull_u8 (t_blue, mask_image);
--
-- s_red = vmlal (s_red, mask, solid_colour.val[2]);
-- s_green = vmlal (s_green, mask, solid_colour.val[1]);
-- s_blue = vmlal (s_blue, mask, solid_colour.val[0]);
--
-- pixels = vsri_n_u16 (s_red, s_green, 5);
-- pixels = vsri_n_u16 (pixels, s_blue, 11);
-- vst1q_u16 (dest, pixels);
--
-- dest += dest_stride;
-- mask += mask_stride;
-- }
--
--#endif
--}
--
--#if 0 /* this is broken currently */
--static void
--neon_composite_over_n_8_0565 (pixman_implementation_t * impl,
-- pixman_op_t op,
-- pixman_image_t * src_image,
-- pixman_image_t * mask_image,
-- pixman_image_t * dst_image,
-- int32_t src_x,
-- int32_t src_y,
-- int32_t mask_x,
-- int32_t mask_y,
-- int32_t dest_x,
-- int32_t dest_y,
-- int32_t width,
-- int32_t height)
--{
-- uint32_t src, srca;
-- uint16_t *dst_line, *aligned_line;
-- uint8_t *mask_line;
-- uint32_t dst_stride, mask_stride;
-- uint32_t kernel_count, copy_count, copy_tail;
-- uint8_t kernel_offset, copy_offset;
--
-- src = _pixman_image_get_solid (src_image, dst_image->bits.format);
--
-- /* bail out if fully transparent or degenerate */
-- srca = src >> 24;
-- if (src == 0)
-- return;
--
-- if (width == 0 || height == 0)
-- return;
--
-- if (width > NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- /* split the blit, so we can use a fixed-size scanline buffer
-- * TODO: there must be a more elegant way of doing this.
-- */
-- int x;
-- for (x = 0; x < width; x += NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- neon_composite_over_n_8_0565 (
-- impl, op,
-- src_image, mask_image, dst_image,
-- src_x + x, src_y, mask_x + x, mask_y, dest_x + x, dest_y,
-- (x + NEON_SCANLINE_BUFFER_PIXELS > width) ? width - x : NEON_SCANLINE_BUFFER_PIXELS, height);
-- }
--
-- return;
-- }
--
-- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
-- PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t, mask_stride, mask_line, 1);
--
-- /* keep within minimum number of aligned quadwords on width
-- * while also keeping the minimum number of columns to process
-- */
-- {
-- unsigned long aligned_left = (unsigned long)(dst_line) & ~0xF;
-- unsigned long aligned_right = (((unsigned long)(dst_line + width)) + 0xF) & ~0xF;
-- unsigned long ceiling_length = (((unsigned long) width) * sizeof(*dst_line) + 0xF) & ~0xF;
--
-- /* the fast copy should be quadword aligned */
-- copy_offset = dst_line - ((uint16_t*) aligned_left);
-- aligned_line = dst_line - copy_offset;
-- copy_count = (uint32_t) ((aligned_right - aligned_left) >> 4);
-- copy_tail = 0;
--
-- if (aligned_right - aligned_left > ceiling_length)
-- {
-- /* unaligned routine is tightest */
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- kernel_offset = copy_offset;
-- }
-- else
-- {
-- /* aligned routine is equally tight, so it is safer to align */
-- kernel_count = copy_count;
-- kernel_offset = 0;
-- }
--
-- /* We should avoid reading beyond scanline ends for safety */
-- if (aligned_line < (dst_line - dest_x) ||
-- (aligned_line + (copy_count * 16 / sizeof(*dst_line))) > ((dst_line - dest_x) + dst_image->bits.width))
-- {
-- /* switch to precise read */
-- copy_offset = kernel_offset = 0;
-- aligned_line = dst_line;
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- copy_count = (width * sizeof(*dst_line)) >> 4;
-- copy_tail = (width * sizeof(*dst_line)) & 0xF;
-- }
-- }
--
-- {
-- uint16_t scan_line[NEON_SCANLINE_BUFFER_PIXELS + 8]; /* deliberately not initialised */
-- uint8_t glyph_line[NEON_SCANLINE_BUFFER_PIXELS + 8];
-- int y = height;
--
-- /* row-major order */
-- /* left edge, middle block, right edge */
-- for ( ; y--; mask_line += mask_stride, aligned_line += dst_stride, dst_line += dst_stride)
-- {
-- /* We don't want to overrun the edges of the glyph,
-- * so realign the edge data into known buffers
-- */
-- neon_quadword_copy (glyph_line + copy_offset, mask_line, width >> 4, width & 0xF);
--
-- /* Uncached framebuffer access is really, really slow
-- * if we do it piecemeal. It should be much faster if we
-- * grab it all at once. One scanline should easily fit in
-- * L1 cache, so this should not waste RAM bandwidth.
-- */
-- neon_quadword_copy (scan_line, aligned_line, copy_count, copy_tail);
--
-- /* Apply the actual filter */
-- solid_over_565_8_pix_neon (
-- src, scan_line + kernel_offset,
-- glyph_line + kernel_offset, 8 * sizeof(*dst_line),
-- 8, kernel_count);
--
-- /* Copy the modified scanline back */
-- neon_quadword_copy (dst_line, scan_line + copy_offset,
-- width >> 3, (width & 7) * 2);
-- }
-- }
--}
--#endif
--
--#ifdef USE_GCC_INLINE_ASM
--
--static inline void
--plain_over_565_8_pix_neon (uint32_t colour,
-- uint16_t *dest,
-- uint32_t dest_stride, /* bytes, not elements */
-- uint32_t count /* 8-pixel groups */)
--{
-- /* Inner loop for plain translucent rects
-- * (solid colour without alpha mask)
-- */
-- asm volatile (
-- " vld4.8 {d20[], d21[], d22[], d23[]}, [%[colour]] @ solid colour load/splat \n"
-- " vmull.u8 q12, d23, d22 @ premultiply alpha red \n"
-- " vmull.u8 q13, d23, d21 @ premultiply alpha green \n"
-- " vmull.u8 q14, d23, d20 @ premultiply alpha blue \n"
-- " vmvn d18, d23 @ inverse alpha for background \n"
-- "0: @ loop\n"
-- " vld1.16 {d0, d1}, [%[dest]] @ load first pixels from framebuffer \n"
-- " vshrn.u16 d2, q0, #8 @ unpack red from framebuffer pixels \n"
-- " vshrn.u16 d4, q0, #3 @ unpack green \n"
-- " vsli.u16 q3, q0, #5 @ duplicate framebuffer blue bits \n"
-- " vsri.u8 d2, d2, #5 @ duplicate red bits (extend 5 to 8) \n"
-- " vsri.u8 d4, d4, #6 @ duplicate green bits (extend 6 to 8) \n"
-- " vshrn.u16 d6, q3, #2 @ unpack extended blue (truncate 10 to 8) \n"
-- " vmov q0, q12 @ retrieve foreground red \n"
-- " vmlal.u8 q0, d2, d18 @ blend red - my kingdom for a four-operand MLA \n"
-- " vmov q1, q13 @ retrieve foreground green \n"
-- " vmlal.u8 q1, d4, d18 @ blend green \n"
-- " vmov q2, q14 @ retrieve foreground blue \n"
-- " vmlal.u8 q2, d6, d18 @ blend blue \n"
-- " subs %[count], %[count], #1 @ decrement/test loop counter \n"
-- " vsri.16 q0, q1, #5 @ pack green behind red \n"
-- " vsri.16 q0, q2, #11 @ pack blue into pixels \n"
-- " vst1.16 {d0, d1}, [%[dest]] @ store composited pixels \n"
-- " add %[dest], %[dest], %[dest_stride] @ advance framebuffer pointer \n"
-- " bne 0b @ next please \n"
--
-- /* Clobbered registers marked as input/outputs */
-- : [dest] "+r" (dest), [count] "+r" (count)
--
-- /* Inputs */
-- : [dest_stride] "r" (dest_stride), [colour] "r" (&colour)
--
-- /* Clobbers, including the inputs we modify, and
-- * potentially lots of memory
-- */
-- : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d18", "d19",
-- "d20", "d21", "d22", "d23", "d24", "d25", "d26", "d27", "d28", "d29",
-- "cc", "memory"
-- );
--}
--
--static void
--neon_composite_over_n_0565 (pixman_implementation_t * impl,
-- pixman_op_t op,
-- pixman_image_t * src_image,
-- pixman_image_t * mask_image,
-- pixman_image_t * dst_image,
-- int32_t src_x,
-- int32_t src_y,
-- int32_t mask_x,
-- int32_t mask_y,
-- int32_t dest_x,
-- int32_t dest_y,
-- int32_t width,
-- int32_t height)
--{
-- uint32_t src, srca;
-- uint16_t *dst_line, *aligned_line;
-- uint32_t dst_stride;
-- uint32_t kernel_count, copy_count, copy_tail;
-- uint8_t kernel_offset, copy_offset;
--
-- src = _pixman_image_get_solid (src_image, dst_image->bits.format);
--
-- /* bail out if fully transparent */
-- srca = src >> 24;
-- if (src == 0)
-- return;
--
-- if (width == 0 || height == 0)
-- return;
--
-- if (width > NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- /* split the blit, so we can use a fixed-size scanline buffer *
-- * TODO: there must be a more elegant way of doing this.
-- */
-- int x;
--
-- for (x = 0; x < width; x += NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- neon_composite_over_n_0565 (
-- impl, op,
-- src_image, mask_image, dst_image,
-- src_x + x, src_y, mask_x + x, mask_y, dest_x + x, dest_y,
-- (x + NEON_SCANLINE_BUFFER_PIXELS > width) ? width - x : NEON_SCANLINE_BUFFER_PIXELS, height);
-- }
-- return;
-- }
--
-- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
--
-- /* keep within minimum number of aligned quadwords on width
-- * while also keeping the minimum number of columns to process
-- */
-- {
-- unsigned long aligned_left = (unsigned long)(dst_line) & ~0xF;
-- unsigned long aligned_right = (((unsigned long)(dst_line + width)) + 0xF) & ~0xF;
-- unsigned long ceiling_length = (((unsigned long) width) * sizeof(*dst_line) + 0xF) & ~0xF;
--
-- /* the fast copy should be quadword aligned */
-- copy_offset = dst_line - ((uint16_t*) aligned_left);
-- aligned_line = dst_line - copy_offset;
-- copy_count = (uint32_t) ((aligned_right - aligned_left) >> 4);
-- copy_tail = 0;
--
-- if (aligned_right - aligned_left > ceiling_length)
-- {
-- /* unaligned routine is tightest */
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- kernel_offset = copy_offset;
-- }
-- else
-- {
-- /* aligned routine is equally tight, so it is safer to align */
-- kernel_count = copy_count;
-- kernel_offset = 0;
-- }
--
-- /* We should avoid reading beyond scanline ends for safety */
-- if (aligned_line < (dst_line - dest_x) ||
-- (aligned_line + (copy_count * 16 / sizeof(*dst_line))) > ((dst_line - dest_x) + dst_image->bits.width))
-- {
-- /* switch to precise read */
-- copy_offset = kernel_offset = 0;
-- aligned_line = dst_line;
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- copy_count = (width * sizeof(*dst_line)) >> 4;
-- copy_tail = (width * sizeof(*dst_line)) & 0xF;
-- }
-- }
--
-- {
-- uint16_t scan_line[NEON_SCANLINE_BUFFER_PIXELS + 8]; /* deliberately not initialised */
--
-- /* row-major order */
-- /* left edge, middle block, right edge */
-- for ( ; height--; aligned_line += dst_stride, dst_line += dst_stride)
-- {
-- /* Uncached framebuffer access is really, really slow if we do it piecemeal.
-- * It should be much faster if we grab it all at once.
-- * One scanline should easily fit in L1 cache, so this should
-- * not waste RAM bandwidth.
-- */
-- neon_quadword_copy (scan_line, aligned_line, copy_count, copy_tail);
--
-- /* Apply the actual filter */
-- plain_over_565_8_pix_neon (
-- src, scan_line + kernel_offset, 8 * sizeof(*dst_line), kernel_count);
--
-- /* Copy the modified scanline back */
-- neon_quadword_copy (
-- dst_line, scan_line + copy_offset, width >> 3, (width & 7) * 2);
-- }
-- }
--}
--
--static inline void
--ARGB8_over_565_8_pix_neon (uint32_t *src,
-- uint16_t *dest,
-- uint32_t src_stride, /* bytes, not elements */
-- uint32_t count /* 8-pixel groups */)
--{
-- asm volatile (
-- "0: @ loop\n"
-- " pld [%[src], %[src_stride]] @ preload from next scanline \n"
-- " vld1.16 {d0, d1}, [%[dest]] @ load pixels from framebuffer \n"
-- " vld4.8 {d20, d21, d22, d23},[%[src]]! @ load source image pixels \n"
-- " vsli.u16 q3, q0, #5 @ duplicate framebuffer blue bits \n"
-- " vshrn.u16 d2, q0, #8 @ unpack red from framebuffer pixels \n"
-- " vshrn.u16 d4, q0, #3 @ unpack green \n"
-- " vmvn d18, d23 @ we need the inverse alpha for the background \n"
-- " vsri.u8 d2, d2, #5 @ duplicate red bits (extend 5 to 8) \n"
-- " vshrn.u16 d6, q3, #2 @ unpack extended blue (truncate 10 to 8) \n"
-- " vsri.u8 d4, d4, #6 @ duplicate green bits (extend 6 to 8) \n"
-- " vmull.u8 q1, d2, d18 @ apply inverse alpha to background red... \n"
-- " vmull.u8 q2, d4, d18 @ ...green... \n"
-- " vmull.u8 q3, d6, d18 @ ...blue \n"
-- " subs %[count], %[count], #1 @ decrement/test loop counter \n"
-- " vmlal.u8 q1, d23, d22 @ add blended foreground red... \n"
-- " vmlal.u8 q2, d23, d21 @ ...green... \n"
-- " vmlal.u8 q3, d23, d20 @ ...blue \n"
-- " vsri.16 q1, q2, #5 @ pack green behind red \n"
-- " vsri.16 q1, q3, #11 @ pack blue into pixels \n"
-- " vst1.16 {d2, d3}, [%[dest]]! @ store composited pixels \n"
-- " bne 0b @ next please \n"
--
-- /* Clobbered registers marked as input/outputs */
-- : [dest] "+r" (dest), [src] "+r" (src), [count] "+r" (count)
--
-- /* Inputs */
-- : [src_stride] "r" (src_stride)
--
-- /* Clobbers, including the inputs we modify, and potentially lots of memory */
-- : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d17", "d18", "d20",
-- "d21", "d22", "d23", "cc", "memory"
-- );
--}
--
--static void
--neon_composite_over_8888_0565 (pixman_implementation_t * impl,
-- pixman_op_t op,
-- pixman_image_t * src_image,
-- pixman_image_t * mask_image,
-- pixman_image_t * dst_image,
-- int32_t src_x,
-- int32_t src_y,
-- int32_t mask_x,
-- int32_t mask_y,
-- int32_t dest_x,
-- int32_t dest_y,
-- int32_t width,
-- int32_t height)
--{
-- uint32_t *src_line;
-- uint16_t *dst_line, *aligned_line;
-- uint32_t dst_stride, src_stride;
-- uint32_t kernel_count, copy_count, copy_tail;
-- uint8_t kernel_offset, copy_offset;
--
-- /* we assume mask is opaque
-- * so the only alpha to deal with is embedded in src
-- */
-- if (width > NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- /* split the blit, so we can use a fixed-size scanline buffer */
-- int x;
-- for (x = 0; x < width; x += NEON_SCANLINE_BUFFER_PIXELS)
-- {
-- neon_composite_over_8888_0565 (
-- impl, op,
-- src_image, mask_image, dst_image,
-- src_x + x, src_y, mask_x + x, mask_y, dest_x + x, dest_y,
-- (x + NEON_SCANLINE_BUFFER_PIXELS > width) ? width - x : NEON_SCANLINE_BUFFER_PIXELS, height);
-- }
-- return;
-- }
--
-- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
-- PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
--
-- /* keep within minimum number of aligned quadwords on width
-- * while also keeping the minimum number of columns to process
-- */
-- {
-- unsigned long aligned_left = (unsigned long)(dst_line) & ~0xF;
-- unsigned long aligned_right = (((unsigned long)(dst_line + width)) + 0xF) & ~0xF;
-- unsigned long ceiling_length = (((unsigned long) width) * sizeof(*dst_line) + 0xF) & ~0xF;
--
-- /* the fast copy should be quadword aligned */
-- copy_offset = dst_line - ((uint16_t*) aligned_left);
-- aligned_line = dst_line - copy_offset;
-- copy_count = (uint32_t) ((aligned_right - aligned_left) >> 4);
-- copy_tail = 0;
--
-- if (aligned_right - aligned_left > ceiling_length)
-- {
-- /* unaligned routine is tightest */
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- kernel_offset = copy_offset;
-- }
-- else
-- {
-- /* aligned routine is equally tight, so it is safer to align */
-- kernel_count = copy_count;
-- kernel_offset = 0;
-- }
--
-- /* We should avoid reading beyond scanline ends for safety */
-- if (aligned_line < (dst_line - dest_x) ||
-- (aligned_line + (copy_count * 16 / sizeof(*dst_line))) > ((dst_line - dest_x) + dst_image->bits.width))
-- {
-- /* switch to precise read */
-- copy_offset = kernel_offset = 0;
-- aligned_line = dst_line;
-- kernel_count = (uint32_t) (ceiling_length >> 4);
-- copy_count = (width * sizeof(*dst_line)) >> 4;
-- copy_tail = (width * sizeof(*dst_line)) & 0xF;
-- }
-- }
--
-- /* Preload the first input scanline */
-- {
-- uint8_t *src_ptr = (uint8_t*) src_line;
-- uint32_t count = (width + 15) / 16;
--
--#ifdef USE_GCC_INLINE_ASM
-- asm volatile (
-- "0: @ loop \n"
-- " subs %[count], %[count], #1 \n"
-- " pld [%[src]] \n"
-- " add %[src], %[src], #64 \n"
-- " bgt 0b \n"
--
-- /* Clobbered input registers marked as input/outputs */
-- : [src] "+r" (src_ptr), [count] "+r" (count)
-- : /* no unclobbered inputs */
-- : "cc"
-- );
--#else
-- do
-- {
-- __pld (src_ptr);
-- src_ptr += 64;
-- }
-- while (--count);
--#endif
-- }
--
-- {
-- uint16_t scan_line[NEON_SCANLINE_BUFFER_PIXELS + 8]; /* deliberately not initialised */
--
-- /* row-major order */
-- /* left edge, middle block, right edge */
-- for ( ; height--; src_line += src_stride, aligned_line += dst_stride)
-- {
-- /* Uncached framebuffer access is really, really slow if we do
-- * it piecemeal. It should be much faster if we grab it all at
-- * once. One scanline should easily fit in L1 cache, so this
-- * should not waste RAM bandwidth.
-- */
-- neon_quadword_copy (scan_line, aligned_line, copy_count, copy_tail);
--
-- /* Apply the actual filter */
-- ARGB8_over_565_8_pix_neon (
-- src_line, scan_line + kernel_offset,
-- src_stride * sizeof(*src_line), kernel_count);
--
-- /* Copy the modified scanline back */
-- neon_quadword_copy (dst_line,
-- scan_line + copy_offset,
-- width >> 3, (width & 7) * 2);
-- }
-- }
--}
--
--#endif /* USE_GCC_INLINE_ASM */
--
- static const pixman_fast_path_t arm_neon_fast_path_array[] =
- {
- { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
-@@ -2618,12 +1914,6 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- #ifdef USE_GCC_INLINE_ASM
- { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_16_16, 0 },
- { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_16_16, 0 },
--#if 0 /* this code has some bugs */
-- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_n_0565, 0 },
-- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_n_0565, 0 },
-- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
-- { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
--#endif
- #endif
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_over_8888_8888, 0 },
-@@ -2674,79 +1964,6 @@ arm_neon_composite (pixman_implementation_t *imp,
- }
-
- static pixman_bool_t
--pixman_blt_neon (void *src_bits,
-- void *dst_bits,
-- int src_stride,
-- int dst_stride,
-- int src_bpp,
-- int dst_bpp,
-- int src_x,
-- int src_y,
-- int dst_x,
-- int dst_y,
-- int width,
-- int height)
--{
-- if (!width || !height)
-- return TRUE;
--
-- /* accelerate only straight copies involving complete bytes */
-- if (src_bpp != dst_bpp || (src_bpp & 7))
-- return FALSE;
--
-- {
-- uint32_t bytes_per_pixel = src_bpp >> 3;
-- uint32_t byte_width = width * bytes_per_pixel;
-- /* parameter is in words for some reason */
-- int32_t src_stride_bytes = src_stride * 4;
-- int32_t dst_stride_bytes = dst_stride * 4;
-- uint8_t *src_bytes = ((uint8_t*) src_bits) +
-- src_y * src_stride_bytes + src_x * bytes_per_pixel;
-- uint8_t *dst_bytes = ((uint8_t*) dst_bits) +
-- dst_y * dst_stride_bytes + dst_x * bytes_per_pixel;
-- uint32_t quadword_count = byte_width / 16;
-- uint32_t offset = byte_width % 16;
--
-- while (height--)
-- {
-- neon_quadword_copy (dst_bytes, src_bytes, quadword_count, offset);
-- src_bytes += src_stride_bytes;
-- dst_bytes += dst_stride_bytes;
-- }
-- }
--
-- return TRUE;
--}
--
--static pixman_bool_t
--arm_neon_blt (pixman_implementation_t *imp,
-- uint32_t * src_bits,
-- uint32_t * dst_bits,
-- int src_stride,
-- int dst_stride,
-- int src_bpp,
-- int dst_bpp,
-- int src_x,
-- int src_y,
-- int dst_x,
-- int dst_y,
-- int width,
-- int height)
--{
-- if (pixman_blt_neon (
-- src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
-- src_x, src_y, dst_x, dst_y, width, height))
-- {
-- return TRUE;
-- }
--
-- return _pixman_implementation_blt (
-- imp->delegate,
-- src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp,
-- src_x, src_y, dst_x, dst_y, width, height);
--}
--
--static pixman_bool_t
- arm_neon_fill (pixman_implementation_t *imp,
- uint32_t * bits,
- int stride,
-@@ -2771,9 +1988,6 @@ _pixman_implementation_create_arm_neon (void)
- pixman_implementation_t *imp = _pixman_implementation_create (general);
-
- imp->composite = arm_neon_composite;
--#if 0 /* this code has some bugs */
-- imp->blt = arm_neon_blt;
--#endif
- imp->fill = arm_neon_fill;
-
- return imp;
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch b/recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch
deleted file mode 100644
index af0a8aa7a0..0000000000
--- a/recipes/xorg-lib/pixman/0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch
+++ /dev/null
@@ -1,1061 +0,0 @@
-From d9d9173581331a3bf7e5d123db32025588b7f044 Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Sat, 10 Oct 2009 00:20:51 +0300
-Subject: [PATCH 2/7] ARM: Introduction of the new framework for NEON fast path optimizations
-
-GNU assembler and its macro preprocessor is now used to generate
-NEON optimized functions from a common template. This automatically
-takes care of nuisances like ensuring optimal alignment, dealing with
-leading/trailing pixels, doing prefetch, etc.
-
-As the first use for this framework, this commit also includes an
-implementation of pixman_composite_over_8888_0565_asm_neon function.
----
- configure.ac | 1 +
- pixman/Makefile.am | 4 +-
- pixman/pixman-arm-neon-asm.S | 309 +++++++++++++++++++++
- pixman/pixman-arm-neon-asm.h | 620 ++++++++++++++++++++++++++++++++++++++++++
- pixman/pixman-arm-neon.c | 55 ++++
- 5 files changed, 988 insertions(+), 1 deletions(-)
- create mode 100644 pixman/pixman-arm-neon-asm.S
- create mode 100644 pixman/pixman-arm-neon-asm.h
-
-diff --git a/configure.ac b/configure.ac
-index c548174..522af15 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -71,6 +71,7 @@ AC_CANONICAL_HOST
- test_CFLAGS=${CFLAGS+set} # We may override autoconf default CFLAGS.
-
- AC_PROG_CC
-+AM_PROG_AS
- AC_PROG_LIBTOOL
- AC_CHECK_FUNCS([getisax])
- AC_C_BIGENDIAN
-diff --git a/pixman/Makefile.am b/pixman/Makefile.am
-index 6020623..2543c6a 100644
---- a/pixman/Makefile.am
-+++ b/pixman/Makefile.am
-@@ -109,7 +109,9 @@ endif
- if USE_ARM_NEON
- noinst_LTLIBRARIES += libpixman-arm-neon.la
- libpixman_arm_neon_la_SOURCES = \
-- pixman-arm-neon.c
-+ pixman-arm-neon.c \
-+ pixman-arm-neon-asm.S \
-+ pixman-arm-neon-asm.h
- libpixman_arm_neon_la_CFLAGS = $(DEP_CFLAGS) $(ARM_NEON_CFLAGS)
- libpixman_arm_neon_la_LIBADD = $(DEP_LIBS)
- libpixman_1_la_LIBADD += libpixman-arm-neon.la
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-new file mode 100644
-index 0000000..843899f
---- /dev/null
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -0,0 +1,309 @@
-+/*
-+ * Copyright © 2009 Nokia Corporation
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and its
-+ * documentation for any purpose is hereby granted without fee, provided that
-+ * the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of Nokia Corporation not be used in
-+ * advertising or publicity pertaining to distribution of the software without
-+ * specific, written prior permission. Nokia Corporation makes no
-+ * representations about the suitability of this software for any purpose.
-+ * It is provided "as is" without express or implied warranty.
-+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ *
-+ * Author: Siarhei Siamashka (siarhei.siamashka@nokia.com)
-+ */
-+
-+/* Prevent the stack from becoming executable for no reason... */
-+#if defined(__linux__) && defined(__ELF__)
-+.section .note.GNU-stack,"",%progbits
-+#endif
-+
-+ .text
-+ .fpu neon
-+ .altmacro
-+
-+#include "pixman-arm-neon-asm.h"
-+
-+/*
-+ * This file contains implementations of NEON optimized pixel processing
-+ * functions functions. There is no full and detailed tutorial, but some
-+ * functions (those which are exposing some new or interesting features)
-+ * are extensively commented and can be used as examples.
-+ *
-+ * You may want to have a look at the following functions:
-+ * - pixman_composite_over_8888_0565_asm_neon
-+ */
-+
-+/*
-+ * Implementation of pixman_composite_over_8888_0565_asm_neon
-+ *
-+ * This function takes a8r8g8b8 source buffer, r5g6b5 destination buffer and
-+ * performs OVER compositing operation. Function fast_composite_over_8888_0565
-+ * from pixman-fast-path.c does the same in C and can be used as a reference.
-+ *
-+ * First we need to have some NEON assembly code which can do the actual
-+ * operation on the pixels and provide it to the template macro
-+ *
-+ * Template macro quite conveniently takes care of all the necessary code for
-+ * memory reading and writing (including quite tricky cases of handling
-+ * unaligned leading/trailing pixels), so we only need to deal with the data
-+ * in NEON registers.
-+ *
-+ * NEON registers allocation in general is recommented to be the following:
-+ * d0, d1, d2, d3 - contain loaded source pixel data
-+ * d4, d5, d6, d7 - contain loaded destination pixels (if they are needed)
-+ * d24, d25, d26, d27 - contain loading mask pixel data (if mask is used)
-+ * d28, d29, d30, d31 - place for storing the result (destination pixels)
-+ *
-+ * As can be seen above, four 64-bit NEON registers are used for keeping
-+ * intermediate pixel data and up to 8 pixels can be processed in one step
-+ * for 32bpp formats (16 pixels for 16bpp, 32 pixels for 8bpp).
-+ *
-+ * This particular function uses the following allocation:
-+ * d0, d1, d2, d3 - contain loaded source pixel data
-+ * d4, d5 - contain loaded destination pixels (they are needed)
-+ * d28, d29 - place for storing the result (destination pixels)
-+ */
-+
-+/*
-+ * Step one. We need to have some code to do some arithmetics on pixel data.
-+ * This is implemented as a pair of macros: '*_head' and '*_tail'. When used
-+ * back-to-back, they take pixel data from {d0, d1, d2, d3} and {d4, d5},
-+ * perform all the needed calculations and write the result to {d28, d29}.
-+ * The rationale for having two macros and not just one will be explained
-+ * later. In practice, any single monolitic function which does the work can
-+ * be split into two parts in any arbitrary way without affecting correctness.
-+ *
-+ * There is one special trick here too. Common template macro already makes
-+ * our life a bit easier by doing R, G, B, A color components deinterleaving
-+ * for 32bpp pixel formats. So it means that instead of having 8 packed
-+ * pixels in {d0, d1, d2, d3} registers, we actually use d0 register for
-+ * blue channel (a vector of eight 8-bit values), d1 register for green,
-+ * d2 for red and d3 for alpha. There is no magic and simple conversion
-+ * can be done with a few NEON instructions.
-+ *
-+ * Packed to planar conversion:
-+ * vuzp.8 d0, d1
-+ * vuzp.8 d2, d3
-+ * vuzp.8 d1, d3
-+ * vuzp.8 d0, d2
-+ *
-+ * Planar to packed conversion:
-+ * vzip.8 d0, d2
-+ * vzip.8 d1, d3
-+ * vzip.8 d2, d3
-+ * vzip.8 d0, d1
-+ *
-+ * Pixel can be loaded directly in planar format using VLD4.8 NEON
-+ * instruction. But it is 1 cycle slower than VLD1.32 and sometimes
-+ * code can be scheduled so that four extra VUZP.8 after VLD1.32 may
-+ * be dual-issued with the other instructions resulting in overal
-+ * 1 cycle improvement.
-+ *
-+ * But anyway, here is the code:
-+ */
-+.macro pixman_composite_over_8888_0565_process_pixblock_head
-+ /* convert 8 r5g6b5 pixel data from {d4, d5} to planar 8-bit format
-+ and put data into d6 - red, d7 - green, d30 - blue */
-+ vshrn.u16 d6, q2, #8
-+ vshrn.u16 d7, q2, #3
-+ vsli.u16 q2, q2, #5
-+ vsri.u8 d6, d6, #5
-+ vmvn.8 d3, d3 /* invert source alpha */
-+ vsri.u8 d7, d7, #6
-+ vshrn.u16 d30, q2, #2
-+ /* now do alpha blending, storing results in 8-bit planar format
-+ into d16 - red, d19 - green, d18 - blue */
-+ vmull.u8 q10, d3, d6
-+ vmull.u8 q11, d3, d7
-+ vmull.u8 q12, d3, d30
-+ vrshr.u16 q13, q10, #8
-+ vrshr.u16 q3, q11, #8
-+ vrshr.u16 q15, q12, #8
-+ vraddhn.u16 d20, q10, q13
-+ vraddhn.u16 d23, q11, q3
-+ vraddhn.u16 d22, q12, q15
-+.endm
-+
-+.macro pixman_composite_over_8888_0565_process_pixblock_tail
-+ /* ... continue alpha blending */
-+ vqadd.u8 d16, d2, d20
-+ vqadd.u8 q9, q0, q11
-+ /* convert the result to r5g6b5 and store it into {d28, d29} */
-+ vshll.u8 q14, d16, #8
-+ vshll.u8 q8, d19, #8
-+ vshll.u8 q9, d18, #8
-+ vsri.u16 q14, q8, #5
-+ vsri.u16 q14, q9, #11
-+.endm
-+
-+/*
-+ * OK, now we got almost everything that we need. Using the above two
-+ * macros, the work can be done right. But now we want to optimize
-+ * it a bit. ARM Cortex-A8 is an in-order core, and benefits really
-+ * a lot from good code scheduling and software pipelining.
-+ *
-+ * Let's construct some code, which will run in the core main loop.
-+ * Some pseudo-code of the main loop will look like this:
-+ * head
-+ * while (...) {
-+ * tail
-+ * head
-+ * }
-+ * tail
-+ *
-+ * It may look a bit weird, but this setup allows to hide instruction
-+ * latencies better and also utilize dual-issue capability more efficiently.
-+ *
-+ * So what we need now is a '*_tail_head' macro, which will be used
-+ * in the core main loop. A trivial straightforward implementation
-+ * of this macro would look like this:
-+ *
-+ * pixman_composite_over_8888_0565_process_pixblock_tail
-+ * vst1.16 {d28, d29}, [DST_W, :128]!
-+ * vld1.16 {d4, d5}, [DST_R, :128]!
-+ * vld4.32 {d0, d1, d2, d3}, [SRC]!
-+ * pixman_composite_over_8888_0565_process_pixblock_head
-+ * cache_preload 8, 8
-+ *
-+ * Now it also got some VLD/VST instructions. We simply can't move from
-+ * processing one block of pixels to the other one with just arithmetics.
-+ * The previously processed data needs to be written to memory and new
-+ * data needs to be fetched. Fortunately, this main loop does not deal
-+ * with partial leading/trailing pixels and can load/store a full block
-+ * of pixels in a bulk. Additionally, destination buffer is 16 bytes
-+ * aligned here (which is good for performance).
-+ *
-+ * New things here are DST_R, DST_W, SRC and MASK identifiers. These
-+ * are the aliases for ARM registers which are used as pointers for
-+ * accessing data. We maintain separate pointers for reading and writing
-+ * destination buffer.
-+ *
-+ * Another new thing is 'cache_preload' macro. It is used for prefetching
-+ * data into CPU cache and improve performance when dealing with large
-+ * images which are far larger than cache size. It uses one argument
-+ * (actually two, but they need to be the same here) - number of pixels
-+ * in a block. Looking into 'pixman-arm-neon-asm.h' can provide some
-+ * details about this macro. Moreover, if good performance is needed
-+ * the code from this macro needs to be copied into '*_tail_head' macro
-+ * and mixed with the rest of code for optimal instructions scheduling.
-+ * We are actually doing it below.
-+ *
-+ * Now after all the explanations, here is the optimized code.
-+ * Different instruction streams (originaling from '*_head', '*_tail'
-+ * and 'cache_preload' macro) use different indentation levels for
-+ * better readability. Actually taking the code from one of these
-+ * indentation levels and ignoring a few VLD/VST instructions would
-+ * result in exactly the code from '*_head', '*_tail' or 'cache_preload'
-+ * macro!
-+ */
-+
-+#if 1
-+
-+.macro pixman_composite_over_8888_0565_process_pixblock_tail_head
-+ vqadd.u8 d16, d2, d20
-+ vld1.16 {d4, d5}, [DST_R, :128]!
-+ vqadd.u8 q9, q0, q11
-+ vshrn.u16 d6, q2, #8
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ vshrn.u16 d7, q2, #3
-+ vsli.u16 q2, q2, #5
-+ vshll.u8 q14, d16, #8
-+ add PF_X, PF_X, #8
-+ vshll.u8 q8, d19, #8
-+ tst PF_CTL, #0xF
-+ vsri.u8 d6, d6, #5
-+ addne PF_X, PF_X, #8
-+ vmvn.8 d3, d3
-+ subne PF_CTL, PF_CTL, #1
-+ vsri.u8 d7, d7, #6
-+ vshrn.u16 d30, q2, #2
-+ vmull.u8 q10, d3, d6
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ vmull.u8 q11, d3, d7
-+ vmull.u8 q12, d3, d30
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+ vsri.u16 q14, q8, #5
-+ cmp PF_X, ORIG_W
-+ vshll.u8 q9, d18, #8
-+ vrshr.u16 q13, q10, #8
-+ subge PF_X, PF_X, ORIG_W
-+ vrshr.u16 q3, q11, #8
-+ vrshr.u16 q15, q12, #8
-+ subges PF_CTL, PF_CTL, #0x10
-+ vsri.u16 q14, q9, #11
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ vraddhn.u16 d20, q10, q13
-+ vraddhn.u16 d23, q11, q3
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+ vraddhn.u16 d22, q12, q15
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+.endm
-+
-+#else
-+
-+/* If we did not care much about the performance, we would just use this... */
-+.macro pixman_composite_over_8888_0565_process_pixblock_tail_head
-+ pixman_composite_over_8888_0565_process_pixblock_tail
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+ vld1.16 {d4, d5}, [DST_R, :128]!
-+ vld4.32 {d0, d1, d2, d3}, [SRC]!
-+ pixman_composite_over_8888_0565_process_pixblock_head
-+ cache_preload 8, 8
-+.endm
-+
-+#endif
-+
-+/*
-+ * And now the final part. We are using 'generate_composite_function' macro
-+ * to put all the stuff together. We are specifying the name of the function
-+ * which we want to get, number of bits per pixel for the source, mask and
-+ * destination (0 if unused, like mask in this case). Next come some bit
-+ * flags:
-+ * FLAG_DST_READWRITE - tells that the destination buffer is both read
-+ * and written, for write-only buffer we would use
-+ * FLAG_DST_WRITEONLY flag instead
-+ * FLAG_DEINTERLEAVE_32BPP - tells that we prefer to work with planar data
-+ * and separate color channels for 32bpp format.
-+ * The next things are:
-+ * - the number of pixels processed per iteration (8 in this case, because
-+ * that' the maximum what can fit into four 64-bit NEON registers).
-+ * - prefetch distance, measured in pixel blocks. In this case it is 5 times
-+ * by 8 pixels. That would be 40 pixels, or up to 160 bytes. Optimal
-+ * prefetch distance can be selected by running some benchmarks.
-+ *
-+ * After that we specify some macros, these are 'default_init',
-+ * 'default_cleanup' (it is possible to have custom init/cleanup to be
-+ * able to save/restore some extra NEON registers like d8-d15 or do
-+ * anything else) followed by
-+ * 'pixman_composite_over_8888_0565_process_pixblock_head',
-+ * 'pixman_composite_over_8888_0565_process_pixblock_tail' and
-+ * 'pixman_composite_over_8888_0565_process_pixblock_tail_head'
-+ * which we got implemented above.
-+ *
-+ * The last part is the NEON registers allocation scheme.
-+ */
-+generate_composite_function \
-+ pixman_composite_over_8888_0565_asm_neon, 32, 0, 16, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_over_8888_0565_process_pixblock_head, \
-+ pixman_composite_over_8888_0565_process_pixblock_tail, \
-+ pixman_composite_over_8888_0565_process_pixblock_tail_head, \
-+ 28, /* dst_w_basereg */ \
-+ 4, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 24 /* mask_basereg */
-diff --git a/pixman/pixman-arm-neon-asm.h b/pixman/pixman-arm-neon-asm.h
-new file mode 100644
-index 0000000..d276ab9
---- /dev/null
-+++ b/pixman/pixman-arm-neon-asm.h
-@@ -0,0 +1,620 @@
-+/*
-+ * Copyright © 2009 Nokia Corporation
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and its
-+ * documentation for any purpose is hereby granted without fee, provided that
-+ * the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of Nokia Corporation not be used in
-+ * advertising or publicity pertaining to distribution of the software without
-+ * specific, written prior permission. Nokia Corporation makes no
-+ * representations about the suitability of this software for any purpose.
-+ * It is provided "as is" without express or implied warranty.
-+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ *
-+ * Author: Siarhei Siamashka (siarhei.siamashka@nokia.com)
-+ */
-+
-+/*
-+ * This file contains a macro ('generate_composite_function') which can
-+ * construct 2D image processing functions, based on a common template.
-+ * Any combinations of source, destination and mask images with 8bpp,
-+ * 16bpp, 32bpp color formats are supported.
-+ *
-+ * This macro takes care of:
-+ * - handling of leading and trailing unaligned pixels
-+ * - doing most of the work related to L2 cache preload
-+ * - encourages the use of software pipelining for better instructions
-+ * scheduling
-+ *
-+ * The user of this macro has to provide some configuration parameters
-+ * (bit depths for the images, prefetch distance, etc.) and a set of
-+ * macros, which should implement basic code chunks responsible for
-+ * pixels processing. See 'pixman-arm-neon-asm.S' file for the usage
-+ * examples.
-+ *
-+ * TODO:
-+ * - support for 24bpp formats
-+ * - try overlapped pixel method (from Ian Rickards) when processing
-+ * exactly two blocks of pixels
-+ */
-+
-+.set FLAG_DST_WRITEONLY, 0
-+.set FLAG_DST_READWRITE, 1
-+.set FLAG_DEINTERLEAVE_32BPP, 2
-+
-+/*
-+ * It is possible to set this to 0 and improve performance a bit if unaligned
-+ * memory accesses are supported
-+ */
-+#define RESPECT_STRICT_ALIGNMENT 1
-+
-+/*
-+ * Definitions of supplementary pixld/pixst macros (for partial load/store of
-+ * pixel data)
-+ */
-+
-+.macro pixldst1 op, elem_size, reg1, mem_operand, abits
-+.if abits > 0
-+ op&.&elem_size {d&reg1}, [&mem_operand&, :&abits&]!
-+.else
-+ op&.&elem_size {d&reg1}, [&mem_operand&]!
-+.endif
-+.endm
-+
-+.macro pixldst2 op, elem_size, reg1, reg2, mem_operand, abits
-+.if abits > 0
-+ op&.&elem_size {d&reg1, d&reg2}, [&mem_operand&, :&abits&]!
-+.else
-+ op&.&elem_size {d&reg1, d&reg2}, [&mem_operand&]!
-+.endif
-+.endm
-+
-+.macro pixldst4 op, elem_size, reg1, reg2, reg3, reg4, mem_operand, abits
-+.if abits > 0
-+ op&.&elem_size {d&reg1, d&reg2, d&reg3, d&reg4}, [&mem_operand&, :&abits&]!
-+.else
-+ op&.&elem_size {d&reg1, d&reg2, d&reg3, d&reg4}, [&mem_operand&]!
-+.endif
-+.endm
-+
-+.macro pixldst0 op, elem_size, reg1, idx, mem_operand, abits
-+ op&.&elem_size {d&reg1[idx]}, [&mem_operand&]!
-+.endm
-+
-+.macro pixldst numbytes, op, elem_size, basereg, mem_operand, abits
-+.if numbytes == 32
-+ pixldst4 op, elem_size, %(basereg+4), %(basereg+5), \
-+ %(basereg+6), %(basereg+7), mem_operand, abits
-+.elseif numbytes == 16
-+ pixldst2 op, elem_size, %(basereg+2), %(basereg+3), mem_operand, abits
-+.elseif numbytes == 8
-+ pixldst1 op, elem_size, %(basereg+1), mem_operand, abits
-+.elseif numbytes == 4
-+ .if !RESPECT_STRICT_ALIGNMENT || (elem_size == 32)
-+ pixldst0 op, 32, %(basereg+0), 1, mem_operand, abits
-+ .elseif elem_size == 16
-+ pixldst0 op, 16, %(basereg+0), 2, mem_operand, abits
-+ pixldst0 op, 16, %(basereg+0), 3, mem_operand, abits
-+ .else
-+ pixldst0 op, 8, %(basereg+0), 4, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 5, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 6, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 7, mem_operand, abits
-+ .endif
-+.elseif numbytes == 2
-+ .if !RESPECT_STRICT_ALIGNMENT || (elem_size == 16)
-+ pixldst0 op, 16, %(basereg+0), 1, mem_operand, abits
-+ .else
-+ pixldst0 op, 8, %(basereg+0), 2, mem_operand, abits
-+ pixldst0 op, 8, %(basereg+0), 3, mem_operand, abits
-+ .endif
-+.elseif numbytes == 1
-+ pixldst0 op, 8, %(basereg+0), 1, mem_operand, abits
-+.else
-+ .error "unsupported size: numbytes"
-+.endif
-+.endm
-+
-+.macro pixld numpix, bpp, basereg, mem_operand, abits=0
-+.if bpp > 0
-+.if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ pixldst4 vld4, 8, %(basereg+4), %(basereg+5), \
-+ %(basereg+6), %(basereg+7), mem_operand, abits
-+.else
-+ pixldst %(numpix * bpp / 8), vld1, %(bpp), basereg, mem_operand, abits
-+.endif
-+.endif
-+.endm
-+
-+.macro pixst numpix, bpp, basereg, mem_operand, abits=0
-+.if bpp > 0
-+.if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ pixldst4 vst4, 8, %(basereg+4), %(basereg+5), \
-+ %(basereg+6), %(basereg+7), mem_operand, abits
-+.else
-+ pixldst %(numpix * bpp / 8), vst1, %(bpp), basereg, mem_operand, abits
-+.endif
-+.endif
-+.endm
-+
-+.macro pixld_a numpix, bpp, basereg, mem_operand
-+.if (bpp * numpix) <= 128
-+ pixld numpix, bpp, basereg, mem_operand, %(bpp * numpix)
-+.else
-+ pixld numpix, bpp, basereg, mem_operand, 128
-+.endif
-+.endm
-+
-+.macro pixst_a numpix, bpp, basereg, mem_operand
-+.if (bpp * numpix) <= 128
-+ pixst numpix, bpp, basereg, mem_operand, %(bpp * numpix)
-+.else
-+ pixst numpix, bpp, basereg, mem_operand, 128
-+.endif
-+.endm
-+
-+.macro vuzp8 reg1, reg2
-+ vuzp.8 d&reg1, d&reg2
-+.endm
-+
-+.macro vzip8 reg1, reg2
-+ vzip.8 d&reg1, d&reg2
-+.endm
-+
-+/* deinterleave B, G, R, A channels for eight 32bpp pixels in 4 registers */
-+.macro pixdeinterleave bpp, basereg
-+.if (bpp == 32) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ vuzp8 %(basereg+0), %(basereg+1)
-+ vuzp8 %(basereg+2), %(basereg+3)
-+ vuzp8 %(basereg+1), %(basereg+3)
-+ vuzp8 %(basereg+0), %(basereg+2)
-+.endif
-+.endm
-+
-+/* interleave B, G, R, A channels for eight 32bpp pixels in 4 registers */
-+.macro pixinterleave bpp, basereg
-+.if (bpp == 32) && (DEINTERLEAVE_32BPP_ENABLED != 0)
-+ vzip8 %(basereg+0), %(basereg+2)
-+ vzip8 %(basereg+1), %(basereg+3)
-+ vzip8 %(basereg+2), %(basereg+3)
-+ vzip8 %(basereg+0), %(basereg+1)
-+.endif
-+.endm
-+
-+/*
-+ * This is a macro for implementing cache preload. The main idea is that
-+ * cache preload logic is mostly independent from the rest of pixels
-+ * processing code. It starts at the top left pixel and moves forward
-+ * across pixels and can jump across lines. Prefetch distance is handled
-+ * in an 'incremental' way: it starts from 0 and advances to the optimal
-+ * distance over time. After reaching optimal prefetch distance, it is
-+ * kept constant. There are some checks which prevent prefetching
-+ * unneeded pixel lines below the image (but it still prefetch a bit
-+ * more data on the right side of the image - not a big issue and may
-+ * be actually helpful when rendering text glyphs). Additional trick is
-+ * the use of LDR instruction for prefetch instead of PLD when moving to
-+ * the next line, the point is that we have a high chance of getting TLB
-+ * miss in this case, and PLD would be useless.
-+ *
-+ * This sounds like it may introduce a noticeable overhead (when working with
-+ * fully cached data). But in reality, due to having a separate pipeline and
-+ * instruction queue for NEON unit in ARM Cortex-A8, normal ARM code can
-+ * execute simultaneously with NEON and be completely shadowed by it. Thus
-+ * we get no performance overhead at all (*). This looks like a very nice
-+ * feature of Cortex-A8, if used wisely. We don't have a hardware hardware
-+ * prefetcher, but still can implement some rather advanced prefetch logic
-+ * in sofware for almost zero cost!
-+ *
-+ * (*) The overhead of the prefetcher is visible when running some trivial
-+ * pixels processing like simple copy. Anyway, having prefetch is a must
-+ * when working with graphics data.
-+ */
-+.macro cache_preload std_increment, boost_increment
-+.if (src_bpp_shift >= 0) || (dst_r_bpp != 0) || (mask_bpp_shift >= 0)
-+.if regs_shortage
-+ ldr ORIG_W, [sp] /* If we are short on regs, ORIG_W is kept on stack */
-+.endif
-+.if std_increment != 0
-+ add PF_X, PF_X, #std_increment
-+.endif
-+ tst PF_CTL, #0xF
-+ addne PF_X, PF_X, #boost_increment
-+ subne PF_CTL, PF_CTL, #1
-+ cmp PF_X, ORIG_W
-+.if src_bpp_shift >= 0
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+.endif
-+.if dst_r_bpp != 0
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+.endif
-+.if mask_bpp_shift >= 0
-+ pld [PF_MASK, PF_X, lsl #mask_bpp_shift]
-+.endif
-+ subge PF_X, PF_X, ORIG_W
-+ subges PF_CTL, PF_CTL, #0x10
-+.if src_bpp_shift >= 0
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+.endif
-+.if dst_r_bpp != 0
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+.endif
-+.if mask_bpp_shift >= 0
-+ ldrgeb DUMMY, [PF_MASK, MASK_STRIDE, lsl #mask_bpp_shift]!
-+.endif
-+.endif
-+.endm
-+
-+/*
-+ * Registers are allocated in the following way by default:
-+ * d0, d1, d2, d3 - reserved for loading source pixel data
-+ * d4, d5, d6, d7 - reserved for loading destination pixel data
-+ * d24, d25, d26, d27 - reserved for loading mask pixel data
-+ * d28, d29, d30, d31 - final destination pixel data for writeback to memory
-+ */
-+.macro generate_composite_function fname, \
-+ src_bpp, \
-+ mask_bpp, \
-+ dst_w_bpp, \
-+ flags, \
-+ pixblock_size, \
-+ prefetch_distance, \
-+ init, \
-+ cleanup, \
-+ process_pixblock_head, \
-+ process_pixblock_tail, \
-+ process_pixblock_tail_head, \
-+ dst_w_basereg = 28, \
-+ dst_r_basereg = 4, \
-+ src_basereg = 0, \
-+ mask_basereg = 24
-+
-+ .global fname
-+fname:
-+
-+ W .req r0 /* width (is updated during processing) */
-+ H .req r1 /* height (is updated during processing) */
-+ DST_W .req r2 /* destination buffer pointer for writes */
-+ DST_STRIDE .req r3 /* destination image stride */
-+ SRC .req r4 /* source buffer pointer */
-+ SRC_STRIDE .req r5 /* source image stride */
-+ DST_R .req r6 /* destination buffer pointer for reads */
-+
-+ MASK .req r7 /* mask pointer */
-+ MASK_STRIDE .req r8 /* mask stride */
-+
-+ PF_CTL .req r9
-+ PF_X .req r10
-+ PF_SRC .req r11
-+ PF_DST .req r12
-+ PF_MASK .req r14
-+
-+.if mask_bpp == 0
-+ ORIG_W .req r7 /* saved original width */
-+ DUMMY .req r8 /* temporary register */
-+ .set regs_shortage, 0
-+.elseif src_bpp == 0
-+ ORIG_W .req r4 /* saved original width */
-+ DUMMY .req r5 /* temporary register */
-+ .set regs_shortage, 0
-+.else
-+ ORIG_W .req r1 /* saved original width */
-+ DUMMY .req r1 /* temporary register */
-+ .set regs_shortage, 1
-+.endif
-+
-+ push {r4-r12, lr}
-+
-+ .set mask_bpp_shift, -1
-+
-+.if src_bpp == 32
-+ .set src_bpp_shift, 2
-+.elseif src_bpp == 16
-+ .set src_bpp_shift, 1
-+.elseif src_bpp == 8
-+ .set src_bpp_shift, 0
-+.elseif src_bpp == 0
-+ .set src_bpp_shift, -1
-+.else
-+ .error "requested src bpp (src_bpp) is not supported"
-+.endif
-+.if mask_bpp == 32
-+ .set mask_bpp_shift, 2
-+.elseif mask_bpp == 8
-+ .set mask_bpp_shift, 0
-+.elseif mask_bpp == 0
-+ .set mask_bpp_shift, -1
-+.else
-+ .error "requested mask bpp (mask_bpp) is not supported"
-+.endif
-+.if dst_w_bpp == 32
-+ .set dst_bpp_shift, 2
-+.elseif dst_w_bpp == 16
-+ .set dst_bpp_shift, 1
-+.elseif dst_w_bpp == 8
-+ .set dst_bpp_shift, 0
-+.else
-+ .error "requested dst bpp (dst_w_bpp) is not supported"
-+.endif
-+
-+.if (((flags) & FLAG_DST_READWRITE) != 0)
-+ .set dst_r_bpp, dst_w_bpp
-+.else
-+ .set dst_r_bpp, 0
-+.endif
-+.if (((flags) & FLAG_DEINTERLEAVE_32BPP) != 0)
-+ .set DEINTERLEAVE_32BPP_ENABLED, 1
-+.else
-+ .set DEINTERLEAVE_32BPP_ENABLED, 0
-+.endif
-+
-+.if prefetch_distance < 0 || prefetch_distance > 15
-+ .error "invalid prefetch distance (prefetch_distance)"
-+.endif
-+
-+.if src_bpp > 0
-+ ldr SRC, [sp, #40]
-+.endif
-+.if mask_bpp > 0
-+ ldr MASK, [sp, #48]
-+.endif
-+ mov PF_X, #0
-+.if src_bpp > 0
-+ ldr SRC_STRIDE, [sp, #44]
-+.endif
-+.if mask_bpp > 0
-+ ldr MASK_STRIDE, [sp, #52]
-+.endif
-+ mov DST_R, DST_W
-+ mov PF_SRC, SRC
-+ mov PF_DST, DST_R
-+ mov PF_MASK, MASK
-+ mov PF_CTL, H, lsl #4
-+ /* pf_ctl = 10 | ((h - 1) << 4) */
-+ add PF_CTL, #(prefetch_distance - 0x10)
-+
-+ init
-+.if regs_shortage
-+ push {r0, r1}
-+.endif
-+ subs H, H, #1
-+.if regs_shortage
-+ str H, [sp, #4] /* save updated height to stack */
-+.else
-+ mov ORIG_W, W
-+.endif
-+ blt 9f
-+ cmp W, #(pixblock_size * 2)
-+ blt 8f
-+0:
-+ /* ensure 16 byte alignment of the destination buffer */
-+ tst DST_R, #0xF
-+ beq 2f
-+
-+.irp lowbit, 1, 2, 4, 8, 16
-+.if (dst_w_bpp <= (lowbit * 8)) && ((lowbit * 8) < (pixblock_size * dst_w_bpp))
-+.if lowbit < 16 /* we don't need more than 16-byte alignment */
-+ tst DST_R, #lowbit
-+ beq 1f
-+.endif
-+ pixld (lowbit * 8 / dst_w_bpp), src_bpp, src_basereg, SRC
-+ pixld (lowbit * 8 / dst_w_bpp), mask_bpp, mask_basereg, MASK
-+.if dst_r_bpp > 0
-+ pixld_a (lowbit * 8 / dst_r_bpp), dst_r_bpp, dst_r_basereg, DST_R
-+.else
-+ add DST_R, DST_R, #lowbit
-+.endif
-+ add PF_X, PF_X, #(lowbit * 8 / dst_w_bpp)
-+ sub W, W, #(lowbit * 8 / dst_w_bpp)
-+1:
-+.endif
-+.endr
-+ pixdeinterleave src_bpp, src_basereg
-+ pixdeinterleave mask_bpp, mask_basereg
-+ pixdeinterleave dst_r_bpp, dst_r_basereg
-+
-+ process_pixblock_head
-+ cache_preload 0, pixblock_size
-+ process_pixblock_tail
-+
-+ pixinterleave dst_w_bpp, dst_w_basereg
-+.irp lowbit, 1, 2, 4, 8, 16
-+.if (dst_w_bpp <= (lowbit * 8)) && ((lowbit * 8) < (pixblock_size * dst_w_bpp))
-+.if lowbit < 16 /* we don't need more than 16-byte alignment */
-+ tst DST_W, #lowbit
-+ beq 1f
-+.endif
-+ pixst_a (lowbit * 8 / dst_w_bpp), dst_w_bpp, dst_w_basereg, DST_W
-+1:
-+.endif
-+.endr
-+2:
-+
-+ pixld_a pixblock_size, dst_r_bpp, \
-+ (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R
-+ pixld pixblock_size, src_bpp, \
-+ (src_basereg - pixblock_size * src_bpp / 64), SRC
-+ pixld pixblock_size, mask_bpp, \
-+ (mask_basereg - pixblock_size * mask_bpp / 64), MASK
-+ add PF_X, PF_X, #pixblock_size
-+ process_pixblock_head
-+ cache_preload 0, pixblock_size
-+ subs W, W, #(pixblock_size * 2)
-+ blt 2f
-+1: /* innermost pipelined loop */
-+ process_pixblock_tail_head
-+ subs W, W, #pixblock_size
-+ bge 1b
-+2:
-+ process_pixblock_tail
-+ pixst_a pixblock_size, dst_w_bpp, \
-+ (dst_w_basereg - pixblock_size * dst_w_bpp / 64), DST_W
-+
-+ /* process up to (pixblock_size - 1) remaining pixels */
-+ tst W, #(pixblock_size - 1)
-+ beq 2f
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixld chunk_size, src_bpp, src_basereg, SRC
-+ pixld chunk_size, mask_bpp, mask_basereg, MASK
-+ pixld_a chunk_size, dst_r_bpp, dst_r_basereg, DST_R
-+ add PF_X, PF_X, #chunk_size
-+1:
-+.endif
-+.endr
-+ pixdeinterleave src_bpp, src_basereg
-+ pixdeinterleave mask_bpp, mask_basereg
-+ pixdeinterleave dst_r_bpp, dst_r_basereg
-+
-+ process_pixblock_head
-+ cache_preload 0, pixblock_size
-+ process_pixblock_tail
-+
-+ pixinterleave dst_w_bpp, dst_w_basereg
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixst_a chunk_size, dst_w_bpp, dst_w_basereg, DST_W
-+1:
-+.endif
-+.endr
-+2:
-+
-+.if regs_shortage
-+ ldrd W, [sp] /* load W and H (width and height) from stack */
-+.else
-+ mov W, ORIG_W
-+.endif
-+ add DST_W, DST_W, DST_STRIDE, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ add SRC, SRC, SRC_STRIDE, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
-+.endif
-+ sub DST_W, DST_W, W, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ sub SRC, SRC, W, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ sub MASK, MASK, W, lsl #mask_bpp_shift
-+.endif
-+ subs H, H, #1
-+ mov DST_R, DST_W
-+.if regs_shortage
-+ str H, [sp, #4] /* save updated height to stack */
-+.endif
-+ bge 0b
-+.if regs_shortage
-+ pop {r0, r1}
-+.endif
-+ cleanup
-+ pop {r4-r12, pc} /* exit */
-+
-+8: /* handle small rectangle, width up to 15 pixels */
-+ tst W, #pixblock_size
-+ beq 1f
-+ pixld pixblock_size, dst_r_bpp, \
-+ (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R
-+ pixld pixblock_size, src_bpp, \
-+ (src_basereg - pixblock_size * src_bpp / 64), SRC
-+ pixld pixblock_size, mask_bpp, \
-+ (mask_basereg - pixblock_size * mask_bpp / 64), MASK
-+ process_pixblock_head
-+ process_pixblock_tail
-+ pixst pixblock_size, dst_w_bpp, \
-+ (dst_w_basereg - pixblock_size * dst_w_bpp / 64), DST_W
-+1: /* process the remaining pixels, which do not fully fill one block */
-+ tst W, #(pixblock_size - 1)
-+ beq 2f
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixld chunk_size, src_bpp, src_basereg, SRC
-+ pixld chunk_size, mask_bpp, mask_basereg, MASK
-+ pixld chunk_size, dst_r_bpp, dst_r_basereg, DST_R
-+1:
-+.endif
-+.endr
-+ pixdeinterleave src_bpp, src_basereg
-+ pixdeinterleave mask_bpp, mask_basereg
-+ pixdeinterleave dst_r_bpp, dst_r_basereg
-+ process_pixblock_head
-+ process_pixblock_tail
-+ pixinterleave dst_w_bpp, dst_w_basereg
-+.irp chunk_size, 16, 8, 4, 2, 1
-+.if pixblock_size > chunk_size
-+ tst W, #chunk_size
-+ beq 1f
-+ pixst chunk_size, dst_w_bpp, dst_w_basereg, DST_W
-+1:
-+.endif
-+.endr
-+2:
-+.if regs_shortage
-+ ldrd W, [sp] /* load W and H (width and height) from stack */
-+.else
-+ mov W, ORIG_W
-+.endif
-+ add DST_W, DST_W, DST_STRIDE, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ add SRC, SRC, SRC_STRIDE, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
-+.endif
-+ sub DST_W, DST_W, W, lsl #dst_bpp_shift
-+.if src_bpp != 0
-+ sub SRC, SRC, W, lsl #src_bpp_shift
-+.endif
-+.if mask_bpp != 0
-+ sub MASK, MASK, W, lsl #mask_bpp_shift
-+.endif
-+ subs H, H, #1
-+ mov DST_R, DST_W
-+.if regs_shortage
-+ str H, [sp, #4] /* save updated height to stack */
-+.endif
-+ bge 8b
-+9:
-+.if regs_shortage
-+ pop {r0, r1}
-+.endif
-+ cleanup
-+ pop {r4-r12, pc} /* exit */
-+
-+ .unreq SRC
-+ .unreq MASK
-+ .unreq DST_R
-+ .unreq DST_W
-+ .unreq ORIG_W
-+ .unreq W
-+ .unreq H
-+ .unreq SRC_STRIDE
-+ .unreq DST_STRIDE
-+ .unreq MASK_STRIDE
-+ .unreq PF_CTL
-+ .unreq PF_X
-+ .unreq PF_SRC
-+ .unreq PF_DST
-+ .unreq PF_MASK
-+ .unreq DUMMY
-+.endm
-+
-+.macro default_init
-+.endm
-+
-+.macro default_cleanup
-+.endm
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 9caef61..fe57daa 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -1901,8 +1901,63 @@ pixman_fill_neon (uint32_t *bits,
- #endif
- }
-
-+/*
-+ * Use GNU assembler optimizations only if we are completely sure that
-+ * the target system has compatible ABI and calling conventions. This
-+ * check can be updated/extended if more systems turn out to be actually
-+ * compatible.
-+ */
-+#if defined(__linux__) && defined(__ARM_EABI__) && defined(USE_GCC_INLINE_ASM)
-+#define USE_GNU_ASSEMBLER_ASM
-+#endif
-+
-+#ifdef USE_GNU_ASSEMBLER_ASM
-+
-+void
-+pixman_composite_over_8888_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_over_8888_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_over_8888_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+#endif
-+
- static const pixman_fast_path_t arm_neon_fast_path_array[] =
- {
-+#ifdef USE_GNU_ASSEMBLER_ASM
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
-+#endif
- { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
- { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, neon_composite_add_8000_8000, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_r5g6b5, neon_composite_over_n_8_0565, 0 },
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch b/recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch
deleted file mode 100644
index 00b682e34d..0000000000
--- a/recipes/xorg-lib/pixman/0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From b17297cf15122e5b38c082c9fe6f1ff708b7efa4 Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:50:37 +0300
-Subject: [PATCH 3/7] ARM: Added pixman_composite_src_8888_0565_asm_neon function
-
----
- pixman/pixman-arm-neon-asm.S | 43 ++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 43 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 843899f..20d2587 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -307,3 +307,46 @@ generate_composite_function \
- 4, /* dst_r_basereg */ \
- 0, /* src_basereg */ \
- 24 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_8888_0565_process_pixblock_head
-+ vshll.u8 q8, d1, #8
-+ vshll.u8 q14, d2, #8
-+ vshll.u8 q9, d0, #8
-+.endm
-+
-+.macro pixman_composite_src_8888_0565_process_pixblock_tail
-+ vsri.u16 q14, q8, #5
-+ vsri.u16 q14, q9, #11
-+.endm
-+
-+.macro pixman_composite_src_8888_0565_process_pixblock_tail_head
-+ vsri.u16 q14, q8, #5
-+ add PF_X, PF_X, #8
-+ tst PF_CTL, #0xF
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ addne PF_X, PF_X, #8
-+ subne PF_CTL, PF_CTL, #1
-+ vsri.u16 q14, q9, #11
-+ cmp PF_X, ORIG_W
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ vshll.u8 q8, d1, #8
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+ subge PF_X, PF_X, ORIG_W
-+ subges PF_CTL, PF_CTL, #0x10
-+ vshll.u8 q14, d2, #8
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ vshll.u8 q9, d0, #8
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_8888_0565_asm_neon, 32, 0, 16, \
-+ FLAG_DST_WRITEONLY | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_8888_0565_process_pixblock_head, \
-+ pixman_composite_src_8888_0565_process_pixblock_tail, \
-+ pixman_composite_src_8888_0565_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch b/recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch
deleted file mode 100644
index 445697a84f..0000000000
--- a/recipes/xorg-lib/pixman/0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 9cfedd684bdeabe9e97303e6f432c3ffb440426c Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:51:54 +0300
-Subject: [PATCH 4/7] ARM: Added pixman_composite_add_8000_8000_asm_neon function
-
----
- pixman/pixman-arm-neon-asm.S | 40 ++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 40 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 20d2587..373cbd0 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -350,3 +350,43 @@ generate_composite_function \
- pixman_composite_src_8888_0565_process_pixblock_head, \
- pixman_composite_src_8888_0565_process_pixblock_tail, \
- pixman_composite_src_8888_0565_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_add_8000_8000_process_pixblock_head
-+ vqadd.u8 q14, q0, q2
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+.macro pixman_composite_add_8000_8000_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_add_8000_8000_process_pixblock_tail_head
-+ vld1.8 {d0, d1, d2, d3}, [SRC]!
-+ add PF_X, PF_X, #32
-+ tst PF_CTL, #0xF
-+ vld1.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ addne PF_X, PF_X, #32
-+ subne PF_CTL, PF_CTL, #1
-+ vst1.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ cmp PF_X, ORIG_W
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+ subge PF_X, PF_X, ORIG_W
-+ subges PF_CTL, PF_CTL, #0x10
-+ vqadd.u8 q14, q0, q2
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_add_8000_8000_asm_neon, 8, 0, 8, \
-+ FLAG_DST_READWRITE, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_add_8000_8000_process_pixblock_head, \
-+ pixman_composite_add_8000_8000_process_pixblock_tail, \
-+ pixman_composite_add_8000_8000_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch b/recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch
deleted file mode 100644
index e4c8936c84..0000000000
--- a/recipes/xorg-lib/pixman/0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 9eb4ecf68cf5609240222d10f1a4c9dfebdb3498 Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:52:49 +0300
-Subject: [PATCH 5/7] ARM: Added pixman_composite_over_8888_8888_asm_neon function
-
----
- pixman/pixman-arm-neon-asm.S | 67 ++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 67 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 373cbd0..b11a9a7 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -390,3 +390,70 @@ generate_composite_function \
- pixman_composite_add_8000_8000_process_pixblock_head, \
- pixman_composite_add_8000_8000_process_pixblock_tail, \
- pixman_composite_add_8000_8000_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_8888_8888_process_pixblock_head
-+ vmvn.8 d24, d3 /* get inverted alpha */
-+ /* do alpha blending */
-+ vmull.u8 q8, d24, d4
-+ vmull.u8 q9, d24, d5
-+ vmull.u8 q10, d24, d6
-+ vmull.u8 q11, d24, d7
-+.endm
-+
-+.macro pixman_composite_over_8888_8888_process_pixblock_tail
-+ vrshr.u16 q14, q8, #8
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+.endm
-+
-+.macro pixman_composite_over_8888_8888_process_pixblock_tail_head
-+ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vrshr.u16 q14, q8, #8
-+ add PF_X, PF_X, #8
-+ tst PF_CTL, #0xF
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ addne PF_X, PF_X, #8
-+ subne PF_CTL, PF_CTL, #1
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ cmp PF_X, ORIG_W
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ pld [PF_SRC, PF_X, lsl #src_bpp_shift]
-+ vmvn.8 d22, d3
-+ pld [PF_DST, PF_X, lsl #dst_bpp_shift]
-+ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ subge PF_X, PF_X, ORIG_W
-+ vmull.u8 q8, d22, d4
-+ subges PF_CTL, PF_CTL, #0x10
-+ vmull.u8 q9, d22, d5
-+ ldrgeb DUMMY, [PF_SRC, SRC_STRIDE, lsl #src_bpp_shift]!
-+ vmull.u8 q10, d22, d6
-+ ldrgeb DUMMY, [PF_DST, DST_STRIDE, lsl #dst_bpp_shift]!
-+ vmull.u8 q11, d22, d7
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_8888_8888_asm_neon, 32, 0, 32, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_over_8888_8888_process_pixblock_head, \
-+ pixman_composite_over_8888_8888_process_pixblock_tail, \
-+ pixman_composite_over_8888_8888_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch b/recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch
deleted file mode 100644
index 0f89c88fef..0000000000
--- a/recipes/xorg-lib/pixman/0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch
+++ /dev/null
@@ -1,540 +0,0 @@
-From 606a73203318e44af4362684368bc24d2aed841d Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 21:57:17 +0300
-Subject: [PATCH 6/7] ARM: Added a set of NEON functions (not fully optimized)
-
----
- pixman/pixman-arm-neon-asm.S | 520 ++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 520 insertions(+), 0 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index b11a9a7..bca499a 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -457,3 +457,523 @@ generate_composite_function \
- pixman_composite_over_8888_8888_process_pixblock_head, \
- pixman_composite_over_8888_8888_process_pixblock_tail, \
- pixman_composite_over_8888_8888_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_n_8_0565_process_pixblock_head
-+ /* in */
-+ vmull.u8 q0, d24, d8
-+ vmull.u8 q1, d24, d9
-+ vmull.u8 q6, d24, d10
-+ vmull.u8 q7, d24, d11
-+ vrshr.u16 q10, q0, #8
-+ vrshr.u16 q11, q1, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q13, q7, #8
-+ vraddhn.u16 d0, q0, q10
-+ vraddhn.u16 d1, q1, q11
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d3, q7, q13
-+
-+ vshrn.u16 d6, q2, #8
-+ vshrn.u16 d7, q2, #3
-+ vsli.u16 q2, q2, #5
-+ vsri.u8 d6, d6, #5
-+ vmvn.8 d3, d3
-+ vsri.u8 d7, d7, #6
-+ vshrn.u16 d30, q2, #2
-+ /* now do alpha blending */
-+ vmull.u8 q10, d3, d6
-+ vmull.u8 q11, d3, d7
-+ vmull.u8 q12, d3, d30
-+ vrshr.u16 q13, q10, #8
-+ vrshr.u16 q3, q11, #8
-+ vrshr.u16 q15, q12, #8
-+ vraddhn.u16 d20, q10, q13
-+ vraddhn.u16 d23, q11, q3
-+ vraddhn.u16 d22, q12, q15
-+.endm
-+
-+.macro pixman_composite_over_n_8_0565_process_pixblock_tail
-+ vqadd.u8 d16, d2, d20
-+ vqadd.u8 q9, q0, q11
-+ /* convert to r5g6b5 */
-+ vshll.u8 q14, d16, #8
-+ vshll.u8 q8, d19, #8
-+ vshll.u8 q9, d18, #8
-+ vsri.u16 q14, q8, #5
-+ vsri.u16 q14, q9, #11
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_over_n_8_0565_process_pixblock_tail_head
-+ pixman_composite_over_n_8_0565_process_pixblock_tail
-+ vst1.16 {d28, d29}, [DST_W, :128]!
-+ vld1.16 {d4, d5}, [DST_R, :128]!
-+ vld1.8 {d24}, [MASK]!
-+ cache_preload 8, 8
-+ pixman_composite_over_n_8_0565_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_over_n_8_0565_init
-+ add DUMMY, sp, #40
-+ vpush {d8-d15}
-+ vld1.32 {d11[0]}, [DUMMY]
-+ vdup.8 d8, d11[0]
-+ vdup.8 d9, d11[1]
-+ vdup.8 d10, d11[2]
-+ vdup.8 d11, d11[3]
-+.endm
-+
-+.macro pixman_composite_over_n_8_0565_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_n_8_0565_asm_neon, 0, 8, 16, \
-+ FLAG_DST_READWRITE, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_over_n_8_0565_init, \
-+ pixman_composite_over_n_8_0565_cleanup, \
-+ pixman_composite_over_n_8_0565_process_pixblock_head, \
-+ pixman_composite_over_n_8_0565_process_pixblock_tail, \
-+ pixman_composite_over_n_8_0565_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_0565_0565_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_0565_0565_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_0565_0565_process_pixblock_tail_head
-+ vst1.16 {d0, d1, d2, d3}, [DST_W, :128]!
-+ vld1.16 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 16, 16
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_0565_0565_asm_neon, 16, 0, 16, \
-+ FLAG_DST_WRITEONLY, \
-+ 16, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_0565_0565_process_pixblock_head, \
-+ pixman_composite_src_0565_0565_process_pixblock_tail, \
-+ pixman_composite_src_0565_0565_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_n_8_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_n_8_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_n_8_process_pixblock_tail_head
-+ vst1.8 {d0, d1, d2, d3}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_src_n_8_init
-+ add DUMMY, sp, #40
-+ vld1.32 {d0[0]}, [DUMMY]
-+ vsli.u64 d0, d0, #8
-+ vsli.u64 d0, d0, #16
-+ vsli.u64 d0, d0, #32
-+ vmov d1, d0
-+ vmov q1, q0
-+.endm
-+
-+.macro pixman_composite_src_n_8_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_n_8_asm_neon, 0, 0, 8, \
-+ FLAG_DST_WRITEONLY, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 0, /* prefetch distance */ \
-+ pixman_composite_src_n_8_init, \
-+ pixman_composite_src_n_8_cleanup, \
-+ pixman_composite_src_n_8_process_pixblock_head, \
-+ pixman_composite_src_n_8_process_pixblock_tail, \
-+ pixman_composite_src_n_8_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_n_0565_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_n_0565_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_n_0565_process_pixblock_tail_head
-+ vst1.16 {d0, d1, d2, d3}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_src_n_0565_init
-+ add DUMMY, sp, #40
-+ vld1.32 {d0[0]}, [DUMMY]
-+ vsli.u64 d0, d0, #16
-+ vsli.u64 d0, d0, #32
-+ vmov d1, d0
-+ vmov q1, q0
-+.endm
-+
-+.macro pixman_composite_src_n_0565_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_n_0565_asm_neon, 0, 0, 16, \
-+ FLAG_DST_WRITEONLY, \
-+ 16, /* number of pixels, processed in a single block */ \
-+ 0, /* prefetch distance */ \
-+ pixman_composite_src_n_0565_init, \
-+ pixman_composite_src_n_0565_cleanup, \
-+ pixman_composite_src_n_0565_process_pixblock_head, \
-+ pixman_composite_src_n_0565_process_pixblock_tail, \
-+ pixman_composite_src_n_0565_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_n_8888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_n_8888_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_n_8888_process_pixblock_tail_head
-+ vst1.32 {d0, d1, d2, d3}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_src_n_8888_init
-+ add DUMMY, sp, #40
-+ vld1.32 {d0[0]}, [DUMMY]
-+ vsli.u64 d0, d0, #32
-+ vmov d1, d0
-+ vmov q1, q0
-+.endm
-+
-+.macro pixman_composite_src_n_8888_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_n_8888_asm_neon, 0, 0, 32, \
-+ FLAG_DST_WRITEONLY, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 0, /* prefetch distance */ \
-+ pixman_composite_src_n_8888_init, \
-+ pixman_composite_src_n_8888_cleanup, \
-+ pixman_composite_src_n_8888_process_pixblock_head, \
-+ pixman_composite_src_n_8888_process_pixblock_tail, \
-+ pixman_composite_src_n_8888_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_8888_8888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_8888_8888_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_8888_8888_process_pixblock_tail_head
-+ vst1.32 {d0, d1, d2, d3}, [DST_W, :128]!
-+ vld1.32 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 8, 8
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_8888_8888_asm_neon, 32, 0, 32, \
-+ FLAG_DST_WRITEONLY, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_8888_8888_process_pixblock_head, \
-+ pixman_composite_src_8888_8888_process_pixblock_tail, \
-+ pixman_composite_src_8888_8888_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_n_8_8888_process_pixblock_head
-+ /* expecting deinterleaved source data in {d8, d9, d10, d11} */
-+ /* d8 - blue, d9 - green, d10 - red, d11 - alpha */
-+ /* and destination data in {d4, d5, d6, d7} */
-+ /* mask is in d24 (d25, d26, d27 are unused) */
-+
-+ /* in */
-+ vmull.u8 q0, d24, d8
-+ vmull.u8 q1, d24, d9
-+ vmull.u8 q6, d24, d10
-+ vmull.u8 q7, d24, d11
-+ vrshr.u16 q10, q0, #8
-+ vrshr.u16 q11, q1, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q13, q7, #8
-+ vraddhn.u16 d0, q0, q10
-+ vraddhn.u16 d1, q1, q11
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d3, q7, q13
-+ vmvn.8 d24, d3 /* get inverted alpha */
-+ /* source: d0 - blue, d1 - green, d2 - red, d3 - alpha */
-+ /* destination: d4 - blue, d5 - green, d6 - red, d7 - alpha */
-+ /* now do alpha blending */
-+ vmull.u8 q8, d24, d4
-+ vmull.u8 q9, d24, d5
-+ vmull.u8 q10, d24, d6
-+ vmull.u8 q11, d24, d7
-+.endm
-+
-+.macro pixman_composite_over_n_8_8888_process_pixblock_tail
-+ vrshr.u16 q14, q8, #8
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_over_n_8_8888_process_pixblock_tail_head
-+ pixman_composite_over_n_8_8888_process_pixblock_tail
-+ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vld1.8 {d24}, [MASK]!
-+ cache_preload 8, 8
-+ pixman_composite_over_n_8_8888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_over_n_8_8888_init
-+ add DUMMY, sp, #40
-+ vpush {d8-d15}
-+ vld1.32 {d11[0]}, [DUMMY]
-+ vdup.8 d8, d11[0]
-+ vdup.8 d9, d11[1]
-+ vdup.8 d10, d11[2]
-+ vdup.8 d11, d11[3]
-+.endm
-+
-+.macro pixman_composite_over_n_8_8888_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_n_8_8888_asm_neon, 0, 8, 32, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_over_n_8_8888_init, \
-+ pixman_composite_over_n_8_8888_cleanup, \
-+ pixman_composite_over_n_8_8888_process_pixblock_head, \
-+ pixman_composite_over_n_8_8888_process_pixblock_tail, \
-+ pixman_composite_over_n_8_8888_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_add_n_8_8_process_pixblock_head
-+ /* expecting source data in {d8, d9, d10, d11} */
-+ /* d8 - blue, d9 - green, d10 - red, d11 - alpha */
-+ /* and destination data in {d4, d5, d6, d7} */
-+ /* mask is in d24, d25, d26, d27 */
-+ vmull.u8 q0, d24, d11
-+ vmull.u8 q1, d25, d11
-+ vmull.u8 q6, d26, d11
-+ vmull.u8 q7, d27, d11
-+ vrshr.u16 q10, q0, #8
-+ vrshr.u16 q11, q1, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q13, q7, #8
-+ vraddhn.u16 d0, q0, q10
-+ vraddhn.u16 d1, q1, q11
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d3, q7, q13
-+ vqadd.u8 q14, q0, q2
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+.macro pixman_composite_add_n_8_8_process_pixblock_tail
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_add_n_8_8_process_pixblock_tail_head
-+ pixman_composite_add_n_8_8_process_pixblock_tail
-+ vst1.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ vld1.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vld1.8 {d24, d25, d26, d27}, [MASK]!
-+ cache_preload 32, 32
-+ pixman_composite_add_n_8_8_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_add_n_8_8_init
-+ add DUMMY, sp, #40
-+ vpush {d8-d15}
-+ vld1.32 {d11[0]}, [DUMMY]
-+ vdup.8 d11, d11[3]
-+.endm
-+
-+.macro pixman_composite_add_n_8_8_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_add_n_8_8_asm_neon, 0, 8, 8, \
-+ FLAG_DST_READWRITE, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_add_n_8_8_init, \
-+ pixman_composite_add_n_8_8_cleanup, \
-+ pixman_composite_add_n_8_8_process_pixblock_head, \
-+ pixman_composite_add_n_8_8_process_pixblock_tail, \
-+ pixman_composite_add_n_8_8_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_add_8_8_8_process_pixblock_head
-+ /* expecting source data in {d0, d1, d2, d3} */
-+ /* destination data in {d4, d5, d6, d7} */
-+ /* mask in {d24, d25, d26, d27} */
-+ vmull.u8 q8, d24, d0
-+ vmull.u8 q9, d25, d1
-+ vmull.u8 q10, d26, d2
-+ vmull.u8 q11, d27, d3
-+ vrshr.u16 q0, q8, #8
-+ vrshr.u16 q1, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d0, q0, q8
-+ vraddhn.u16 d1, q1, q9
-+ vraddhn.u16 d2, q12, q10
-+ vraddhn.u16 d3, q13, q11
-+ vqadd.u8 q14, q0, q2
-+ vqadd.u8 q15, q1, q3
-+.endm
-+
-+.macro pixman_composite_add_8_8_8_process_pixblock_tail
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_add_8_8_8_process_pixblock_tail_head
-+ pixman_composite_add_8_8_8_process_pixblock_tail
-+ vst1.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+ vld1.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ vld1.8 {d24, d25, d26, d27}, [MASK]!
-+ vld1.8 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 32, 32
-+ pixman_composite_add_8_8_8_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_add_8_8_8_init
-+.endm
-+
-+.macro pixman_composite_add_8_8_8_cleanup
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_add_8_8_8_asm_neon, 8, 8, 8, \
-+ FLAG_DST_READWRITE, \
-+ 32, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_add_8_8_8_init, \
-+ pixman_composite_add_8_8_8_cleanup, \
-+ pixman_composite_add_8_8_8_process_pixblock_head, \
-+ pixman_composite_add_8_8_8_process_pixblock_tail, \
-+ pixman_composite_add_8_8_8_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_over_8888_n_8888_process_pixblock_head
-+ /* expecting source data in {d0, d1, d2, d3} */
-+ /* destination data in {d4, d5, d6, d7} */
-+ /* solid mask is in d15 */
-+
-+ /* 'in' */
-+ vmull.u8 q8, d15, d3
-+ vmull.u8 q6, d15, d2
-+ vmull.u8 q5, d15, d1
-+ vmull.u8 q4, d15, d0
-+ vrshr.u16 q13, q8, #8
-+ vrshr.u16 q12, q6, #8
-+ vrshr.u16 q11, q5, #8
-+ vrshr.u16 q10, q4, #8
-+ vraddhn.u16 d3, q8, q13
-+ vraddhn.u16 d2, q6, q12
-+ vraddhn.u16 d1, q5, q11
-+ vraddhn.u16 d0, q4, q10
-+ vmvn.8 d24, d3 /* get inverted alpha */
-+ /* now do alpha blending */
-+ vmull.u8 q8, d24, d4
-+ vmull.u8 q9, d24, d5
-+ vmull.u8 q10, d24, d6
-+ vmull.u8 q11, d24, d7
-+.endm
-+
-+.macro pixman_composite_over_8888_n_8888_process_pixblock_tail
-+ vrshr.u16 q14, q8, #8
-+ vrshr.u16 q15, q9, #8
-+ vrshr.u16 q12, q10, #8
-+ vrshr.u16 q13, q11, #8
-+ vraddhn.u16 d28, q14, q8
-+ vraddhn.u16 d29, q15, q9
-+ vraddhn.u16 d30, q12, q10
-+ vraddhn.u16 d31, q13, q11
-+ vqadd.u8 q14, q0, q14
-+ vqadd.u8 q15, q1, q15
-+.endm
-+
-+/* TODO: expand macros and do better instructions scheduling */
-+.macro pixman_composite_over_8888_n_8888_process_pixblock_tail_head
-+ vld4.8 {d4, d5, d6, d7}, [DST_R, :128]!
-+ pixman_composite_over_8888_n_8888_process_pixblock_tail
-+ vld4.8 {d0, d1, d2, d3}, [SRC]!
-+ cache_preload 8, 8
-+ pixman_composite_over_8888_n_8888_process_pixblock_head
-+ vst4.8 {d28, d29, d30, d31}, [DST_W, :128]!
-+.endm
-+
-+.macro pixman_composite_over_8888_n_8888_init
-+ add DUMMY, sp, #48
-+ vpush {d8-d15}
-+ vld1.32 {d15[0]}, [DUMMY]
-+ vdup.8 d15, d15[3]
-+.endm
-+
-+.macro pixman_composite_over_8888_n_8888_cleanup
-+ vpop {d8-d15}
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_over_8888_n_8888_asm_neon, 32, 0, 32, \
-+ FLAG_DST_READWRITE | FLAG_DEINTERLEAVE_32BPP, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 5, /* prefetch distance */ \
-+ pixman_composite_over_8888_n_8888_init, \
-+ pixman_composite_over_8888_n_8888_cleanup, \
-+ pixman_composite_over_8888_n_8888_process_pixblock_head, \
-+ pixman_composite_over_8888_n_8888_process_pixblock_tail, \
-+ pixman_composite_over_8888_n_8888_process_pixblock_tail_head
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch b/recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch
deleted file mode 100644
index c14bac153c..0000000000
--- a/recipes/xorg-lib/pixman/0007-ARM-Enabled-new-NEON-optimizations.patch
+++ /dev/null
@@ -1,592 +0,0 @@
-From 98d458dea913d7d76c48c48de9ef3aee85cced3a Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 12 Oct 2009 22:25:38 +0300
-Subject: [PATCH 7/7] ARM: Enabled new NEON optimizations
-
----
- pixman/pixman-arm-neon.c | 535 ++++++++++++++++++++++++++++++++++++++++++++--
- 1 files changed, 520 insertions(+), 15 deletions(-)
-
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index fe57daa..2811099 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -34,6 +34,18 @@
- #include <string.h>
- #include "pixman-private.h"
-
-+/*
-+ * Use GNU assembler optimizations only if we are completely sure that
-+ * the target system has compatible ABI and calling conventions. This
-+ * check can be updated/extended if more systems turn out to be actually
-+ * compatible.
-+ */
-+#if defined(__linux__) && defined(__ARM_EABI__) && defined(USE_GCC_INLINE_ASM)
-+#define USE_GNU_ASSEMBLER_ARM_NEON
-+#endif
-+
-+#ifndef USE_GNU_ASSEMBLER_ARM_NEON
-+
- /* Deal with an intrinsic that is defined differently in GCC */
- #if !defined(__ARMCC_VERSION) && !defined(__pld)
- #define __pld(_x) __builtin_prefetch (_x)
-@@ -1901,17 +1913,7 @@ pixman_fill_neon (uint32_t *bits,
- #endif
- }
-
--/*
-- * Use GNU assembler optimizations only if we are completely sure that
-- * the target system has compatible ABI and calling conventions. This
-- * check can be updated/extended if more systems turn out to be actually
-- * compatible.
-- */
--#if defined(__linux__) && defined(__ARM_EABI__) && defined(USE_GCC_INLINE_ASM)
--#define USE_GNU_ASSEMBLER_ASM
--#endif
--
--#ifdef USE_GNU_ASSEMBLER_ASM
-+#else /* USE_GNU_ASSEMBLER_ARM_NEON */
-
- void
- pixman_composite_over_8888_0565_asm_neon (int32_t w,
-@@ -1941,23 +1943,525 @@ neon_composite_over_8888_0565 (pixman_implementation_t *imp,
- int32_t dst_stride, src_stride;
-
- PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-- src_stride, src_line, 1);
-+ src_stride, src_line, 1);
- PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-- dst_stride, dst_line, 1);
-+ dst_stride, dst_line, 1);
-
- pixman_composite_over_8888_0565_asm_neon (width, height,
- dst_line, dst_stride,
- src_line, src_stride);
- }
-
-+void
-+pixman_composite_src_8888_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_8888_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_src_8888_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_src_0565_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint16_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_0565_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint16_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint16_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_src_0565_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+
-+void
-+pixman_composite_src_8888_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_8888_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_src_8888_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_over_8888_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_over_8888_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_over_8888_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_add_8000_8000_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_add_8000_8000 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *dst_line;
-+ uint8_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint8_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_add_8000_8000_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
-+pixman_composite_over_n_8_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src,
-+ int32_t unused,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_over_n_8_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t dst_stride, mask_stride;
-+ uint32_t src;
-+
-+ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
-+
-+ if (src == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_over_n_8_0565_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src, 0,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_over_n_8_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src,
-+ int32_t unused,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_over_n_8_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t dst_stride, mask_stride;
-+ uint32_t src;
-+
-+ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
-+
-+ if (src == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_over_n_8_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src, 0,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_add_8_8_8_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t *src,
-+ int32_t src_stride,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_add_8_8_8 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *src_line;
-+ uint8_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t src_stride, dst_stride, mask_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint8_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_add_8_8_8_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_add_n_8_8_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src,
-+ int32_t unused,
-+ uint8_t *mask,
-+ int32_t mask_stride);
-+
-+static void
-+neon_composite_add_n_8_8 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *dst_line;
-+ uint8_t *mask_line;
-+ int32_t dst_stride, mask_stride;
-+ uint32_t src;
-+
-+ src = _pixman_image_get_solid (src_image, dst_image->bits.format);
-+
-+ if (src == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (mask_image, mask_x, mask_y, uint8_t,
-+ mask_stride, mask_line, 1);
-+
-+ pixman_composite_add_n_8_8_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src, 0,
-+ mask_line, mask_stride);
-+}
-+
-+void
-+pixman_composite_over_8888_n_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t *src,
-+ int32_t src_stride,
-+ uint32_t mask);
-+
-+static void
-+neon_composite_over_8888_n_8888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint32_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+ uint32_t mask;
-+
-+ mask = _pixman_image_get_solid (mask_image, dst_image->bits.format);
-+
-+ if (mask == 0)
-+ return;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t,
-+ src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint32_t,
-+ dst_stride, dst_line, 1);
-+
-+ pixman_composite_over_8888_n_8888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride,
-+ mask);
-+}
-+
-+void
-+pixman_composite_src_n_8_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t src);
-+
-+void
-+pixman_composite_src_n_0565_asm_neon (int32_t w,
-+ int32_t h,
-+ uint16_t *dst,
-+ int32_t dst_stride,
-+ uint16_t src);
-+
-+void
-+pixman_composite_src_n_8888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint32_t *dst,
-+ int32_t dst_stride,
-+ uint32_t src);
-+
-+static pixman_bool_t
-+pixman_fill_neon (uint32_t *bits,
-+ int stride,
-+ int bpp,
-+ int x,
-+ int y,
-+ int width,
-+ int height,
-+ uint32_t _xor)
-+{
-+ /* stride is always multiple of 32bit units in pixman */
-+ uint32_t byte_stride = stride * sizeof(uint32_t);
-+
-+ switch (bpp)
-+ {
-+ case 8:
-+ pixman_composite_src_n_8_asm_neon (
-+ width,
-+ height,
-+ (uint8_t *)(((char *) bits) + y * byte_stride + x),
-+ byte_stride,
-+ _xor & 0xff);
-+ return TRUE;
-+ case 16:
-+ pixman_composite_src_n_0565_asm_neon (
-+ width,
-+ height,
-+ (uint16_t *)(((char *) bits) + y * byte_stride + x * 2),
-+ byte_stride / 2,
-+ _xor & 0xffff);
-+ return TRUE;
-+ case 32:
-+ pixman_composite_src_n_8888_asm_neon (
-+ width,
-+ height,
-+ (uint32_t *)(((char *) bits) + y * byte_stride + x * 4),
-+ byte_stride / 4,
-+ _xor);
-+ return TRUE;
-+ default:
-+ return FALSE;
-+ }
-+}
-+
- #endif
-
- static const pixman_fast_path_t arm_neon_fast_path_array[] =
- {
--#ifdef USE_GNU_ASSEMBLER_ASM
-+#ifdef USE_GNU_ASSEMBLER_ARM_NEON
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_r5g6b5, neon_composite_over_n_8_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_0565_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_a8, PIXMAN_a8, neon_composite_add_8_8_8, 0 },
-+ { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
-+ { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, neon_composite_add_8000_8000, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_b5g6r5, neon_composite_over_n_8_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_8888_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_0565_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
--#endif
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_a8b8g8r8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_over_8888_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_a8, PIXMAN_a8r8g8b8, neon_composite_over_8888_n_8888, NEED_SOLID_MASK },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_a8, PIXMAN_x8r8g8b8, neon_composite_over_8888_n_8888, NEED_SOLID_MASK },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8r8g8b8, neon_composite_over_n_8_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8r8g8b8, neon_composite_over_n_8_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8b8g8r8, neon_composite_over_n_8_8888, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8b8g8r8, neon_composite_over_n_8_8888, 0 },
-+#else
- { PIXMAN_OP_ADD, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8, neon_composite_add_n_8_8, 0 },
- { PIXMAN_OP_ADD, PIXMAN_a8, PIXMAN_null, PIXMAN_a8, neon_composite_add_8000_8000, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_r5g6b5, neon_composite_over_n_8_0565, 0 },
-@@ -1980,6 +2484,7 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8r8g8b8, neon_composite_over_n_8_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_a8b8g8r8, neon_composite_over_n_8_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_solid, PIXMAN_a8, PIXMAN_x8b8g8r8, neon_composite_over_n_8_8888, 0 },
-+#endif
- { PIXMAN_OP_NONE },
- };
-
---
-1.6.2.4
-
diff --git a/recipes/xorg-lib/pixman/neon-24bpp.patch b/recipes/xorg-lib/pixman/neon-24bpp.patch
deleted file mode 100644
index edfd367626..0000000000
--- a/recipes/xorg-lib/pixman/neon-24bpp.patch
+++ /dev/null
@@ -1,264 +0,0 @@
-From b101c115102b83bb1fc4e28de6136dd4940796bc Mon Sep 17 00:00:00 2001
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Fri, 30 Oct 2009 17:02:14 +0000
-Subject: ARM: initial 24bpp support
-
----
-diff --git a/pixman/pixman-arm-neon-asm.S b/pixman/pixman-arm-neon-asm.S
-index 35e6a7e..7f91ced 100644
---- a/pixman/pixman-arm-neon-asm.S
-+++ b/pixman/pixman-arm-neon-asm.S
-@@ -977,3 +977,32 @@ generate_composite_function \
- pixman_composite_over_8888_n_8888_process_pixblock_head, \
- pixman_composite_over_8888_n_8888_process_pixblock_tail, \
- pixman_composite_over_8888_n_8888_process_pixblock_tail_head
-+
-+/******************************************************************************/
-+
-+.macro pixman_composite_src_0888_0888_process_pixblock_head
-+.endm
-+
-+.macro pixman_composite_src_0888_0888_process_pixblock_tail
-+.endm
-+
-+.macro pixman_composite_src_0888_0888_process_pixblock_tail_head
-+ vst3.8 {d0, d1, d2}, [DST_W]!
-+ vld3.8 {d0, d1, d2}, [SRC]!
-+ cache_preload 8, 8
-+.endm
-+
-+generate_composite_function \
-+ pixman_composite_src_0888_0888_asm_neon, 24, 0, 24, \
-+ FLAG_DST_WRITEONLY, \
-+ 8, /* number of pixels, processed in a single block */ \
-+ 10, /* prefetch distance */ \
-+ default_init, \
-+ default_cleanup, \
-+ pixman_composite_src_0888_0888_process_pixblock_head, \
-+ pixman_composite_src_0888_0888_process_pixblock_tail, \
-+ pixman_composite_src_0888_0888_process_pixblock_tail_head, \
-+ 0, /* dst_w_basereg */ \
-+ 0, /* dst_r_basereg */ \
-+ 0, /* src_basereg */ \
-+ 0 /* mask_basereg */
-diff --git a/pixman/pixman-arm-neon-asm.h b/pixman/pixman-arm-neon-asm.h
-index a2941ae..1653ef4 100644
---- a/pixman/pixman-arm-neon-asm.h
-+++ b/pixman/pixman-arm-neon-asm.h
-@@ -95,6 +95,14 @@
- op&.&elem_size {d&reg1[idx]}, [&mem_operand&]!
- .endm
-
-+.macro pixldst3 op, elem_size, reg1, reg2, reg3, mem_operand
-+ op&.&elem_size {d&reg1, d&reg2, d&reg3}, [&mem_operand&]!
-+.endm
-+
-+.macro pixldst30 op, elem_size, reg1, reg2, reg3, idx, mem_operand
-+ op&.&elem_size {d&reg1[idx], d&reg2[idx], d&reg3[idx]}, [&mem_operand&]!
-+.endm
-+
- .macro pixldst numbytes, op, elem_size, basereg, mem_operand, abits
- .if numbytes == 32
- pixldst4 op, elem_size, %(basereg+4), %(basereg+5), \
-@@ -134,6 +142,18 @@
- .if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
- pixldst4 vld4, 8, %(basereg+4), %(basereg+5), \
- %(basereg+6), %(basereg+7), mem_operand, abits
-+.elseif (bpp == 24) && (numpix == 8)
-+ pixldst3 vld3, 8, %(basereg+3), %(basereg+4), %(basereg+5), mem_operand
-+.elseif (bpp == 24) && (numpix == 4)
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 4, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 5, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 6, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 7, mem_operand
-+.elseif (bpp == 24) && (numpix == 2)
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 2, mem_operand
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 3, mem_operand
-+.elseif (bpp == 24) && (numpix == 1)
-+ pixldst30 vld3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 1, mem_operand
- .else
- pixldst %(numpix * bpp / 8), vld1, %(bpp), basereg, mem_operand, abits
- .endif
-@@ -145,6 +165,18 @@
- .if (bpp == 32) && (numpix == 8) && (DEINTERLEAVE_32BPP_ENABLED != 0)
- pixldst4 vst4, 8, %(basereg+4), %(basereg+5), \
- %(basereg+6), %(basereg+7), mem_operand, abits
-+.elseif (bpp == 24) && (numpix == 8)
-+ pixldst3 vst3, 8, %(basereg+3), %(basereg+4), %(basereg+5), mem_operand
-+.elseif (bpp == 24) && (numpix == 4)
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 4, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 5, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 6, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 7, mem_operand
-+.elseif (bpp == 24) && (numpix == 2)
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 2, mem_operand
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 3, mem_operand
-+.elseif (bpp == 24) && (numpix == 1)
-+ pixldst30 vst3, 8, %(basereg+0), %(basereg+1), %(basereg+2), 1, mem_operand
- .else
- pixldst %(numpix * bpp / 8), vst1, %(bpp), basereg, mem_operand, abits
- .endif
-@@ -334,6 +366,8 @@ fname:
-
- .if src_bpp == 32
- .set src_bpp_shift, 2
-+.elseif src_bpp == 24
-+ .set src_bpp_shift, 0
- .elseif src_bpp == 16
- .set src_bpp_shift, 1
- .elseif src_bpp == 8
-@@ -345,6 +379,8 @@ fname:
- .endif
- .if mask_bpp == 32
- .set mask_bpp_shift, 2
-+.elseif mask_bpp == 24
-+ .set mask_bpp_shift, 0
- .elseif mask_bpp == 8
- .set mask_bpp_shift, 0
- .elseif mask_bpp == 0
-@@ -354,6 +390,8 @@ fname:
- .endif
- .if dst_w_bpp == 32
- .set dst_bpp_shift, 2
-+.elseif dst_w_bpp == 24
-+ .set dst_bpp_shift, 0
- .elseif dst_w_bpp == 16
- .set dst_bpp_shift, 1
- .elseif dst_w_bpp == 8
-@@ -398,6 +436,19 @@ fname:
- PF mov PF_CTL, H, lsl #4
- PF add PF_CTL, #(prefetch_distance - 0x10)
-
-+.if src_bpp == 24
-+ sub SRC_STRIDE, SRC_STRIDE, W
-+ sub SRC_STRIDE, SRC_STRIDE, W, lsl #1
-+.endif
-+.if mask_bpp == 24
-+ sub MASK_STRIDE, MASK_STRIDE, W
-+ sub MASK_STRIDE, MASK_STRIDE, W, lsl #1
-+.endif
-+.if dst_w_bpp == 24
-+ sub DST_STRIDE, DST_STRIDE, W
-+ sub DST_STRIDE, DST_STRIDE, W, lsl #1
-+.endif
-+
- init
- .if regs_shortage
- push {r0, r1}
-@@ -412,7 +463,8 @@ fname:
- cmp W, #(pixblock_size * 2)
- blt 8f
- 0:
-- /* ensure 16 byte alignment of the destination buffer */
-+ /* ensure 16 byte alignment of the destination buffer, except for 24bpp */
-+.if dst_w_bpp != 24
- tst DST_R, #0xF
- beq 2f
-
-@@ -454,6 +506,7 @@ fname:
- .endif
- .endr
- 2:
-+.endif
-
- pixld_a pixblock_size, dst_r_bpp, \
- (dst_r_basereg - pixblock_size * dst_r_bpp / 64), DST_R
-@@ -520,11 +573,13 @@ fname:
- .if mask_bpp != 0
- add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
- .endif
-+.if (dst_w_bpp != 24)
- sub DST_W, DST_W, W, lsl #dst_bpp_shift
--.if src_bpp != 0
-+.endif
-+.if (src_bpp != 24) && (src_bpp != 0)
- sub SRC, SRC, W, lsl #src_bpp_shift
- .endif
--.if mask_bpp != 0
-+.if (mask_bpp != 24) && (mask_bpp != 0)
- sub MASK, MASK, W, lsl #mask_bpp_shift
- .endif
- subs H, H, #1
-@@ -539,7 +594,7 @@ fname:
- cleanup
- pop {r4-r12, pc} /* exit */
-
--8: /* handle small rectangle, width up to 15 pixels */
-+8: /* handle small rectangle, width up to (pixblock_size * 2 - 1) pixels */
- tst W, #pixblock_size
- beq 1f
- pixld pixblock_size, dst_r_bpp, \
-@@ -592,11 +647,13 @@ fname:
- .if mask_bpp != 0
- add MASK, MASK, MASK_STRIDE, lsl #mask_bpp_shift
- .endif
-+.if (dst_w_bpp != 24)
- sub DST_W, DST_W, W, lsl #dst_bpp_shift
--.if src_bpp != 0
-+.endif
-+.if (src_bpp != 24) && (src_bpp != 0)
- sub SRC, SRC, W, lsl #src_bpp_shift
- .endif
--.if mask_bpp != 0
-+.if (mask_bpp != 24) && (mask_bpp != 0)
- sub MASK, MASK, W, lsl #mask_bpp_shift
- .endif
- subs H, H, #1
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 2811099..f3f38a9 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -2065,6 +2065,43 @@ neon_composite_src_8888_8888 (pixman_implementation_t *imp,
- }
-
- void
-+pixman_composite_src_0888_0888_asm_neon (int32_t w,
-+ int32_t h,
-+ uint8_t *dst,
-+ int32_t dst_stride,
-+ uint8_t *src,
-+ int32_t src_stride);
-+
-+static void
-+neon_composite_src_0888_0888 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint8_t *dst_line;
-+ uint8_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint8_t,
-+ src_stride, src_line, 3);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint8_t,
-+ dst_stride, dst_line, 3);
-+
-+ pixman_composite_src_0888_0888_asm_neon (width, height,
-+ dst_line, dst_stride,
-+ src_line, src_stride);
-+}
-+
-+void
- pixman_composite_over_8888_8888_asm_neon (int32_t w,
- int32_t h,
- uint32_t *dst,
-@@ -2449,6 +2486,7 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- { PIXMAN_OP_SRC, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
- { PIXMAN_OP_SRC, PIXMAN_x8b8g8r8, PIXMAN_null, PIXMAN_x8b8g8r8, neon_composite_src_8888_8888, 0 },
- { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_0565_0565, 0 },
-+ { PIXMAN_OP_SRC, PIXMAN_r8g8b8, PIXMAN_null, PIXMAN_r8g8b8, neon_composite_src_0888_0888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
---
-cgit v0.8.2
diff --git a/recipes/xorg-lib/pixman/over-8888-0565.patch b/recipes/xorg-lib/pixman/over-8888-0565.patch
deleted file mode 100644
index 3e27094022..0000000000
--- a/recipes/xorg-lib/pixman/over-8888-0565.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-From: Siarhei Siamashka <siarhei.siamashka@nokia.com>
-Date: Mon, 27 Jul 2009 04:48:04 +0000 (+0300)
-Subject: ARM: NEON optimized version of composite_over_8888_0565
-X-Git-Url: http://siarhei.siamashka.name/gitweb/?p=pixman.git;a=commitdiff_plain;h=17d8ab82858511f212dfb30c347255393eb12b0c
-
-ARM: NEON optimized version of composite_over_8888_0565
----
-
-diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
-index 9404c70..f1dcf1f 100644
---- a/pixman/pixman-arm-neon.c
-+++ b/pixman/pixman-arm-neon.c
-@@ -1447,6 +1447,274 @@ neon_composite_src_16_16 (pixman_implementation_t * impl,
- }
- }
-
-+static inline void
-+neon_composite_over_8888_0565_internal (uint32_t *src,
-+ uint16_t *dst,
-+ int32_t w,
-+ int32_t h,
-+ int32_t src_stride,
-+ int32_t dst_stride)
-+{
-+ int32_t dst_newline_delta = (dst_stride - w) * 2;
-+ int32_t src_newline_delta = (src_stride - w) * 4;
-+ asm volatile (
-+
-+ ".macro process_pixblock_head size\n"
-+ /* load pixel data from memory */
-+ " .if \\size == 8\n"
-+ " vld1.32 {d0, d1, d2, d3}, [%[src]]!\n"
-+ " vld1.16 {d4, d5}, [%[dst_r]]!\n"
-+ " .elseif \\size == 4\n"
-+ " vld1.32 {d0, d1}, [%[src]]!\n"
-+ " vld1.16 {d4}, [%[dst_r]]!\n"
-+ " .elseif \\size == 2\n"
-+ " vld1.32 {d0}, [%[src]]!\n"
-+ " vld1.16 {d4[0]}, [%[dst_r]]!\n"
-+ " vld1.16 {d4[1]}, [%[dst_r]]!\n"
-+ " .elseif \\size == 1\n"
-+ " vld1.32 {d0[0]}, [%[src]]!\n"
-+ " vld1.16 {d4[0]}, [%[dst_r]]!\n"
-+ " .endif\n"
-+ /* deinterleave and convert both source and destination
-+ to "planar" 8-bit format */
-+ " vshrn.u16 d16, q2, #8\n"
-+ " vuzp.8 d0, d1\n"
-+ " vshrn.u16 d17, q2, #3\n"
-+ " vuzp.8 d2, d3\n"
-+ " vsli.u16 q2, q2, #5\n"
-+ " vuzp.8 d1, d3\n"
-+ " vsri.u8 d16, d16, #5\n"
-+ " vuzp.8 d0, d2\n"
-+ " vmvn.8 d3, d3\n"
-+ " vsri.u8 d17, d17, #6\n"
-+ " vshrn.u16 d18, q2, #2\n"
-+ /* source: d0 - blue, d1 - green, d2 - red, d3 - alpha */
-+ /* destination: d16 - red, d17 - green, d18 - blue */
-+ /* now do alpha blending */
-+ " vmull.u8 q10, d3, d16\n"
-+ "pld [%[src], #128]\n"
-+ " vmull.u8 q11, d3, d17\n"
-+ "pld [%[dst_r], #64]\n"
-+ " vmull.u8 q12, d3, d18\n"
-+ " vrshr.u16 q13, q10, #8\n"
-+ " vrshr.u16 q8, q11, #8\n"
-+ " vrshr.u16 q9, q12, #8\n"
-+ " vraddhn.u16 d20, q10, q13\n"
-+ " vraddhn.u16 d21, q11, q8\n"
-+ " vraddhn.u16 d22, q12, q9\n"
-+ ".endm\n"
-+
-+ ".macro process_pixblock_tail size\n"
-+ /* result is ready in d28, d29, d30 (R, G, B) */
-+ " vqadd.u8 d28, d2, d20\n"
-+ " vqadd.u8 d29, d1, d21\n"
-+ " vqadd.u8 d30, d0, d22\n"
-+ /* convert it to r5g6b5 */
-+ " vshll.u8 q3, d28, #8\n"
-+ " vshll.u8 q14, d29, #8\n"
-+ " vshll.u8 q15, d30, #8\n"
-+ " vsri.u16 q3, q14, #5\n"
-+ " vsri.u16 q3, q15, #11\n"
-+ /* store pixel data to memory */
-+ " .if \\size == 8\n"
-+ " vst1.16 {d6, d7}, [%[dst_w], :128]!\n"
-+ " .elseif \\size == 4\n"
-+ " vst1.16 {d6}, [%[dst_w]]!\n"
-+ " .elseif \\size == 2\n"
-+ " vst1.16 {d6[0]}, [%[dst_w]]!\n"
-+ " vst1.16 {d6[1]}, [%[dst_w]]!\n"
-+ " .elseif \\size == 1\n"
-+ " vst1.16 {d6[0]}, [%[dst_w]]!\n"
-+ " .endif\n"
-+ ".endm\n"
-+
-+ /* "tail" of the previous block and "head" of the next block
-+ are merged and interleaved for better instructions scheduling */
-+ ".macro process_pixblock_tail_head_8\n"
-+ " vqadd.u8 d28, d2, d20\n"
-+ " vld1.16 {d4, d5}, [%[dst_r], :128]!\n"
-+ " vqadd.u8 d29, d1, d21\n" /* TODO: try to join these into a */
-+ " vqadd.u8 d30, d0, d22\n" /* single 128-bit operation */
-+ " vshrn.u16 d16, q2, #8\n"
-+ " vld1.32 {d0, d1, d2, d3}, [%[src]]!\n" /* TODO: maybe split */
-+ " vshrn.u16 d17, q2, #3\n"
-+ " vsli.u16 q2, q2, #5\n"
-+ " vuzp.8 d0, d1\n"
-+ " vshll.u8 q3, d28, #8\n"
-+ " vuzp.8 d2, d3\n"
-+ " vshll.u8 q14, d29, #8\n"
-+ " vuzp.8 d1, d3\n"
-+ " vsri.u8 d16, d16, #5\n"
-+ " vuzp.8 d0, d2\n"
-+ " vmvn.8 d3, d3\n"
-+ " vsri.u8 d17, d17, #6\n"
-+ " vshrn.u16 d18, q2, #2\n"
-+ " vmull.u8 q10, d3, d16\n"
-+ "pld [%[src], #128]\n"
-+ " vmull.u8 q11, d3, d17\n"
-+ "pld [%[dst_r], #64]\n"
-+ " vmull.u8 q12, d3, d18\n"
-+ " vsri.u16 d6, d28, #5\n"
-+ " vsri.u16 d7, d29, #5\n"
-+ " vshll.u8 q15, d30, #8\n"
-+ " vrshr.u16 q13, q10, #8\n"
-+ " vrshr.u16 q8, q11, #8\n"
-+ " vrshr.u16 q9, q12, #8\n"
-+ " vsri.u16 d6, d30, #11\n"
-+ " vsri.u16 d7, d31, #11\n"
-+ " vraddhn.u16 d20, q10, q13\n"
-+ " vraddhn.u16 d21, q11, q8\n"
-+ " vraddhn.u16 d22, q12, q9\n"
-+ " vst1.16 {d6, d7}, [%[dst_w], :128]!\n"
-+ ".endm\n"
-+
-+ "subs %[h], %[h], #1\n"
-+ "blt 9f\n"
-+ "0:\n"
-+ "cmp %[w], #8\n"
-+ "blt 8f\n"
-+
-+ /* ensure 16 byte alignment of the destination buffer */
-+ "tst %[dst_r], #0xF\n"
-+ "beq 2f\n"
-+ "tst %[dst_r], #2\n"
-+ "beq 1f\n"
-+ "vld1.32 {d3[0]}, [%[src]]!\n"
-+ "vld1.16 {d5[2]}, [%[dst_r]]!\n"
-+ "sub %[w], %[w], #1\n"
-+ "1:\n"
-+ "tst %[dst_r], #4\n"
-+ "beq 1f\n"
-+ "vld1.32 {d2}, [%[src]]!\n"
-+ "vld1.16 {d5[0]}, [%[dst_r]]!\n"
-+ "vld1.16 {d5[1]}, [%[dst_r]]!\n"
-+ "sub %[w], %[w], #2\n"
-+ "1:\n"
-+ "tst %[dst_r], #8\n"
-+ "beq 1f\n"
-+ "vld1.32 {d0, d1}, [%[src]]!\n"
-+ "vld1.16 {d4}, [%[dst_r]]!\n"
-+ "sub %[w], %[w], #4\n"
-+ "1:\n"
-+ "process_pixblock_head -1\n"
-+ "process_pixblock_tail -1\n"
-+ "tst %[dst_w], #2\n"
-+ "beq 1f\n"
-+ "vst1.16 {d7[2]}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[dst_w], #4\n"
-+ "beq 1f\n"
-+ "vst1.16 {d7[0]}, [%[dst_w]]!\n"
-+ "vst1.16 {d7[1]}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[dst_w], #8\n"
-+ "beq 2f\n"
-+ "vst1.16 {d6}, [%[dst_w]]!\n"
-+ "2:\n"
-+
-+ "subs %[w], %[w], #8\n"
-+ "blt 8f\n"
-+ "process_pixblock_head 8\n"
-+ "subs %[w], %[w], #8\n"
-+ "blt 2f\n"
-+ "1:\n" /* innermost pipelined loop */
-+ "process_pixblock_tail_head_8\n"
-+ "subs %[w], %[w], #8\n"
-+ "bge 1b\n"
-+ "2:\n"
-+ "process_pixblock_tail 8\n"
-+
-+ "8:\n"
-+ /* process up to 7 remaining pixels */
-+ "tst %[w], #7\n"
-+ "beq 2f\n"
-+ "tst %[w], #4\n"
-+ "beq 1f\n"
-+ "vld1.32 {d0, d1}, [%[src]]!\n"
-+ "vld1.16 {d4}, [%[dst_r]]!\n"
-+ "1:\n"
-+ "tst %[w], #2\n"
-+ "beq 1f\n"
-+ "vld1.32 {d2}, [%[src]]!\n"
-+ "vld1.16 {d5[0]}, [%[dst_r]]!\n"
-+ "vld1.16 {d5[1]}, [%[dst_r]]!\n"
-+ "1:\n"
-+ "tst %[w], #1\n"
-+ "beq 1f\n"
-+ "vld1.32 {d3[0]}, [%[src]]!\n"
-+ "vld1.16 {d5[2]}, [%[dst_r]]!\n"
-+ "1:\n"
-+
-+ "process_pixblock_head -1\n"
-+ "process_pixblock_tail -1\n"
-+
-+ "tst %[w], #4\n"
-+ "beq 1f\n"
-+ "vst1.16 {d6}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[w], #2\n"
-+ "beq 1f\n"
-+ "vst1.16 {d7[0]}, [%[dst_w]]!\n"
-+ "vst1.16 {d7[1]}, [%[dst_w]]!\n"
-+ "1:\n"
-+ "tst %[w], #1\n"
-+ "beq 2f\n"
-+ "vst1.16 {d7[2]}, [%[dst_w]]!\n"
-+ "2:\n"
-+
-+ "add %[src], %[src], %[src_newline_delta]\n"
-+ "add %[dst_r], %[dst_r], %[dst_newline_delta]\n"
-+ "add %[dst_w], %[dst_w], %[dst_newline_delta]\n"
-+ "mov %[w], %[orig_w]\n"
-+ "subs %[h], %[h], #1\n"
-+ "bge 0b\n"
-+ "9:\n"
-+ ".purgem process_pixblock_head\n"
-+ ".purgem process_pixblock_tail\n"
-+ ".purgem process_pixblock_tail_head_8\n"
-+
-+ : [src] "+&r" (src), [dst_r] "+&r" (dst), [dst_w] "+&r" (dst),
-+ [w] "+&r" (w), [h] "+&r" (h)
-+ : [dst_newline_delta] "r" (dst_newline_delta),
-+ [src_newline_delta] "r" (src_newline_delta), [orig_w] "r" (w)
-+ : "cc", "memory",
-+ "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
-+ /* "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15", */
-+ "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23",
-+ "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31"
-+ );
-+}
-+
-+static void
-+neon_composite_over_8888_0565 (pixman_implementation_t *imp,
-+ pixman_op_t op,
-+ pixman_image_t * src_image,
-+ pixman_image_t * mask_image,
-+ pixman_image_t * dst_image,
-+ int32_t src_x,
-+ int32_t src_y,
-+ int32_t mask_x,
-+ int32_t mask_y,
-+ int32_t dest_x,
-+ int32_t dest_y,
-+ int32_t width,
-+ int32_t height)
-+{
-+ uint16_t *dst_line;
-+ uint32_t *src_line;
-+ int32_t dst_stride, src_stride;
-+
-+ PIXMAN_IMAGE_GET_LINE (src_image, src_x, src_y, uint32_t, src_stride, src_line, 1);
-+ PIXMAN_IMAGE_GET_LINE (dst_image, dest_x, dest_y, uint16_t, dst_stride, dst_line, 1);
-+
-+ neon_composite_over_8888_0565_internal (src_line,
-+ dst_line,
-+ width,
-+ height,
-+ src_stride,
-+ dst_stride);
-+}
-+
- #endif /* USE_GCC_INLINE_ASM */
-
- static void
-@@ -1908,6 +2176,8 @@ static const pixman_fast_path_t arm_neon_fast_path_array[] =
- #ifdef USE_GCC_INLINE_ASM
- { PIXMAN_OP_SRC, PIXMAN_r5g6b5, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_src_16_16, 0 },
- { PIXMAN_OP_SRC, PIXMAN_b5g6r5, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_src_16_16, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_r5g6b5, neon_composite_over_8888_0565, 0 },
-+ { PIXMAN_OP_OVER, PIXMAN_a8b8g8r8, PIXMAN_null, PIXMAN_b5g6r5, neon_composite_over_8888_0565, 0 },
- #endif
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_a8r8g8b8, neon_composite_over_8888_8888, 0 },
- { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_null, PIXMAN_x8r8g8b8, neon_composite_over_8888_8888, 0 },
diff --git a/recipes/xorg-lib/pixman_git.bb b/recipes/xorg-lib/pixman_git.bb
index ffca7becce..dd02828e37 100644
--- a/recipes/xorg-lib/pixman_git.bb
+++ b/recipes/xorg-lib/pixman_git.bb
@@ -4,26 +4,16 @@ DESCRIPTION = "Low-level pixel manipulation library."
LICENSE = "X11"
PV = "0.17.1"
-PR = "r3"
+PR = "r4"
PR_append = "+gitr${SRCREV}"
-SRCREV = "67bf739187cd43b5fff754b25693f76bb788d1fa"
+SRCREV = "abefe68ae2a422fecf315f17430c0cda5561be66"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_angstrom = "1"
SRC_URI = "git://anongit.freedesktop.org/pixman;protocol=git \
-file://0002-ARM-Introduction-of-the-new-framework-for-NEON-fast.patch;patch=1 \
-file://0003-ARM-Added-pixman_composite_src_8888_0565_asm_neon-f.patch;patch=1 \
-file://0004-ARM-Added-pixman_composite_add_8000_8000_asm_neon-f.patch;patch=1 \
-file://0005-ARM-Added-pixman_composite_over_8888_8888_asm_neon.patch;patch=1 \
-file://0006-ARM-Added-a-set-of-NEON-functions-not-fully-optimi.patch;patch=1 \
-file://0007-ARM-Enabled-new-NEON-optimizations.patch;patch=1 \
- file://pixman-28986.patch;patch=1 \
file://nearest-neighbour.patch;patch=1 \
- file://over-8888-0565.patch;patch=1 \
-file://prefetch.patch;patch=1 \
-file://neon-24bpp.patch;patch=1 \
"
S = "${WORKDIR}/git"
diff --git a/recipes/zaurus-utils/zaurus-updater.bb b/recipes/zaurus-utils/zaurus-updater.bb
index ab32d7fe29..62707a994d 100644
--- a/recipes/zaurus-utils/zaurus-updater.bb
+++ b/recipes/zaurus-utils/zaurus-updater.bb
@@ -34,5 +34,6 @@ do_deploy() {
esac
}
-addtask deploy before do_build after do_compile
-PARALLEL_MAKE = ""
+# package_stagefile_shell need to run before populate_staging for packaged-staging
+addtask deploy before do_populate_staging after do_compile
+