From 79ddb0c33401da442dbaa8e0d73ebacf297d9185 Mon Sep 17 00:00:00 2001 From: Peter Seebach Date: Sun, 17 Feb 2013 23:31:33 +0000 Subject: pseudo.inc: pseudo 1.5 uprev, support extra config flags 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 Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- meta/recipes-devtools/pseudo/pseudo.inc | 8 ++++---- meta/recipes-devtools/pseudo/pseudo_1.5.bb | 10 ++++++++++ meta/recipes-devtools/pseudo/pseudo_git.bb | 4 ++-- 3 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.5.bb diff --git a/meta/recipes-devtools/pseudo/pseudo.inc b/meta/recipes-devtools/pseudo/pseudo.inc index 9748d5493d..3baf3af72a 100644 --- a/meta/recipes-devtools/pseudo/pseudo.inc +++ b/meta/recipes-devtools/pseudo/pseudo.inc @@ -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 index 0000000000..66ff6461a4 --- /dev/null +++ b/meta/recipes-devtools/pseudo/pseudo_1.5.bb @@ -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" diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb index b895d2fe2e..0c872e355b 100644 --- a/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -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" -- cgit v1.2.3