Thanks for the fix. I don't actually understand why the fix is needed, when this was broken, or why mpgen linking should fail when it is cross compiled. That seems like an upstream bug and it would be nice to have more information about it, though the workaround here seems acceptable and has some nice features like being more efficient and using separate source/build directories.
There are some things I don't like about the workaround, but I don't think they are too important:
I don't think it's great that is now hardcoding multiprocess and mpgen target names into the build script instead of relying on the fact that install-lib and install-bin targets will automatically build the targets that are needed. For example now if an another helper library is added upstream or one of the targets is renamed, the install commands will fail because the right targets will not have been built.
I think it would be better if the build and install logic remained upstream instead of being moved into the depends build. If it is important to be able to separate build and install steps, we could add new "bin" and "lib" targets upstream to complement existing "install-bin" and "install-lib" targets.
I think it would be nice if other cleanups in this PR were separate commits so all the changes would be easy to understand.
I don't understand the "Rebuilding during installation has been skipped." comment, because I would not think anything would have been actually been built during the install step if make was just run previously.
But again these are all minor concerns and this looks good to merge in its current form (probably with 1 other ACK)
hebasto
commented at 6:45 PM on April 2, 2024:
member
I don't understand the "Rebuilding during installation has been skipped." comment, because I would not think anything would have been actually been built during the install step if make was just run previously.
Consider the following commands in the libmultiprocess root directory:
From the build log it follows that the util and multiprocess targets were being rebuilt.
That's not the case when using cmake --install ... command.
ryanofsky
commented at 7:04 PM on April 2, 2024:
contributor
From the build log it follows that the util and multiprocess targets were being rebuilt.
I don't think that's true. I see lines like Building CXX object CMakeFiles/util.dir/src/mp/util.cpp.o and Linking CXX static library libmultiprocess.a when targets are actually being built and lines like Built target util and Built target multiprocess when targets were previously built. Running make install-bin or make install-lib after building shouldn't cause anything to be rebuilt unless sources have changed. So I think the comment "Rebuilding during installation has been skipped" might be inaccurate, and that you could revert the change switching "make install-lib" and "make install-bin" to cmake --install --component ..., although neither of these things are too important.
OK. I've dropped all unrelated / unneeded changes.
That's reasonable, and the change is very simple now. To be clear, I wasn't asking for anything to be reverted, and I'm fine with any version of this PR. I'm mostly curious to know why a link error even happens at all. But I guess can download the mac sdk to experiment. Thanks for the fix and information about this.
DrahtBot added the label CI failed on Apr 2, 2024
fanquake approved
fanquake
commented at 9:21 AM on April 3, 2024:
member
ACK2de2ea2ff63b97eacb23234932c6e1f1f65e4494 - I checked that this fixes the macOS cross-compilation issue. I'm assuming these packages are also likely to change further in the (near) future, given the changes going in upstream: https://github.com/chaincodelabs/libmultiprocess/pulls?q=is%3Apr+is%3Aclosed.
I don't actually understand why the fix is needed, when this was broken, or why mpgen linking should fail when it is cross compiled.
I agree with Russ that it'd be better to actually figure out what the root cause is, and fix it more directly, rather than working around it just to make things compile.
fanquake merged this on Apr 3, 2024
fanquake closed this on Apr 3, 2024
hebasto deleted the branch on Apr 3, 2024
hebasto referenced this in commit c1e196794c on Apr 8, 2024
PastaPastaPasta referenced this in commit fb02836560 on Oct 25, 2024
PastaPastaPasta referenced this in commit 66566f30d2 on Oct 26, 2024
PastaPastaPasta referenced this in commit d0e50ee2a2 on Oct 28, 2024
PastaPastaPasta referenced this in commit eaaf0c8b1b on Oct 28, 2024
PastaPastaPasta referenced this in commit 867e34c50d on Oct 28, 2024
PastaPastaPasta referenced this in commit fbc0bce2e6 on Oct 29, 2024
PastaPastaPasta referenced this in commit 841ea27d7b on Oct 29, 2024
Pttn referenced this in commit 3ff81bd439 on Jan 10, 2025
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: 2026-04-24 21:13 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me