diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-12-21 08:03:07 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-12-21 08:03:07 +0000 |
commit | 827bc7fe53daee3885a03533195c7b33b21e0f88 (patch) | |
tree | 06b71d91b212db8d840be04c378b4112490b3320 | |
parent | d644801757bb1e2ad6a7a9715b3e57288c197ada (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.cpp | 1 | ||||
-rw-r--r-- | test/MC/COFF/timestamp.s | 4 | ||||
-rw-r--r-- | test/lit.cfg | 4 | ||||
-rw-r--r-- | test/lit.site.cfg.in | 1 |
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 |