cmake update broke mariadb
Hello,
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 ?
- armin
Quoted 6 lines · On 30 June 2015 at 01:39, akuster808 <[email protected]> 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?
Ross
Burton, Ross schreef op 30-06-15 om 11:44:
Quoted 10 lines · On 30 June 2015 at 01:39, akuster808 <[email protected]> wrote:
Quoted 7 lines
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! | See also
"/build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/build/CMakeFiles/CMakeOutput.log". | WARNING:
/build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/temp/run.do_configure.25603:1 exit 1 from
| cmake ${OECMAKE_SITEFILE}
/build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/mariadb-5.5.44 -DCMAKE_INSTALL_PREFIX:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr -DCMAKE_INSTALL_BINDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr/bin -DCMAKE_INSTALL_SBINDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr/sbin -DCMAKE_INSTALL_LIBEXECDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr/lib/mariadb -DCMAKE_INSTALL_SYSCONFDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/etc -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/com -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/var -DCMAKE_INSTALL_LIBDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr/lib -DCMAKE_INSTALL_INCLUDEDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr/include -DCMAKE_INSTALL_DATAROOTDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr/share -DCMAKE_INSTALL_SO_NO_EXE=0 -DCMAKE_TOOLCHAIN_FILE=/build/linaro/build/build/tmp-glibc/work/x86_64-linux/mariadb-native/5.5.44-r0/toolchain.cmake -DCMAKE_VERBOSE_MAKEFILE=1 -DWITH_EMBEDDED_SERVER=ON -DWITH_JEMALLOC=no
-DWITHOUT_TOKUDB=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE -DGROFF=FALSE
-DNROFF=FALSE -DENABLE_DTRACE=FALSE -DWITH_PIC=ON -DINSTALL_LAYOUT=RPM -DINSTALL_DOCDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/usr/share/doc/mariadb -DINSTALL_LIBDIR:PATH=lib -DINSTALL_PLUGINDIR:PATH=lib/plugin -DINSTALL_SYSCONFDIR:PATH=/build/linaro/build/build/tmp-glibc/sysroots/x86_64-linux/etc -DMYSQL_DATADIR:PATH=/var/mysql -DCAT_EXECUTABLE=which cat
-DCMAKE_AR:FILEPATH=ar -DLIBEDIT_INTERFACE=FALSE -DWITHOUT_AUTH_PAM=TRUE
-DWITHOUT_VALGRIND=TRUE -Wno-dev
| 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: Task 2056 (/build/linaro/build/meta-openembedded/meta-oe/recipes-support/mysql/mariadb-native_5.5.44.bb, do_configure) failed with exit code '1'
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
akuster808 schreef op 30-06-15 om 02:39:
Quoted 8 lines
Hello,
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 ?
I've been looking at this mariadb error and I've made no progress beyond upgrading it to the latest 5.5.x, which shows the same cmake problem
regards,
Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org
iD8DBQFVkmi6MkyGM64RGpERAmrsAJ0bCkH5omgOzpnB0dT8A6amMrYH6gCfU50x ZObEl6kQHbI+QDeiui3GxfU=
=E2ZF
-----END PGP SIGNATURE-----
Quoted 7 lines · Koen Kooi
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
Am 30.06.2015 um 11:59 schrieb Koen Kooi:
Quoted 42 lines
Burton, Ross schreef op 30-06-15 om 11:44:
Quoted 9 lines · On 30 June 2015 at 01:39, akuster808 <[email protected]> wrote:
Quoted 7 lines
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++ |
Quoted 8 lines
| 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.
Quoted 56 lines
Op 30 jun. 2015, om 12:32 heeft Stefan Herbrechtsmeier <[email protected]> het volgende geschreven:
Am 30.06.2015 um 11:59 schrieb Koen Kooi:
Quoted 42 lines
Burton, Ross schreef op 30-06-15 om 11:44:
Quoted 9 lines · On 30 June 2015 at 01:39, akuster808 <[email protected]> wrote:
Quoted 7 lines
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++ |Quoted 8 lines
| 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.
Quoted 8 lines
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 theCMAKE_SYSROOTand then in the non-rooted directories.
THanks for the hint, I’m going to test something like this:
[koen@thinkpad classes]$ git diff
meta/classes/cmake.bbclass +10 -0
@@ -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
Quoted 4 lines · Ross
On 30 June 2015 at 01:39, akuster808 <[email protected] <mailto:[email protected]>> wrote:
Quoted 8 lines
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?
yeah, that would have helped.
- armin
Quoted 2 lines
Ross