Skip to content

Modules support for Ubuntu aarch64/armv8 #41

@kammce

Description

@kammce

We get the following when building libhal v5 we get:

 /home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/clang++ -stdlib=libc++ -flto  -ffunction-sections  -fdata-sections -O3 -DNDEBUG -fuse-ld=lld -flto -Wl,--gc-sections -Wl,-rpath,/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/lib/aarch64-unknown-linux-gnu -L/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/lib/aarch64-unknown-linux-gnu -lc++ -lc++abi -g -fsanitize=address -Xlinker --dependency-file=CMakeFiles/unit_test.dir/link.d CMakeFiles/unit_test.dir/tests/adc.test.cpp.o CMakeFiles/unit_test.dir/tests/main.test.cpp.o CMakeFiles/unit_test.dir/tests/interrupts.test.cpp.o -o unit_test -L/home/khalil-estell/.conan2/p/boost992b7dac743d9/p/lib -Wl,-rpath,/home/khalil-estell/.conan2/p/boost992b7dac743d9/p/lib  libhal.a  /home/khalil-estell/.conan2/p/stron766718163be94/p/lib/libstrong_ptr.a  /home/khalil-estell/.conan2/p/asyncfa9a1546441d1/p/lib/libasync_context.a  /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units.a  /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-systems.a  /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-core.a && :
