conan-center-index: [package] wayland/1.20.0:build fail when cross build from linux x86_64 to linux arm64
Package and Environment Details
- Package Name/Version: wayland/1.20.0
- Operating System+version: Linux Ubuntu 16.04
- Compiler+version: GCC 7.5 and linaro aarch64-linux-gnu-gcc 7.5
- Docker image: zvicii/gcc7-arm64-ubuntu16.04-jenkins(based on conanio/gcc7-ubuntu16.04-jenkins)
- Conan version: conan 1.49.0
- Python version: Python 3.7.13
Conan profile
Configuration (profile_host):
[settings]
arch=armv8
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=14
compiler.libcxx=libstdc++11
compiler.version=7
os=Linux
os_build=Linux
[options]
[build_requires]
[env]
AR=aarch64-linux-gnu-ar
AS=aarch64-linux-gnu-as
CC=aarch64-linux-gnu-gcc
CMAKE_CXX_COMPILER=aarch64-linux-gnu-g++
CMAKE_C_COMPILER=aarch64-linux-gnu-gcc
CXX=aarch64-linux-gnu-g++
FC=aarch64-linux-gnu-gfortran
LD=aarch64-linux-gnu-ld
RANLIB=aarch64-linux-gnu-ranlib
STRIP=aarch64-linux-gnu-strip
Configuration (profile_build):
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=14
compiler.libcxx=libstdc++11
compiler.version=7
os=Linux
[options]
[build_requires]
[env]
AR=ar
AS=as
CC=gcc
CMAKE_CXX_COMPILER=g++
CMAKE_C_COMPILER=gcc
CXX=g++
FC=gfortran
LD=ld
RANLIB=ranlib
STRIP=strip
Steps to reproduce
My project requires qt, and build qt as static lib, so it will build wayland. Im cross building from linux x86_64 to linux arm64, as you can see from the two profiles.
when build wayland, the log says its not cross building, and do a sanity check. and no doubt it would fail since the executable is built by aarch64-linux-gnu-gcc, so its meant for arm64 platform.
/home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder/meson-private/sanitycheckc.exe: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=61f61f83a9cc22e2e73ef627ecaadef914792a27, stripped
I try to make meson realize its cross building, but its beyond my knowledge. So I turn to this community for help, many thanks.
Logs
wayland/1.20.0: Applying build-requirement: meson/0.59.3
wayland/1.20.0: Applying build-requirement: ninja/1.10.2
wayland/1.20.0: Copying sources to build folder
wayland/1.20.0: Building your package in /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb
wayland/1.20.0: Generator pkg_config created libffi.pc
wayland/1.20.0: Generator pkg_config created libxml-2.0.pc
wayland/1.20.0: Generator pkg_config created expat.pc
wayland/1.20.0: Generator pkg_config created zlib.pc
wayland/1.20.0: Generator pkg_config created libiconv.pc
wayland/1.20.0: Aggregating env generators
wayland/1.20.0: Calling build()
The Meson build system
Version: 0.59.3
Source dir: /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/source_subfolder
Build dir: /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder
Build type: native build
Project name: wayland
Project version: 1.20.0
source_subfolder/meson.build:1:0: ERROR: Could not invoke sanity test executable: [Errno 8] Exec format error: '/home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder/meson-private/sanitycheckc.exe'.
A full log can be found at /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder/meson-logs/meson-log.txt
wayland/1.20.0:
WARN: qt/5.15.4: requirement openssl/1.1.1o overridden by nim/None to openssl/1.1.1n
WARN: qt/5.15.4: requirement icu/71.1 overridden by nim/None to icu/71.1
WARN: fontconfig/2.13.93: requirement freetype/2.12.1 overridden by qt/5.15.4 to freetype/2.11.1
WARN: xkbcommon/1.4.1: requirement wayland/1.20.0 overridden by qt/5.15.4 to wayland/1.20.0
WARN: wayland/1.20.0: requirement libxml2/2.9.12 overridden by xkbcommon/1.4.1 to libxml2/2.9.14
WARN: wayland/1.20.0: requirement expat/2.4.2 overridden by xkbcommon/1.4.1 to expat/2.4.8
WARN: nim_tools_http/1.1.0-19-g98c6d593@yunxin/testing: requirement nebase/v3.7.0-159-gacc5dd86@yunxin/testing overridden by nim/None to nebase/v3.7.0-171-gc92da913@yunxin/testing
WARN: nebase/v3.7.0-171-gc92da913@yunxin/testing: requirement zlib/1.2.11 overridden by nim_tools_http/1.1.0-19-g98c6d593@yunxin/testing to zlib/1.2.12
WARN: libevent/2.1.12: requirement openssl/1.1.1m overridden by nebase/v3.7.0-171-gc92da913@yunxin/testing to openssl/1.1.1n
WARN: libcurl/7.80.0: requirement openssl/1.1.1o overridden by nebase/v3.7.0-171-gc92da913@yunxin/testing to openssl/1.1.1n
WARN: ne_phoenix/0.1.0-44-gc4880ff7@yunxin/testing: requirement zlib/1.2.11 overridden by h_available/1.5.1-4-gdf0190a1@yunxin/testing to zlib/1.2.12
WARN: aws-sdk-cpp/1.9.234: requirement aws-c-common/0.6.19 overridden by h_available/1.5.1-4-gdf0190a1@yunxin/testing to aws-c-common/0.7.4
WARN: aws-c-cal/0.5.13: requirement aws-c-common/0.6.19 overridden by aws-sdk-cpp/1.9.234 to aws-c-common/0.7.4
WARN: aws-c-http/0.6.13: requirement aws-c-common/0.6.19 overridden by aws-sdk-cpp/1.9.234 to aws-c-common/0.7.4
WARN: aws-c-compression/0.2.14: requirement aws-c-common/0.6.19 overridden by aws-c-http/0.6.13 to aws-c-common/0.7.4
WARN: aws-c-io/0.10.20: requirement aws-c-common/0.6.19 overridden by aws-c-http/0.6.13 to aws-c-common/0.7.4
WARN: aws-crt-cpp/0.17.23: requirement aws-c-common/0.6.19 overridden by aws-sdk-cpp/1.9.234 to aws-c-common/0.7.4
WARN: aws-c-event-stream/0.2.7: requirement aws-c-common/0.6.19 overridden by aws-crt-cpp/0.17.23 to aws-c-common/0.7.4
WARN: aws-c-event-stream/0.2.7: requirement aws-c-io/0.11.2 overridden by aws-crt-cpp/0.17.23 to aws-c-io/0.10.20
WARN: aws-checksums/0.1.12: requirement aws-c-common/0.6.19 overridden by aws-c-event-stream/0.2.7 to aws-c-common/0.7.4
WARN: aws-c-auth/0.6.11: requirement aws-c-common/0.6.19 overridden by aws-crt-cpp/0.17.23 to aws-c-common/0.7.4
WARN: aws-c-sdkutils/0.1.2: requirement aws-c-common/0.6.19 overridden by aws-c-auth/0.6.11 to aws-c-common/0.7.4
WARN: aws-c-mqtt/0.7.10: requirement aws-c-common/0.6.19 overridden by aws-crt-cpp/0.17.23 to aws-c-common/0.7.4
WARN: aws-c-s3/0.1.37: requirement aws-c-common/0.6.19 overridden by aws-crt-cpp/0.17.23 to aws-c-common/0.7.4
wayland/1.20.0: WARN: Package binary is corrupted, removing: e7fe6d00c2e8fadd056c0ec4c294fa6925173acb
wayland/1.20.0: WARN: Build folder is dirty, removing it: /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb
wayland/1.20.0: ERROR: Package 'e7fe6d00c2e8fadd056c0ec4c294fa6925173acb' build failed
wayland/1.20.0: WARN: Build folder /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb
ERROR: wayland/1.20.0: Error in build() method, line 89
meson = self._configure_meson()
while calling '_configure_meson', line 83
args=["--datadir={}".format(os.path.join(self.package_folder, "res"))]
ConanException: Error 1 while executing meson "/home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/source_subfolder" "/home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder" --backend=ninja -Dprefix="/home/conan/.conan/data/wayland/1.20.0/_/_/package/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb" -Dlibdir="lib" -Dbindir="bin" -Dsbindir="bin" -Dlibexecdir="bin" -Dincludedir="include" -Ddefault_library="static" -Db_staticpic="true" -Dlibraries="true" -Ddtd_validation="true" -Ddocumentation="false" -Dtests="false" -Dscanner="true" '--datadir=/home/conan/.conan/data/wayland/1.20.0/_/_/package/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/res' --buildtype=release
CMake Error at build/conan.cmake:651 (message):
Conan install failed='1'
Call Stack (most recent call first):
CMakeLists.txt:88 (conan_cmake_install)
-- Configuring incomplete, errors occurred!
See also "/home/conan/workspace/nim-cross-platform-sdk/build/CMakeFiles/CMakeOutput.log".
Build started at 2022-06-23T04:23:51.757696
Main binary: /opt/pyenv/versions/3.7.13/bin/python3
Build Options: -Dprefix=/home/conan/.conan/data/wayland/1.20.0/_/_/package/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb -Dlibdir=lib -Dbindir=bin -Dsbindir=bin -Dlibexecdir=bin -Dincludedir=include -Ddefault_library=static -Db_staticpic=true -Dlibraries=true -Ddtd_validation=true -Ddocumentation=false -Dtests=false -Dscanner=true -Ddatadir=/home/conan/.conan/data/wayland/1.20.0/_/_/package/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/res -Dbackend=ninja -Dbuildtype=release
Python system: Linux
The Meson build system
Version: 0.59.3
Source dir: /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/source_subfolder
Build dir: /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder
Build type: native build
Project name: wayland
Project version: 1.20.0
Sanity testing C compiler: aarch64-linux-gnu-gcc
Is cross compiler: False.
Sanity check compiler command line: aarch64-linux-gnu-gcc sanitycheckc.c -o sanitycheckc.exe -O3 -s -fPIC -I/home/conan/.conan/data/libffi/3.4.2/_/_/package/8fd38d381db52e2495321ce060b9f457656f6c8f/include -I/home/conan/.conan/data/libxml2/2.9.14/_/_/package/567a33571ec0f7e332612d29d3ba19e5b4564386/include -I/home/conan/.conan/data/libxml2/2.9.14/_/_/package/567a33571ec0f7e332612d29d3ba19e5b4564386/include/libxml2 -I/home/conan/.conan/data/expat/2.4.8/_/_/package/8ca280ee2b2069bbe2754a427afd38b56aff1751/include -I/home/conan/.conan/data/zlib/1.2.12/_/_/package/8fd38d381db52e2495321ce060b9f457656f6c8f/include -I/home/conan/.conan/data/libiconv/1.16/_/_/package/8fd38d381db52e2495321ce060b9f457656f6c8f/include -DXML_STATIC -DLIBXML_STATIC -DFFI_BUILDING -DNDEBUG -D_FILE_OFFSET_BITS=64 -L/home/conan/.conan/data/libffi/3.4.2/_/_/package/8fd38d381db52e2495321ce060b9f457656f6c8f/lib -L/home/conan/.conan/data/libxml2/2.9.14/_/_/package/567a33571ec0f7e332612d29d3ba19e5b4564386/lib -L/home/conan/.conan/data/expat/2.4.8/_/_/package/8ca280ee2b2069bbe2754a427afd38b56aff1751/lib -L/home/conan/.conan/data/zlib/1.2.12/_/_/package/8fd38d381db52e2495321ce060b9f457656f6c8f/lib -L/home/conan/.conan/data/libiconv/1.16/_/_/package/8fd38d381db52e2495321ce060b9f457656f6c8f/lib
Sanity check compile stdout:
-----
Sanity check compile stderr:
-----
Running test binary command: /home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder/meson-private/sanitycheckc.exe
source_subfolder/meson.build:1:0: ERROR: Could not invoke sanity test executable: [Errno 8] Exec format error: '/home/conan/.conan/data/wayland/1.20.0/_/_/build/e7fe6d00c2e8fadd056c0ec4c294fa6925173acb/build_subfolder/meson-private/sanitycheckc.exe'.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 22 (16 by maintainers)
Its working now after I set ‘–build=wayland’, thx!
@andoalon Yes, please, open a separated issue with all details. You can mark as bug, and please, fill ALL details in the form. Otherwise, will be very hard to reproduce your scenario.
There is a PR fixing the cross-compilation https://github.com/conan-io/conan-center-index/pull/12143
@andoalon please, read https://docs.conan.io/en/latest/migrating_to_2.0/recipes.html#the-generate-method and https://docs.conan.io/en/latest/reference/conanfile/tools/cmake/cmaketoolchain.html
Basically,
CMakeToolchain
generates a toolchain cmake file, with all settings andCMakeDeps
generates Findxxx.cmake files. So you no longer need toconan_basic_setup
or inject any stuff to your CMakeLists.txtIn case it helps, I have been able to cross-compile the
wayland
package using theMesonToolchain
generator in my fork. FYI it requires Conan 1.50.0.