summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-12-21 08:03:07 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-12-21 08:03:07 +0000
commit827bc7fe53daee3885a03533195c7b33b21e0f88 (patch)
tree06b71d91b212db8d840be04c378b4112490b3320
parentd644801757bb1e2ad6a7a9715b3e57288c197ada (diff)
[MC, COFF] Unbreak support for COFF timestamps
Support for COFF timestamps was unintentionally broken in r246905 when it was conditionally available depending on whether or not LLVM was configured with LLVM_ENABLE_TIMESTAMPS. However, Config/config.h was never included which essentially broke the feature. Due to lax testing, the breakage was never identified until we observed strange failures during incremental links of Chromium. This issue is resolved by simply including Config/config.h in WinCOFFObjectWriter and teaching lit that the MC/COFF/timestamp.s test is conditionally supported depending on LLVM_ENABLE_TIMESTAMPS. With this in place, we can strengthen the test to ensure that it will not accidentally get broken in the future. This fixes PR25891. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256137 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/MC/WinCOFFObjectWriter.cpp1
-rw-r--r--test/MC/COFF/timestamp.s4
-rw-r--r--test/lit.cfg4
-rw-r--r--test/lit.site.cfg.in1
4 files changed, 9 insertions, 1 deletions
diff --git a/lib/MC/WinCOFFObjectWriter.cpp b/lib/MC/WinCOFFObjectWriter.cpp
index 59f06dcd113..ffb636a5932 100644
--- a/lib/MC/WinCOFFObjectWriter.cpp
+++ b/lib/MC/WinCOFFObjectWriter.cpp
@@ -17,6 +17,7 @@
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
+#include "llvm/Config/config.h"
#include "llvm/MC/MCAsmLayout.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCContext.h"
diff --git a/test/MC/COFF/timestamp.s b/test/MC/COFF/timestamp.s
index 917e1e717a8..ae982b4309e 100644
--- a/test/MC/COFF/timestamp.s
+++ b/test/MC/COFF/timestamp.s
@@ -1,4 +1,6 @@
// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s -o - | llvm-readobj -h | FileCheck %s
+// REQUIRES: timestamps
// CHECK: ImageFileHeader {
-// CHECK: TimeDateStamp: {{.*}}
+// CHECK: TimeDateStamp:
+// CHECK-NOT: 1970-01-01 00:00:00 (0x0)
diff --git a/test/lit.cfg b/test/lit.cfg
index 9fb9fb2b4de..3fb94e43f72 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -463,6 +463,10 @@ if platform.system() in ['Windows'] and re.match(r'.*-win32$', config.target_tri
if not re.match(r'^x86_64.*-(mingw32|windows-gnu|win32)', config.target_triple):
config.available_features.add('debug_frame')
+# Check if we are embedding timestamps.
+if config.enable_timestamps:
+ config.available_features.add('timestamps')
+
# Check if we should use gmalloc.
use_gmalloc_str = lit_config.params.get('use_gmalloc', None)
if use_gmalloc_str is not None:
diff --git a/test/lit.site.cfg.in b/test/lit.site.cfg.in
index 13f5372ef7e..ae5814f02f4 100644
--- a/test/lit.site.cfg.in
+++ b/test/lit.site.cfg.in
@@ -36,6 +36,7 @@ config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
config.have_zlib = "@HAVE_LIBZ@"
config.have_dia_sdk = @HAVE_DIA_SDK@
config.enable_ffi = "@LLVM_ENABLE_FFI@"
+config.enable_timestamps = "@ENABLE_TIMESTAMPS@"
config.test_examples = "@ENABLE_EXAMPLES@"
# Support substitution of the tools_dir with user parameters. This is