From: David Majnemer Date: Mon, 21 Dec 2015 08:03:07 +0000 (+0000) Subject: [MC, COFF] Unbreak support for COFF timestamps X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=827bc7fe53daee3885a03533195c7b33b21e0f88 [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 --- 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