Subject: Re: bug#44445: json-c cross-build fails from x86-64 to armhf

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 27 Aug 2021 15:43:14 -0400

Hello,

Jesse Gibbons <[email-masked]> writes:

> I'm trying to build a guix system for my banana pi m2u, but json-c
> fails to cross-build.
>
> ~$ guix describe
> Generation 319    Nov 04 2020 06:41:25    (current)
>   guix 3d67269
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 3d67269ee787c8624bafdd68df9fbf7eedd8eb1e
>
> ~$ guix build --system=armhf-linux json-c
> ...
> command "cmake" "../json-c-0.14" "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
> "-DCMAKE_INSTALL_PREFIX=/gnu/store/yqaw63n8wmg7f2ncc24019z87m5cwhim-json-c-0.14" 
> "-DCMAKE_INSTALL_LIBDIR=lib"
> "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
> "-DCMAKE_INSTALL_RPATH=/gnu/store/yqaw63n8wmg7f2ncc24019z87m5cwhim-json-c-0.14/lib" 
> "-DCMAKE_VERBOSE_MAKEFILE=ON" failed with status 1
> builder for
> `/gnu/store/m3x5hnlp9d9qmg72a0c7rqlz40yc0x0m-json-c-0.14.drv' failed 
> with exit code 1
> build of /gnu/store/m3x5hnlp9d9qmg72a0c7rqlz40yc0x0m-json-c-0.14.drv failed
> View build log at
> '/var/log/guix/drvs/m3/x5hnlp9d9qmg72a0c7rqlz40yc0x0m-json-c-0.14.drv.bz2'.
> guix build: error: build of
> `/gnu/store/m3x5hnlp9d9qmg72a0c7rqlz40yc0x0m-json-c-0.14.drv' failed
>
>
> Log attached.

As others have said, it looks like you used a native system here (via
offloading/QEMU user emulation) or both.  QEMU has limitations that
often causes run time failure, such as during the test suites.

There are substitutes for json-c for both the aarch64-linux and
arm-linux systems, and cross-compiling tested fine as well too:

$ guix build json-c --target=arm-linux-gnueabihf
/gnu/store/dmcii1kjf7035gfn8rg5xws3an7avffl-json-c-0.14

$ guix build json-c --target=aarch64-linux-gnu
/gnu/store/7y20nqvp19254picqa0l345lklf4zih1-json-c-0.14

Closing,

Maxim