From 40863a594372ede117533d5c0970a96d60e34371 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 22 Apr 2021 10:10:34 +0200 Subject: Incorporate project environment checksum into cc::compiler_info cache key --- libbuild2/bin/guess.cxx | 12 ++++++++++++ libbuild2/bin/guess.hxx | 9 +++++++++ 2 files changed, 21 insertions(+) (limited to 'libbuild2/bin') diff --git a/libbuild2/bin/guess.cxx b/libbuild2/bin/guess.cxx index 219b8e8..8dd3cb6 100644 --- a/libbuild2/bin/guess.cxx +++ b/libbuild2/bin/guess.cxx @@ -363,6 +363,9 @@ namespace build2 // will need to figure out what's important (some of them are clearly // for debugging of ld itself). // + // See also the note on environment and caching below if adding any new + // variables. + // static const char* gnu_ld_env[] = { "LD_RUN_PATH", "GNUTARGET", "LDEMULATION", "COLLECT_NO_DEMANGLE", nullptr}; @@ -381,6 +384,9 @@ namespace build2 // First check the cache. // + // Note that none of the information that we cache can be affected by + // the environment. + // string key; { sha256 cs; @@ -569,6 +575,9 @@ namespace build2 // Resource compiler environment variables. // + // See also the note on environment and caching below if adding any new + // variables. + // static const char* msvc_rc_env[] = {"INCLUDE", nullptr}; // Extracting rc information requires running it which can become @@ -583,6 +592,9 @@ namespace build2 // First check the cache. // + // Note that none of the information that we cache can be affected by + // the environment. + // string key; { sha256 cs; diff --git a/libbuild2/bin/guess.hxx b/libbuild2/bin/guess.hxx index e5da263..3307999 100644 --- a/libbuild2/bin/guess.hxx +++ b/libbuild2/bin/guess.hxx @@ -31,6 +31,9 @@ namespace build2 // The environment is an optional list of environment variables that // affect ar/ranlib result. // + // Watch out for the environment not to affect any of the extracted + // information since we cache it. + // struct ar_info { process_path ar_path; @@ -80,6 +83,9 @@ namespace build2 // The environment is an optional list of environment variables that // affect the linker result. // + // Watch out for the environment not to affect any of the extracted + // information since we cache it. + // // Note that for now the version is extracted only for some linkers. Once // it's done for all of them, we should drop optional. // @@ -113,6 +119,9 @@ namespace build2 // The environment is an optional list of environment variables that // affect the resource compiler result. // + // Watch out for the environment not to affect any of the extracted + // information since we cache it. + // struct rc_info { process_path path; -- cgit v1.1