[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