[OE-core] [PATCH v2] serf: fix 'ccache' builds

Kang Kai Kai.Kang at windriver.com
Tue Dec 9 01:45:50 UTC 2014


On 2014年11月22日 00:55, Enrico Scholz wrote:
> 'scons' cleans the environment which breaks ccache builds because
> CCACHEDIR can point to an unexpected location:
>
> | ccache arm-linux-gnueabi-gcc ... context.c
> | ccache: failed to create .../serf/1.3.8-r0/.home/.ccache (No such file or directory)
>
> Issue is described in
>
>    http://www.scons.org/wiki/ImportingEnvironmentSettings
>
> and because 'bitbake' cleans environment we can pass it completely
> instead of trying to enumerate needed env.
>
> With the 'env.patch' the FULLCC variable is not needed anymore (which
> would break when CC is 'ccache arm-...-gcc' and host ccache is used)
> because the correct $PATH is available during scons build:
>
> | sh: .../sysroots/x86_64-oe-linux/usr/bin/arm-linux-gnueabi/ccache: No such file or directory
> | scons: *** [context.o] Error 127
>
> Signed-off-by: Enrico Scholz <enrico.scholz at sigma-chemnitz.de>
> ---
>   meta/recipes-support/serf/serf/env.patch | 28 ++++++++++++++++++++++++++++
>   meta/recipes-support/serf/serf_1.3.8.bb  |  9 +++------
>   2 files changed, 31 insertions(+), 6 deletions(-)
>   create mode 100644 meta/recipes-support/serf/serf/env.patch
>
> diff --git a/meta/recipes-support/serf/serf/env.patch b/meta/recipes-support/serf/serf/env.patch
> new file mode 100644
> index 0000000..9d073e9
> --- /dev/null
> +++ b/meta/recipes-support/serf/serf/env.patch
> @@ -0,0 +1,28 @@
> +'scons' cleans the environment which breaks ccache builds because
> +CCACHEDIR can point to an unexpected location:
> +
> +| ccache arm-linux-gnueabi-gcc ... context.c
> +| ccache: failed to create .../serf/1.3.6-r0/.home/.ccache (No such file or directory)
> +
> +Issue is described in
> +
> +  http://www.scons.org/wiki/ImportingEnvironmentSettings
> +
> +and because 'bitbake' cleans environment we can pass it completely
> +instead of trying to enumerate needed env.
> +
> +Upstream-Status: Inappropriate
> +
> +
> +Index: serf-1.3.6/SConstruct
> +===================================================================
> +--- serf-1.3.6.orig/SConstruct
> ++++ serf-1.3.6/SConstruct
> +@@ -149,6 +149,7 @@ if sys.platform == 'win32':
> + env = Environment(variables=opts,
> +                   tools=('default', 'textfile',),
> +                   CPPPATH=['.', ],
> ++                  ENV = os.environ,
> +                   )
> +
> + env.Append(BUILDERS = {
> diff --git a/meta/recipes-support/serf/serf_1.3.8.bb b/meta/recipes-support/serf/serf_1.3.8.bb
> index 10db122..e818889 100644
> --- a/meta/recipes-support/serf/serf_1.3.8.bb
> +++ b/meta/recipes-support/serf/serf_1.3.8.bb
> @@ -1,7 +1,7 @@
>   
>   SRC_URI = "http://serf.googlecode.com/svn/src_releases/serf-${PV}.tar.bz2 \
> -           file://norpath.patch"
> -SRC_URI[md5sum] = "2e4efe57ff28cb3202a112e90f0c2889"

Why remove md5sum? I think it is typo, and warning shows:

WARNING: Missing md5 SRC_URI checksum for 
/.../build/downloads/serf-1.3.8.tar.bz2, consider adding to the recipe:
SRC_URI[md5sum] = "2e4efe57ff28cb3202a112e90f0c2889"


--Kai

> +           file://norpath.patch \
> +           file://env.patch"
>   SRC_URI[sha256sum] = "e0500be065dbbce490449837bb2ab624e46d64fc0b090474d9acaa87c82b2590"
>   
>   LICENSE = "Apache-2.0"
> @@ -9,12 +9,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
>   
>   DEPENDS = "python-scons-native openssl apr apr-util util-linux expat"
>   
> -FULLCC = "${STAGING_BINDIR_TOOLCHAIN}/${CC}"
> -FULLCC_class-native = "${CC}"
> -
>   do_compile() {
>   	${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} PREFIX=${prefix} \
> -		CC="${FULLCC}" \
> +		CC="${CC}" \
>   		APR=`which apr-1-config` APU=`which apu-1-config` \
>   		CFLAGS="${CFLAGS}" LINKFLAGS="${LDFLAGS}" \
>   		OPENSSL="${STAGING_EXECPREFIXDIR}"


-- 
Regards,
Neil | Kai Kang




More information about the Openembedded-core mailing list