-
Notifications
You must be signed in to change notification settings - Fork 36.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build: Fail to build libmultiprocess
for the arm-linux-gnueabihf
target
#24387
Comments
This is likely better opened upstream. |
It seems a makefile recipe calls target binary |
I think I'm seeing something a little different when I try to reproduce this with
I'm happy to help with any issues (either here or if you want to move it upstream https://github.com/chaincodelabs/libmultiprocess/issues/new) Is there an easy to way to get depends not to delete the build/staging directories when it finishes building something? So far I couldn't check what is happening with the build because all the directories are deleted. |
Confirming the same error when building at HEAD 3a618c1.
You could use a
and a
Also: https://github.com/bitcoin/bitcoin/blob/master/depends/packages.md#build-targets |
Ok. I am making some progress debugging this but I still can't reproduce the failure, and I've pretty confused about a number of things. My earlier build seemed to succeed only because I didn't have a cross compiler installed, so for some unknown reason the depends build was using the native compiler and appearing to succeed but actually building the wrong thing. Now I've set up the cross compiler... (details)
I'm running { nixpkgs ? import <nixpkgs> }:
let
pkgs = nixpkgs { };
crossPkgs = nixpkgs {
crossSystem = {
config = "aarch64-unknown-linux-gnu";
};
};
in
crossPkgs.callPackage
({ mkShell, cmake, curl, gcc, pkg-config }:
mkShell {
buildInputs = [ ];
nativeBuildInputs = [
cmake
curl
pkg-config
pkgs.gcc
];
SSL_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt";
}
)
{ } ...and build seems to be succeeding and producing ARM output, so I can't reproduce the original error. But I also don't understand why it's succeeding. Specifically I'm seeing cross-compiled libmultiprocess package build somehow detecting the native capnproto package (in CMakeCache.txt file):
despite the fact that depends build is explicitly setting non-native lib/cmake path (in
It's a mystery to me how it is detecting the native package when CMAKE_MODULE_PATH does not include /native/ Even more strangely. I don't understand how the Ideally the cross-compiled non-native multiprocess package should be depending on the cross-compiled non-native capnp package, so it uses the right capnp libraries. This appears to be happening in the original bug report, but is not happening for me. In any case the depends build does appear to be buggy. I think It'd be helpful to know what build environment / operating system the original bug report was happening on so I can try to reproduce and fix the problem on a system that isn't mysteriously working like mine. |
…Linux hosts c0f5cc1 build: Fix `libmultiprocess` cross-compiling to Linux hosts (Hennadii Stepanov) Pull request description: To successfully call the [`capnp_generate_cpp()`](https://github.com/chaincodelabs/libmultiprocess/blob/d576d975debdc9090bd2582f83f49c76c0061698/CMakeLists.txt#L45) function, the `libmultiprocess` build system must be provided with paths to the native `capnp` and `capnpc-c++` tools. This [comment](bitcoin#24387 (comment)) points the same: > I think `packages/libmultiprocess.mk` probably needs to be passing a `-DCAPNP_EXECUTABLE=.../depends/arm-linux-gnueabihf/native/bin/capnp` argument to cmake. Also the package should have dependencies on both `capnp` and `native_capnp`. Fixes bitcoin#24387. ACKs for top commit: ryanofsky: Code review ACK c0f5cc1 Tree-SHA512: 2986d8bf98d2761eceba21b1897145c5185a0922d4c2084e8812d4d07dc94237e5c2809036641c4f7c491a3414727fff328cba91ce138b89e37ec5cba61d8f61
…Linux hosts c0f5cc1 build: Fix `libmultiprocess` cross-compiling to Linux hosts (Hennadii Stepanov) Pull request description: To successfully call the [`capnp_generate_cpp()`](https://github.com/chaincodelabs/libmultiprocess/blob/d576d975debdc9090bd2582f83f49c76c0061698/CMakeLists.txt#L45) function, the `libmultiprocess` build system must be provided with paths to the native `capnp` and `capnpc-c++` tools. This [comment](bitcoin#24387 (comment)) points the same: > I think `packages/libmultiprocess.mk` probably needs to be passing a `-DCAPNP_EXECUTABLE=.../depends/arm-linux-gnueabihf/native/bin/capnp` argument to cmake. Also the package should have dependencies on both `capnp` and `native_capnp`. Fixes bitcoin#24387. ACKs for top commit: ryanofsky: Code review ACK c0f5cc1 Tree-SHA512: 2986d8bf98d2761eceba21b1897145c5185a0922d4c2084e8812d4d07dc94237e5c2809036641c4f7c491a3414727fff328cba91ce138b89e37ec5cba61d8f61
…Linux hosts c0f5cc1 build: Fix `libmultiprocess` cross-compiling to Linux hosts (Hennadii Stepanov) Pull request description: To successfully call the [`capnp_generate_cpp()`](https://github.com/chaincodelabs/libmultiprocess/blob/d576d975debdc9090bd2582f83f49c76c0061698/CMakeLists.txt#L45) function, the `libmultiprocess` build system must be provided with paths to the native `capnp` and `capnpc-c++` tools. This [comment](bitcoin#24387 (comment)) points the same: > I think `packages/libmultiprocess.mk` probably needs to be passing a `-DCAPNP_EXECUTABLE=.../depends/arm-linux-gnueabihf/native/bin/capnp` argument to cmake. Also the package should have dependencies on both `capnp` and `native_capnp`. Fixes bitcoin#24387. ACKs for top commit: ryanofsky: Code review ACK c0f5cc1 Tree-SHA512: 2986d8bf98d2761eceba21b1897145c5185a0922d4c2084e8812d4d07dc94237e5c2809036641c4f7c491a3414727fff328cba91ce138b89e37ec5cba61d8f61
…Linux hosts c0f5cc1 build: Fix `libmultiprocess` cross-compiling to Linux hosts (Hennadii Stepanov) Pull request description: To successfully call the [`capnp_generate_cpp()`](https://github.com/chaincodelabs/libmultiprocess/blob/d576d975debdc9090bd2582f83f49c76c0061698/CMakeLists.txt#L45) function, the `libmultiprocess` build system must be provided with paths to the native `capnp` and `capnpc-c++` tools. This [comment](bitcoin#24387 (comment)) points the same: > I think `packages/libmultiprocess.mk` probably needs to be passing a `-DCAPNP_EXECUTABLE=.../depends/arm-linux-gnueabihf/native/bin/capnp` argument to cmake. Also the package should have dependencies on both `capnp` and `native_capnp`. Fixes bitcoin#24387. ACKs for top commit: ryanofsky: Code review ACK c0f5cc1 Tree-SHA512: 2986d8bf98d2761eceba21b1897145c5185a0922d4c2084e8812d4d07dc94237e5c2809036641c4f7c491a3414727fff328cba91ce138b89e37ec5cba61d8f61
…Linux hosts c0f5cc1 build: Fix `libmultiprocess` cross-compiling to Linux hosts (Hennadii Stepanov) Pull request description: To successfully call the [`capnp_generate_cpp()`](https://github.com/chaincodelabs/libmultiprocess/blob/d576d975debdc9090bd2582f83f49c76c0061698/CMakeLists.txt#L45) function, the `libmultiprocess` build system must be provided with paths to the native `capnp` and `capnpc-c++` tools. This [comment](bitcoin#24387 (comment)) points the same: > I think `packages/libmultiprocess.mk` probably needs to be passing a `-DCAPNP_EXECUTABLE=.../depends/arm-linux-gnueabihf/native/bin/capnp` argument to cmake. Also the package should have dependencies on both `capnp` and `native_capnp`. Fixes bitcoin#24387. ACKs for top commit: ryanofsky: Code review ACK c0f5cc1 Tree-SHA512: 2986d8bf98d2761eceba21b1897145c5185a0922d4c2084e8812d4d07dc94237e5c2809036641c4f7c491a3414727fff328cba91ce138b89e37ec5cba61d8f61
On master (a6c3da1), building of
libmultiprocess
fails for thearm-linux-gnueabihf
target:The text was updated successfully, but these errors were encountered: