aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/lld/COFF/Driver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/lld/COFF/Driver.cpp')
-rw-r--r--contrib/llvm-project/lld/COFF/Driver.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/llvm-project/lld/COFF/Driver.cpp b/contrib/llvm-project/lld/COFF/Driver.cpp
index e0afb6b18805..22ee2f133be9 100644
--- a/contrib/llvm-project/lld/COFF/Driver.cpp
+++ b/contrib/llvm-project/lld/COFF/Driver.cpp
@@ -1825,7 +1825,15 @@ void LinkerDriver::linkerMain(ArrayRef<const char *> argsArr) {
}
} else {
config->repro = false;
- config->timestamp = time(nullptr);
+ if (std::optional<std::string> epoch =
+ Process::GetEnv("SOURCE_DATE_EPOCH")) {
+ StringRef value(*epoch);
+ if (value.getAsInteger(0, config->timestamp))
+ fatal(Twine("invalid SOURCE_DATE_EPOCH timestamp: ") + value +
+ ". Expected 32-bit integer");
+ } else {
+ config->timestamp = time(nullptr);
+ }
}
// Handle /alternatename