Re: [OE-core] [oe] cmake update broke mariadb

2015-06-30 Thread Koen Kooi

> Op 30 jun. 2015, om 12:32 heeft Stefan Herbrechtsmeier 
>  het volgende geschreven:
> 
> Am 30.06.2015 um 11:59 schrieb Koen Kooi:
>> Burton, Ross schreef op 30-06-15 om 11:44:
>>> On 30 June 2015 at 01:39, akuster808  wrote:
>>> 
 eo-core commit f8661aa "cmake: Upgrade 2.8.12.2 -> 3.2.2" broke mariadb
 in meta-oe.
 
 DOes  the person who updated cmake need to fix this or the person who
 is feeling the pain will be fixing it ?
 
>>> Depends on what the breakage is really.  Can you provide build logs?
>> ERROR: Function failed: do_configure (log file is located at
>> /build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/temp/log.do_configure.25603)
>> ERROR: Logfile of failure stored in:
>> /build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/temp/log.do_configure.25603
>> Log data follows:
>> | DEBUG: Executing python function sysroot_cleansstate
>> | DEBUG: Python function sysroot_cleansstate finished
>> | DEBUG: Executing shell function autotools_preconfigure
>> | DEBUG: Shell function autotools_preconfigure finished
>> | DEBUG: Executing python function autotools_copy_aclocals
>> | DEBUG: Python function autotools_copy_aclocals finished
>> | DEBUG: Executing shell function do_configure
>> | -- Running cmake version 3.2.2
>> | -- The C compiler identification is GNU 4.8.3
>> | -- The CXX compiler identification is GNU 4.8.3
>> | CMake Error at CMakeLists.txt:86 (PROJECT):
>> |   The CMAKE_C_COMPILER:
>> |
>> | gcc
>> |
>> |   is not a full path and was not found in the PATH.
>> |
>> |   Tell CMake where to find the compiler by setting either the environment
>> |   variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path 
>> to
>> |   the compiler, or to the compiler name if it is in the PATH.
>> |
>> |
>> | CMake Error at CMakeLists.txt:86 (PROJECT):
>> |   The CMAKE_CXX_COMPILER:
>> |
>> | g++
>> |
>> |   is not a full path and was not found in the PATH.
>> |
>> |   Tell CMake where to find the compiler by setting either the environment
>> |   variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full 
>> path
>> |   to the compiler, or to the compiler name if it is in the PATH.
>> |
>> |
>> | -- Configuring incomplete, errors occurred!
> The problem should be the usage of cmake for a native package.
> 
> The cmake.bbclass disables the host path and thereby CMake could not find the 
> gcc binary.
> 
> I think the cmake.bbclass need to distinguish between cross and native build 
> and set the following for native build:
> set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH )
> set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH )
> set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )
> 
> This allows CMake to search the binaries, libraries and includes first in the 
> CMAKE_FIND_ROOT_PATH, then in the CMAKE_SYSROOT and then in the non-rooted 
> directories.

THanks for the hint, I’m going to test something like this:

[koen@thinkpad classes]$ git diff
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
index b0a3972..ead4a26 100644
--- a/meta/classes/cmake.bbclass
+++ b/meta/classes/cmake.bbclass
@@ -27,6 +27,13 @@ OECMAKE_RPATH ?= ""
 OECMAKE_PERLNATIVE_DIR ??= ""
 OECMAKE_EXTRA_ROOT_PATH ?= ""
 
+OECMAKE_PATHS ?= ""
+OECMAKE_PATHS_class-native = " \
+set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH ) \
+set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH ) \
+set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH ) \
+"
+
 cmake_do_generate_toolchain_file() {
cat > ${WORKDIR}/toolchain.cmake 

Re: [OE-core] [oe] cmake update broke mariadb

2015-06-30 Thread Stefan Herbrechtsmeier

Am 30.06.2015 um 11:59 schrieb Koen Kooi:

Burton, Ross schreef op 30-06-15 om 11:44:

On 30 June 2015 at 01:39, akuster808  wrote:


eo-core commit f8661aa "cmake: Upgrade 2.8.12.2 -> 3.2.2" broke mariadb
in meta-oe.

DOes  the person who updated cmake need to fix this or the person who
is feeling the pain will be fixing it ?


Depends on what the breakage is really.  Can you provide build logs?

ERROR: Function failed: do_configure (log file is located at
/build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/temp/log.do_configure.25603)
ERROR: Logfile of failure stored in:
/build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/temp/log.do_configure.25603
Log data follows:
| DEBUG: Executing python function sysroot_cleansstate
| DEBUG: Python function sysroot_cleansstate finished
| DEBUG: Executing shell function autotools_preconfigure
| DEBUG: Shell function autotools_preconfigure finished
| DEBUG: Executing python function autotools_copy_aclocals
| DEBUG: Python function autotools_copy_aclocals finished
| DEBUG: Executing shell function do_configure
| -- Running cmake version 3.2.2
| -- The C compiler identification is GNU 4.8.3
| -- The CXX compiler identification is GNU 4.8.3
| CMake Error at CMakeLists.txt:86 (PROJECT):
|   The CMAKE_C_COMPILER:
|
| gcc
|
|   is not a full path and was not found in the PATH.
|
|   Tell CMake where to find the compiler by setting either the environment
|   variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
|   the compiler, or to the compiler name if it is in the PATH.
|
|
| CMake Error at CMakeLists.txt:86 (PROJECT):
|   The CMAKE_CXX_COMPILER:
|
| g++
|
|   is not a full path and was not found in the PATH.
|
|   Tell CMake where to find the compiler by setting either the environment
|   variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
|   to the compiler, or to the compiler name if it is in the PATH.
|
|
| -- Configuring incomplete, errors occurred!

The problem should be the usage of cmake for a native package.

The cmake.bbclass disables the host path and thereby CMake could not 
find the gcc binary.


I think the cmake.bbclass need to distinguish between cross and native 
build and set the following for native build:

set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH )

This allows CMake to search the binaries, libraries and includes first 
in the CMAKE_FIND_ROOT_PATH, then in the CMAKE_SYSROOT and then in the 
non-rooted directories.


--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [oe] cmake update broke mariadb

2015-06-30 Thread Burton, Ross
On 30 June 2015 at 10:59, Koen Kooi  wrote:

> CMake Error at CMakeLists.txt:86 (PROJECT):
> |   The CMAKE_C_COMPILER:
> |
> | gcc
> |
> |   is not a full path and was not found in the PATH.
>

I'm definitely not the cmake maintainer and barely understand cmake files,
but the new release needs that to be a full path and not a filename.  The
recipe/class does this (as demonstrated by it working in
oe-core/meta-multimedia) so does the mariadb recipe do something else or
use a different class?

Ross
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core