]> code.ossystems Code Review - openembedded-core.git/commitdiff
pseudo.inc: pseudo 1.5 uprev, support extra config flags
authorPeter Seebach <peter.seebach@windriver.com>
Sun, 17 Feb 2013 23:31:33 +0000 (23:31 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 19 Feb 2013 16:33:53 +0000 (08:33 -0800)
The pseudo 1.5 update is a moderately experimental set of changes
which ought to improve performance. With these changes, pseudo
uses an in-memory sqlite database which is lushed on exit,
the protocol is changed to reduce waiting for server responses,
and pseudo can suppress any and all fsync/fdatasync type operations.

This last feature is optional, and not on by default, so we need
to pass in an extra configure argument, but that argument wouldn't
be known to an older configure, so... Enter PSEUDO_EXTRA_OPTS which
is passed to configure, and which pseudo_1.5.bb sets by default to
"--enable-force-async". (I haven't added it in pseudo_git.bb, but
maybe it should be changed; I'm not quite as sure there.)

The justification for these changes is that, for most of the real-world
build cases I deal with, they produce a 25% or more reduction in the
build time of a project. This increases when a system is heavily
loaded.

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/pseudo/pseudo.inc
meta/recipes-devtools/pseudo/pseudo_1.5.bb [new file with mode: 0644]
meta/recipes-devtools/pseudo/pseudo_git.bb

index 9748d5493dcd1c2f6f4f7a510e1024fa02e8bc33..3baf3af72a394f022d9088d56f4134eb6a0fe121 100644 (file)
@@ -30,9 +30,9 @@ NO32LIBS ??= "1"
 # Compile for the local machine arch...
 do_compile () {
        if [ "${SITEINFO_BITS}" = "64" ]; then
-         ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+         ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
        else
-         ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+         ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
        fi
        oe_runmake ${MAKEOPTS}
 }
@@ -51,7 +51,7 @@ do_compile_prepend_class-native () {
                # built this will fail and be ignored.
                make ${MAKEOPTS} distclean || :
 
-               ./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
+               ./configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
                oe_runmake ${MAKEOPTS} libpseudo
                # prevent it from removing the lib, but remove everything else
                make 'LIB=foo' ${MAKEOPTS} distclean 
@@ -63,7 +63,7 @@ do_compile_prepend_class-nativesdk () {
                # We need the 32-bit libpseudo on a 64-bit machine...
                 # ... and we really, really, hope that the native host is
                 # x86, or else --bits may not work.
-               ./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
+               ./configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
                oe_runmake ${MAKEOPTS} libpseudo
                # prevent it from removing the lib, but remove everything else
                make 'LIB=foo' ${MAKEOPTS} distclean 
diff --git a/meta/recipes-devtools/pseudo/pseudo_1.5.bb b/meta/recipes-devtools/pseudo/pseudo_1.5.bb
new file mode 100644 (file)
index 0000000..66ff646
--- /dev/null
@@ -0,0 +1,10 @@
+require pseudo.inc
+
+PR = "r3"
+
+SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "e735bc099f2b9fd6d3f152a8c71e6315"
+SRC_URI[sha256sum] = "41a73c59296b9d48005e0f911dd1becf25ffc3ff4cf4268020f2332efcffbf49"
+
+PSEUDO_EXTRA_OPTS ?= "--enable-force-async"
index b895d2fe2ebd842644457a3c23a240e22a5fe942..0c872e355bc9356fb0d67bc329abd30aba4f153e 100644 (file)
@@ -1,7 +1,7 @@
 require pseudo.inc
 
-SRCREV = "011b401fb6be38d739215e455588af4dcd707e17"
-PV = "1.4.5+git${SRCPV}"
+SRCREV = "e076225ccdd10dabe3d6097c0682d8c88bd58753"
+PV = "1.5+git${SRCPV}"
 PR = "r0"
 
 DEFAULT_PREFERENCE = "-1"