depends: Improve id string robustness
Summary:
core#20629: depends: Improve id string robustness
build: Proper quoting for var printing targets
Previously, if the value contained syntax that was meaningful to make,
the printing would fail. Quoting properly avoids this.
depends: Improve id string robustness
Environment variables and search paths can drastically effect the
operation of build tools.Include these in our id string to mitigate against false cache hits.
depends: Include GUIX_ENVIRONMENT in id string
https://github.com/bitcoin/bitcoin/pull/21375/commits/39741128d3775d198dbee34dc827353bfd18acd8
guix: Supply --link-profile
depends: Fix id_string invocations
We now use a script named gen_id to generate the base build_id/host_id.
This solves 2 problems:
- GNU Make special-casing exit code 127 (command not found) meant that warnings about missing tools would propagate to the user's terminal and broke our opportunistic build_id construction.
- This change ensures that we don't have arbitrary characters in our make variables that would be misinterpreted by Make.
See comments in depends/Makefile and depends/gen_id for more
information.
This is a backport of core#20629 and core#21427
and one commit from core#21375
Test Plan: guix build
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Differential Revision: https://reviews.bitcoinabc.org/D13940