[prev in list] [next in list] [prev in thread] [next in thread]
List: openembedded-core
Subject: [OE-core] [oe] cmake update broke mariadb
From: koen () dominion ! thruhere ! net (Koen Kooi)
Date: 2015-06-30 12:53:29
Message-ID: 00D88AEB-7B18-4906-8FD3-11B46A01BC11 () dominion ! thruhere ! net
[Download RAW message or body]
> Op 30 jun. 2015, om 12:32 heeft Stefan Herbrechtsmeier <stefan at \
> herbrechtsmeier.net> 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 <akuster808 at gmail.com> 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 at 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 <<EOF
# CMake system name must be something like "Linux".
@@ -67,7 +74,10 @@ list(APPEND CMAKE_MODULE_PATH "${STAGING_DATADIR}/cmake/Modules/")
# add for non /usr/lib libdir, e.g. /usr/lib64
set( CMAKE_LIBRARY_PATH ${libdir} ${base_libdir})
+${OECMAKE_PATHS}
+
EOF
+
}
addtask generate_toolchain_file after do_patch before do_configure
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic