Skip to content

Commit 4601b7c

Browse files
committed
Merge bitcoin#31125: depends: add *FLAGS to gen_id
01df180 depends: add mold & ld.lld to gen_id (fanquake) d032ac8 depends: add *FLAGS to gen_id (fanquake) Pull request description: The depends cache should be busted when flags change, the same as any other tooling change. I'd also like to start passing `*FLAGS` into depends inside the Guix env, which, without this change, doesn't bust the cache. ACKs for top commit: hebasto: ACK 01df180. Tree-SHA512: 3809359fe763af9dde484e0c6bd3e262c4c09fcbe2f96ccf64194f5f9f840f5476b9c9929cf7bda7b8c14efeffd369cdb8c233625b79a944e1380df20698246f
2 parents eb243ff + 01df180 commit 4601b7c

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

depends/Makefile

+10-2
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,16 @@ include packages/packages.mk
141141
# 2. Before including packages/*.mk (excluding packages/packages.mk), since
142142
# they rely on the build_id variables
143143
#
144-
build_id:=$(shell env CC='$(build_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(build_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(build_AR)' NM='$(build_NM)' RANLIB='$(build_RANLIB)' STRIP='$(build_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' ./gen_id '$(BUILD_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
145-
$(host_arch)_$(host_os)_id:=$(shell env CC='$(host_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(host_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(host_AR)' NM='$(host_NM)' RANLIB='$(host_RANLIB)' STRIP='$(host_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' ./gen_id '$(HOST_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
144+
build_id:=$(shell env CC='$(build_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(build_CXX)' CXX_STANDARD='$(CXX_STANDARD)' \
145+
AR='$(build_AR)' NM='$(build_NM)' RANLIB='$(build_RANLIB)' STRIP='$(build_STRIP)' SHA256SUM='$(build_SHA256SUM)' \
146+
DEBUG='$(DEBUG)' NO_HARDEN='$(NO_HARDEN)' \
147+
./gen_id '$(BUILD_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
148+
149+
$(host_arch)_$(host_os)_id:=$(shell env CC='$(host_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(host_CXX)' CXX_STANDARD='$(CXX_STANDARD)' \
150+
CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' LDFLAGS='$(LDFLAGS)' \
151+
AR='$(host_AR)' NM='$(host_NM)' RANLIB='$(host_RANLIB)' STRIP='$(host_STRIP)' SHA256SUM='$(build_SHA256SUM)' \
152+
DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' \
153+
./gen_id '$(HOST_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))')
146154

147155
boost_packages_$(NO_BOOST) = $(boost_packages)
148156

depends/gen_id

+20-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
#!/usr/bin/env bash
22

33
# Usage: env [ CC=... ] [ C_STANDARD=...] [ CXX=... ] [CXX_STANDARD=...] \
4+
# [ CPPFLAGS=... ] [CFLAGS=...] [CXXFLAGS=...] [LDFLAGS=...] \
45
# [ AR=... ] [ NM=... ] [ RANLIB=... ] [ STRIP=... ] [ DEBUG=... ] \
5-
# [ LTO=... ] [ NO_HARDEN=... ] ./build-id [ID_SALT]...
6+
# [ LTO=... ] [ NO_HARDEN=... ] ./gen_id [ID_SALT]...
67
#
78
# Prints to stdout a SHA256 hash representing the current toolset, used by
89
# depends/Makefile as a build id for caching purposes (detecting when the
@@ -34,6 +35,13 @@
3435
echo "$@"
3536
echo "END ID SALT"
3637

38+
echo "BEGIN FLAGS"
39+
echo "CPPFLAGS=${CPPFLAGS}"
40+
echo "CFLAGS=${CFLAGS}"
41+
echo "CXXFLAGS=${CXXFLAGS}"
42+
echo "LDFLAGS=${LDFLAGS}"
43+
echo "END FLAGS"
44+
3745
# GCC only prints COLLECT_LTO_WRAPPER when invoked with just "-v", but we want
3846
# the information from "-v -E -" as well, so just include both.
3947
echo "BEGIN CC"
@@ -50,6 +58,17 @@
5058
echo "CXX_STANDARD=${CXX_STANDARD}"
5159
echo "END CXX"
5260

61+
# We use lld when cross-compiling for macOS, and it's version should
62+
# be tied to LLVM. However someone compiling with GCC and -fuse-ld=lld
63+
# would not see a cache bust if the LLVM toolchain was updated.
64+
echo "BEGIN lld"
65+
bash -c "ld.lld --version"
66+
echo "END lld"
67+
68+
echo "BEGIN mold"
69+
bash -c "mold --version"
70+
echo "END mold"
71+
5372
echo "BEGIN AR"
5473
bash -c "${AR} --version"
5574
env | grep '^AR_'

0 commit comments

Comments
 (0)