/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld: /lib/aarch64-linux-gnu/libxml2.so.2: no version information available (required by /home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld)
/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld: /lib/aarch64-linux-gnu/libxml2.so.2: no version information available (required by /home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld)
ld.lld: error: /home/khalil-estell/.conan2/p/stron766718163be94/p/lib/libstrong_ptr.a(strong_ptr.cppm.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/asyncfa9a1546441d1/p/lib/libasync_context.a(async_context.cppm.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units.a(mp-units.cpp.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-systems.a(mp-units-systems.cpp.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-core.a(mp-units-core.cpp.o) is incompatible with elf64-littleaarch64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Full Logs

khalil-estell@khalil-estell-QEMU-Virtual-Machine:~/git/libhal/libhal/v5$ conan build -pr:a hal/tc/llvm

======== Input profiles ========
Profile host:
[settings]
arch=armv8
build_type=Release
compiler=clang
compiler.cppstd=23
compiler.libcxx=libc++
compiler.version=20
os=Linux
[tool_requires]
*: llvm-toolchain/20

Profile build:
[settings]
arch=armv8
build_type=Release
compiler=clang
compiler.cppstd=23
compiler.libcxx=libc++
compiler.version=20
os=Linux
[tool_requires]
!llvm-toolchain/*: llvm-toolchain/20, cmake/[>=3.28.0 <5.0.0]


======== Computing dependency graph ========
Connecting to remote 'conancenter' anonymously
Connecting to remote 'libhal' anonymously
strong_ptr/0.1.5: Not found in local cache, looking in remotes...
strong_ptr/0.1.5: Checking remote: conancenter
strong_ptr/0.1.5: Checking remote: libhal
strong_ptr/0.1.5: Downloaded recipe revision bc4052f083a3854873fe63dfce514b9a
async_context/0.0.6: Not found in local cache, looking in remotes...
async_context/0.0.6: Checking remote: conancenter
async_context/0.0.6: Checking remote: libhal
async_context/0.0.6: Downloaded recipe revision 92e59ffed23a386a09f85962910121c4
benchmark/1.9.4: Not found in local cache, looking in remotes...
benchmark/1.9.4: Checking remote: conancenter
benchmark/1.9.4: Downloaded recipe revision ce4403f7a24d3e1f907cd9da4b678be4
mp-units/2.5.1@libhal: Not found in local cache, looking in remotes...
mp-units/2.5.1@libhal: Checking remote: conancenter
mp-units/2.5.1@libhal: Checking remote: libhal
mp-units/2.5.1@libhal: Downloaded recipe revision 12e65cd3ba978adbfd5b55d1ec1737e4
Graph root
    conanfile.py (libhal/None): /home/khalil-estell/git/libhal/libhal/v5/conanfile.py
Requirements
    async_context/0.0.6#92e59ffed23a386a09f85962910121c4 - Downloaded (libhal)
    mp-units/2.5.1@libhal#12e65cd3ba978adbfd5b55d1ec1737e4 - Downloaded (libhal)
    strong_ptr/0.1.5#bc4052f083a3854873fe63dfce514b9a - Downloaded (libhal)
Test requirements
    benchmark/1.9.4#ce4403f7a24d3e1f907cd9da4b678be4 - Downloaded (conancenter)
    boost-ext-ut/2.3.1#e0a2761f845926e65a8aee07e3995ed5 - Cache
Build requirements
    cmake/3.27.1#7d5f14447c023feef9f59640be53619a - Cache
    cmake/4.2.3#c5c10d4c90874997553970589940ab9c - Cache
    llvm-toolchain/20#82cbb9c8340ecae8a24f578d1a03acfe - Cache
    ninja/1.13.2#c8c5dc2a52ed6e4e42a66d75b4717ceb - Cache
Resolved version ranges
    async_context/[^0.0.6]: async_context/0.0.6
    cmake/[>=3.16.3 <4]: cmake/3.27.1
    cmake/[>=3.21 <4]: cmake/3.27.1
    cmake/[>=3.28.0 <5.0.0]: cmake/4.2.3
    cmake/[>=4.2.1 <5]: cmake/4.2.3
    cmake/[^4.0.0]: cmake/4.2.3
    ninja/[^1.3.0]: ninja/1.13.2
    strong_ptr/[^0.1.3]: strong_ptr/0.1.5

======== Computing necessary packages ========
benchmark/1.9.4: Main binary package '5d4d7b30d5c4492934948667ab32fb80101a9ea1' missing
benchmark/1.9.4: Checking 7 compatible configurations
benchmark/1.9.4: Compatible configurations not found in cache, checking servers
benchmark/1.9.4: 'f967cc37d6b6cea703ee04a7a96293d4ea9ea90b': compiler.cppstd=17
benchmark/1.9.4: '562e2d5c1217705a35256d0d2fd12a35a909fbd2': compiler.cppstd=gnu17
benchmark/1.9.4: '6c54c20277b036222233f7376a60f98ed1c265d8': compiler.cppstd=20
benchmark/1.9.4: '6321dba749f29ffb2900bcb9cb97f7d9679b0a18': compiler.cppstd=gnu20
benchmark/1.9.4: '26e7a72f5a96c86c0a7df7f7746973be17805063': compiler.cppstd=gnu23
benchmark/1.9.4: '55bfe93905e78d0eec9a43a8d41f588f8225233a': compiler.cppstd=26
benchmark/1.9.4: 'd4ba1b1568b131e2c6a2f445a2da2871d993ea4c': compiler.cppstd=gnu26
benchmark/1.9.4: No compatible configuration found

A new experimental approach for binary compatibility detection is available.
    Enable it by setting the core.graph:compatibility_mode=optimized conf
    and get improved performance when querying multiple compatible binaries in remotes.

Requirements
    async_context/0.0.6#92e59ffed23a386a09f85962910121c4:0c8c284891feaf9264f5c41b1a7ee90b3aeab15b#1f2edbe5880265b34750c8dc3808f20d - Download (libhal)
    mp-units/2.5.1@libhal#12e65cd3ba978adbfd5b55d1ec1737e4:03fdbf9759534cd67d6174735e786d6712eb22f2#00ae560b0c31e1396dd182c769bfde0a - Download (libhal)
    strong_ptr/0.1.5#bc4052f083a3854873fe63dfce514b9a:0c8c284891feaf9264f5c41b1a7ee90b3aeab15b#dfaa62dd26d6854d4bce87b3af0a8e33 - Download (libhal)
Test requirements
    boost-ext-ut/2.3.1#e0a2761f845926e65a8aee07e3995ed5:da39a3ee5e6b4b0d3255bfef95601890afd80709#5e29af0f7faedd89c18243c8d32acefa - Cache
Build requirements
    cmake/4.2.3#c5c10d4c90874997553970589940ab9c:c93719558cf197f1df5a7f1d071093e26f0e44a0#e08c83b6e6f21dc46bd8b05525e5825b - Cache
    llvm-toolchain/20#82cbb9c8340ecae8a24f578d1a03acfe:9e90a910b7ecce32a418c8272227a4621aab6f68#2d55359ebc7265b10e13f41f32061c7f - Cache
    ninja/1.13.2#c8c5dc2a52ed6e4e42a66d75b4717ceb:85c999356992c5713d308db1a4d7bab6bf572f27#8ed6094ed0df97f2698e7dc6a0a087ec - Cache
Skipped binaries
    benchmark/1.9.4, cmake/3.27.1

======== Installing packages ========

-------- Downloading 3 packages --------
Downloading binary packages in 2 parallel threads
async_context/0.0.6: Retrieving package 0c8c284891feaf9264f5c41b1a7ee90b3aeab15b from remote 'libhal' 
mp-units/2.5.1@libhal: Retrieving package 03fdbf9759534cd67d6174735e786d6712eb22f2 from remote 'libhal' 
mp-units/2.5.1@libhal: Package installed 03fdbf9759534cd67d6174735e786d6712eb22f2
mp-units/2.5.1@libhal: Downloaded package revision 00ae560b0c31e1396dd182c769bfde0a
strong_ptr/0.1.5: Retrieving package 0c8c284891feaf9264f5c41b1a7ee90b3aeab15b from remote 'libhal' 
async_context/0.0.6: Package installed 0c8c284891feaf9264f5c41b1a7ee90b3aeab15b
async_context/0.0.6: Downloaded package revision 1f2edbe5880265b34750c8dc3808f20d
strong_ptr/0.1.5: Package installed 0c8c284891feaf9264f5c41b1a7ee90b3aeab15b
strong_ptr/0.1.5: Downloaded package revision dfaa62dd26d6854d4bce87b3af0a8e33
llvm-toolchain/20: Already installed! (1 of 7)
cmake/4.2.3: Already installed! (2 of 7)
ninja/1.13.2: Already installed! (4 of 7)
boost-ext-ut/2.3.1: Already installed! (5 of 7)
WARN: deprecated: Usage of deprecated Conan 1.X features that will be removed in Conan 2.X:
WARN: deprecated:     'cpp_info.names' used in: boost-ext-ut/2.3.1
WARN: deprecated:     'cpp_info.filenames' used in: boost-ext-ut/2.3.1

======== Finalizing install (deploy, generators) ========
conanfile.py (libhal/None): Calling generate()
conanfile.py (libhal/None): Generators folder: /home/khalil-estell/git/libhal/libhal/v5/build/armv8-Linux-clang-20/Release/generators
conanfile.py (libhal/None): CMakeToolchain generated: conan_toolchain.cmake
conanfile.py (libhal/None): CMakeToolchain: Preset 'conan-release' added to CMakePresets.json.
    (cmake>=3.23) cmake --preset conan-release
    (cmake<3.23) cmake <path> -G Ninja -DCMAKE_TOOLCHAIN_FILE=generators/conan_toolchain.cmake  -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Release
conanfile.py (libhal/None): CMakeToolchain generated: /home/khalil-estell/git/libhal/libhal/v5/build/armv8-Linux-clang-20/Release/generators/CMakePresets.json
conanfile.py (libhal/None): CMakeToolchain generated: /home/khalil-estell/git/libhal/libhal/v5/CMakeUserPresets.json
conanfile.py (libhal/None): CMakeDeps necessary find_package() and targets for your CMakeLists.txt
    find_package(ut)
    target_link_libraries(... Boost::ut)
conanfile.py (libhal/None): Generating aggregated env files
conanfile.py (libhal/None): Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']

======== Calling build() ========
conanfile.py (libhal/None): Calling build()
conanfile.py (libhal/None): Running CMake.configure()
conanfile.py (libhal/None): RUN: cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="/home/khalil-estell/git/libhal/libhal/v5" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" -DCMAKE_BUILD_TYPE="Release" "/home/khalil-estell/git/libhal/libhal/v5"
-- Using Conan toolchain: /home/khalil-estell/git/libhal/libhal/v5/build/armv8-Linux-clang-20/Release/generators/conan_toolchain.cmake
-- Conan toolchain: Defining libcxx as C++ flags: -stdlib=libc++
-- Conan toolchain: C++ Standard 23 with extensions OFF
-- The CXX compiler identification is Clang 20.1.8
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:73 (install):
  CMake's EXPORT_PACKAGE_DEPENDENCIES support is experimental.  It is meant
  only for experimentation and feedback to CMake developers.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Conan: Component target declared 'boost-ext-ut::ut'
-- Conan: Target declared 'Boost::ut'
Error copying file (if different) from "/home/khalil-estell/git/libhal/libhal/v5/build/armv8-Linux-clang-20/Release/compile_commands.json" to "/home/khalil-estell/git/libhal/libhal/v5/compile_commands.json".
-- Configuring done (0.6s)
-- Generating done (0.0s)
-- Build files have been written to: /home/khalil-estell/git/libhal/libhal/v5/build/armv8-Linux-clang-20/Release

conanfile.py (libhal/None): Running CMake.build()
conanfile.py (libhal/None): RUN: cmake --build "/home/khalil-estell/git/libhal/libhal/v5/build/armv8-Linux-clang-20/Release" -- -j2
[1/45] Scanning /home/khalil-estell/.conan2/p/stron766718163be94/p/modules/strong_ptr.cppm for CXX dependencies
warning: argument unused during compilation: '-c'
[2/45] Scanning /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/miu/mp-units-core.cpp for CXX dependencies
warning: argument unused during compilation: '-c'
[4/45] Scanning /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/miu/mp-units-systems.cpp for CXX dependencies
warning: argument unused during compilation: '-c'
[5/45] Scanning /home/khalil-estell/.conan2/p/asyncfa9a1546441d1/p/modules/async_context.cppm for CXX dependencies
warning: argument unused during compilation: '-c'
[9/45] Scanning /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/miu/mp-units.cpp for CXX dependencies
warning: argument unused during compilation: '-c'
[31/50] Building CXX object 'CMakeFiles/mp-units__core@synth_8a7b6d6215bc.dir/d8728cffcb49.bmi'
clang++: warning: argument unused during compilation: '-c' [-Wunused-command-line-argument]
[32/50] Building CXX object 'CMakeFiles/mp-units__systems@synth_8a7b6d6215bc.dir/03e38ca127f7.bmi'
clang++: warning: argument unused during compilation: '-c' [-Wunused-command-line-argument]
[33/50] Building CXX object 'CMakeFiles/mp-units__mp-units@synth_8a7b6d6215bc.dir/0c68f0103fb5.bmi'
clang++: warning: argument unused during compilation: '-c' [-Wunused-command-line-argument]
[49/50] Linking CXX executable unit_test
FAILED: [code=1] unit_test 
: && /home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/clang++ -stdlib=libc++ -flto  -ffunction-sections  -fdata-sections -O3 -DNDEBUG -fuse-ld=lld -flto -Wl,--gc-sections -Wl,-rpath,/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/lib/aarch64-unknown-linux-gnu -L/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/lib/aarch64-unknown-linux-gnu -lc++ -lc++abi -g -fsanitize=address -Xlinker --dependency-file=CMakeFiles/unit_test.dir/link.d CMakeFiles/unit_test.dir/tests/adc.test.cpp.o CMakeFiles/unit_test.dir/tests/main.test.cpp.o CMakeFiles/unit_test.dir/tests/interrupts.test.cpp.o -o unit_test -L/home/khalil-estell/.conan2/p/boost992b7dac743d9/p/lib -Wl,-rpath,/home/khalil-estell/.conan2/p/boost992b7dac743d9/p/lib  libhal.a  /home/khalil-estell/.conan2/p/stron766718163be94/p/lib/libstrong_ptr.a  /home/khalil-estell/.conan2/p/asyncfa9a1546441d1/p/lib/libasync_context.a  /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units.a  /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-systems.a  /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-core.a && :
/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld: /lib/aarch64-linux-gnu/libxml2.so.2: no version information available (required by /home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld)
/home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld: /lib/aarch64-linux-gnu/libxml2.so.2: no version information available (required by /home/khalil-estell/.conan2/p/b/llvm-8d6b6357e2e47/p/bin/ld.lld)
ld.lld: error: /home/khalil-estell/.conan2/p/stron766718163be94/p/lib/libstrong_ptr.a(strong_ptr.cppm.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/asyncfa9a1546441d1/p/lib/libasync_context.a(async_context.cppm.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units.a(mp-units.cpp.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-systems.a(mp-units-systems.cpp.o) is incompatible with elf64-littleaarch64
ld.lld: error: /home/khalil-estell/.conan2/p/mp-un4305eb5fc5588/p/lib/libmp-units-core.a(mp-units-core.cpp.o) is incompatible with elf64-littleaarch64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

ERROR: conanfile.py (libhal/None): Error in build() method, line 124
	cmake.build()
	ConanException: Error 1 while executing

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions