Openembedded Devel Discussions
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Hongxu Jia <hongxu.jia@windriver.com>
Cc: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH 1/1] mariadb:fix do_compile failed: No rule to make target /path/to/sysroots/x86-kvm-guest/usr/include/krb5.h
Date: Wed, 19 Nov 2014 16:05:52 +0100	[thread overview]
Message-ID: <20141119150552.GL3315@jama> (raw)
In-Reply-To: <9a453b465a06c1fccad20ed161e8ca1eee2e37e0.1415177915.git.hongxu.jia@windriver.com>

[-- Attachment #1: Type: text/plain, Size: 6013 bytes --]

On Wed, Nov 05, 2014 at 05:00:46PM +0800, Hongxu Jia wrote:
> There is occasionally compile failure while krb5.h removed
> from sysroot during maradb compiling.
> ...
> [2014-10-27 17:18:06.998709364-07:00] | make -f storage/maria/CMakeFiles/
>  aria_embedded.dir/build.make storage/maria/CMakeFiles/aria_embedded.dir/
> depend
> [2014-10-27 17:18:07.458369132-07:00] | make -f storage/maria/CMakeFiles/
> aria_embedded.dir/build.make storage/maria/CMakeFiles/aria_embedded.dir/
> build
> [2014-10-27 17:18:12.547556095-07:00] | make[2]: *** No rule to make target
> `tmp/sysroots/x86-kvm-guest/usr/include/krb5.h', needed by `storage/maria/
> CMakeFiles/aria_embedded.dir/ha_maria.cc.o'.  Stop.
> ...
> 
> The ha_maria.cc requires <openssl/ssl.h>, <openssl/ssl.h> requires <openssl/
> kssl.h>, and <openssl/kssl.h> conditionally requires <krb5.h>, but CMake
> ignore the condition, force to add krb5.h to mariadb's dependencies, it is
> the issue of CMake dependency scanner:
> http://www.cmake.org/Wiki/CMake_FAQ#CMake_dependency_scanner
> http://www.cmake.org/pipermail/cmake/2010-July/038465.html
> 
> As the above failure log shows, the dependency scanner was done at 17:18:06,
> and the compiling start at 17:18:07, but compiling ha_maria.cc.o failed at
> 17:18:12, removing krb5.h within that 5 seconds caused the above failure.
> 
> So we tweak the compile order, let ha_maria.cc as the first compile object,
> it will reduce the risk time of removing krb5.h.

rebase and resend if still needed with 5.5.40

> 
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
>  ...ia-CMakeLists.txt-tweak-source-file-compi.patch | 62 ++++++++++++++++++++++
>  meta-oe/recipes-support/mysql/mariadb_5.5.39.inc   |  1 +
>  2 files changed, 63 insertions(+)
>  create mode 100644 meta-oe/recipes-support/mysql/mariadb/storage-maria-CMakeLists.txt-tweak-source-file-compi.patch
> 
> diff --git a/meta-oe/recipes-support/mysql/mariadb/storage-maria-CMakeLists.txt-tweak-source-file-compi.patch b/meta-oe/recipes-support/mysql/mariadb/storage-maria-CMakeLists.txt-tweak-source-file-compi.patch
> new file mode 100644
> index 0000000..b498423
> --- /dev/null
> +++ b/meta-oe/recipes-support/mysql/mariadb/storage-maria-CMakeLists.txt-tweak-source-file-compi.patch
> @@ -0,0 +1,62 @@
> +From 4e99ef5cdffc92da783b04fa4fd07da47485f394 Mon Sep 17 00:00:00 2001
> +From: Hongxu Jia <hongxu.jia@windriver.com>
> +Date: Wed, 5 Nov 2014 16:25:52 +0800
> +Subject: [PATCH] storage/maria/CMakeLists.txt: tweak source file compile order
> +
> +There is occasionally compile failure while krb5.h removed
> +from sysroot during maradb compiling.
> +...
> +[2014-10-27 17:18:06.998709364-07:00] | make -f storage/maria/CMakeFiles/
> + aria_embedded.dir/build.make storage/maria/CMakeFiles/aria_embedded.dir/
> +depend
> +[2014-10-27 17:18:07.458369132-07:00] | make -f storage/maria/CMakeFiles/
> +aria_embedded.dir/build.make storage/maria/CMakeFiles/aria_embedded.dir/
> +build
> +[2014-10-27 17:18:12.547556095-07:00] | make[2]: *** No rule to make target
> +`tmp/sysroots/x86-kvm-guest/usr/include/krb5.h', needed by `storage/maria/
> +CMakeFiles/aria_embedded.dir/ha_maria.cc.o'.  Stop.
> +...
> +
> +The ha_maria.cc requires <openssl/ssl.h>, <openssl/ssl.h> requires <openssl/
> +kssl.h>, and <openssl/kssl.h> conditionally requires <krb5.h>, but CMake
> +ignore the condition, force to add krb5.h to mariadb's dependencies, it is
> +the issue of CMake dependency scanner:
> +http://www.cmake.org/Wiki/CMake_FAQ#CMake_dependency_scanner
> +
> +As the above failure log shows, the dependency scanner was done at 17:18:06,
> +and the compiling start at 17:18:07, but compiling ha_maria.cc.o failed at
> +17:18:12, removing krb5.h within that 5 seconds caused the above failure.
> +
> +So we tweak the compile order, let ha_maria.cc as the first compile object,
> +it will reduce the risk time of removing krb5.h.
> +
> +Upstream-Status: Pending
> +---
> + storage/maria/CMakeLists.txt | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/storage/maria/CMakeLists.txt b/storage/maria/CMakeLists.txt
> +index 0f30f8f..6fcaccf 100644
> +--- a/storage/maria/CMakeLists.txt
> ++++ b/storage/maria/CMakeLists.txt
> +@@ -15,7 +15,7 @@
> + 
> + INCLUDE(CMakeDependentOption)
> + 
> +-SET(ARIA_SOURCES ma_init.c ma_open.c ma_extra.c ma_info.c ma_rkey.c 
> ++SET(ARIA_SOURCES ha_maria.cc ma_init.c ma_open.c ma_extra.c ma_info.c ma_rkey.c
> +             ma_rnext.c ma_rnext_same.c 
> +             ma_search.c ma_page.c ma_key_recover.c ma_key.c 
> +             ma_locking.c ma_state.c
> +@@ -32,7 +32,7 @@ SET(ARIA_SOURCES ma_init.c ma_open.c ma_extra.c ma_info.c ma_rkey.c
> +             ma_keycache.c ma_preload.c ma_ft_parser.c 
> +             ma_ft_update.c ma_ft_boolean_search.c 
> +             ma_ft_nlq_search.c ft_maria.c ma_sort.c 
> +-            ha_maria.cc trnman.c lockman.c
> ++            trnman.c lockman.c
> +             ma_rt_index.c ma_rt_key.c ma_rt_mbr.c ma_rt_split.c 
> +             ma_sp_key.c ma_control_file.c ma_loghandler.c 
> +             ma_pagecache.c ma_pagecaches.c
> +-- 
> +1.9.1
> +
> diff --git a/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc b/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc
> index ae2e92b..42c8f3e 100644
> --- a/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc
> +++ b/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc
> @@ -8,6 +8,7 @@ SRC_URI = "http://mirror.stshosting.co.uk/mariadb/mariadb-${PV}/source/mariadb-$
>             file://fix-cmake-module-path.patch \
>             file://remove-bad-path.patch \
>             file://fix-mysqlclient-r-version.patch \
> +           file://storage-maria-CMakeLists.txt-tweak-source-file-compi.patch \
>             file://my.cnf \
>             file://mysqld.service \
>            "
> -- 
> 1.9.1
> 

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

      reply	other threads:[~2014-11-19 15:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-05  9:00 [PATCH 0/1] mariadb:fix do_compile failed: No rule to make target /path/to/sysroots/x86-kvm-guest/usr/include/krb5.h Hongxu Jia
2014-11-05  9:00 ` [PATCH 1/1] " Hongxu Jia
2014-11-19 15:05   ` Martin Jansa [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141119150552.GL3315@jama \
    --to=martin.jansa@gmail.com \
    --cc=hongxu.jia@windriver.com \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox