build: Fix capnp package build for Android #25322

pull hebasto wants to merge 2 commits into bitcoin:master from hebasto:220609-capnp changing 1 files +8 −1
  1. hebasto commented at 2:08 pm on June 9, 2022: member

    On master (e3c08eb620a2f317fc09fdf20969fa26f02afb91):

    0$ make -C depends capnp MULTIPROCESS=1 HOST=aarch64-linux-android ANDROID_SDK=$ANDROID_HOME ANDROID_NDK=$ANDROID_HOME/ndk/23.2.8568313 ANDROID_API_LEVEL=28 ANDROID_TOOLCHAIN_BIN=$ANDROID_HOME/ndk/23.2.8568313/toolchains/llvm/prebuilt/linux-x86_64/bin
    1...
    2ld: error: unable to find library -lkj
    3...
    

    This PR fixes this error, and also improves configuring according to the docs.

  2. build: Fix `capnp` package build for Android a413595c37
  3. build: Specify native binaries explicitly when building `capnp` package
    From `configure --help`:
      --with-external-capnp   use the system capnp binary (or the one specified
                              with $CAPNP) instead of compiling a new one (useful
                              for cross-compiling)
    8b8edc25c1
  4. fanquake added the label Build system on Jun 9, 2022
  5. fanquake requested review from ryanofsky on Jun 9, 2022
  6. ryanofsky approved
  7. ryanofsky commented at 3:40 pm on June 9, 2022: contributor
    Code review ACK 8b8edc25c13a3e613770bf38b21a2556192e6315. I’d be a little curious to know what causes the error and how --disable-shared fixes it, but these changes all look good
  8. DrahtBot commented at 0:51 am on June 21, 2022: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Conflicts

    No conflicts as of last run.

  9. fanquake commented at 8:57 am on August 1, 2022: member

    I’d be a little curious to know what causes the error and how –disable-shared fixes it, but these changes all look good

    +1. Can you explain why this is the best / correct fix?

    improves configuring according to the docs.

    the capnp docs?

  10. fanquake commented at 10:33 am on October 5, 2022: member
    @hebasto can you follow up here?
  11. hebasto commented at 9:58 am on October 9, 2022: member

    I’d be a little curious to know what causes the error…

    The build fails during the capnp_staged phase, when libtool triggered relink for the shared libkj-test library. Despite the ld: error: unable to find library -lkj message, the libkj-0.7.0.so is available in the stage directory, and -L option has been specified correctly as well. I guess it’s libkj.la’s responsibility.

    As we are not using the libkj-test library to build the libmultiprocess one, it seems safe and reasonable to workaround this issue by disabling shared libraries in the capnp package altogether.

    … and how --disable-shared fixes it, but these changes all look good

    It avoids libtools relink steps.


    improves configuring according to the docs.

    the capnp docs?

    Yes. To be precise, I mean ./configure --help from the capnp package (as the commit message quotes).

    Also, see https://github.com/capnproto/capnproto/blob/v0.7.0/c++/configure.ac#L78-L94

  12. fanquake merged this on Oct 10, 2022
  13. fanquake closed this on Oct 10, 2022

  14. hebasto deleted the branch on Oct 10, 2022
  15. sidhujag referenced this in commit b8a719903e on Oct 10, 2022
  16. bitcoin locked this on Oct 10, 2023

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-07-03 07:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me