| ## Note: ls -l prints the modified timestamp |
| |
| ## Preserve dates when stripping to an output file. |
| # RUN: yaml2obj %s -o %t.1.o |
| # RUN: touch -m -t 199705050555.55 %t.1.o |
| # RUN: llvm-strip -p %t.1.o -o %t-preserved.1.o |
| # RUN: ls -l %t-preserved.1.o | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # Check that the stripped output is in fact a valid object file. |
| # RUN: llvm-readobj %t-preserved.1.o |
| |
| ## Preserve dates available via objcopy interface as well. |
| # RUN: yaml2obj %s -o %t.2.o |
| # RUN: touch -m -t 199705050555.55 %t.2.o |
| # RUN: llvm-objcopy -p %t.2.o %t-preserved.2.o |
| # RUN: ls -l %t-preserved.2.o | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # RUN: llvm-readobj %t-preserved.2.o |
| |
| ## Preserve dates when stripping in place. |
| # RUN: yaml2obj %s -o %t.3.o |
| # RUN: touch -m -t 199705050555.55 %t.3.o |
| # RUN: llvm-strip -p %t.3.o |
| # RUN: ls -l %t.3.o | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # RUN: llvm-readobj %t.3.o |
| |
| ## Without -p set, don't preserve dates. |
| # RUN: yaml2obj %s -o %t.4.o |
| # RUN: touch -m -t 199705050555.55 %t.4.o |
| # RUN: llvm-strip %t.4.o |
| # RUN: ls -l %t.4.o | FileCheck %s --check-prefix=CHECK-NO-PRESERVE-MTIME |
| # RUN: llvm-readobj %t.4.o |
| |
| ## Preserve dates in archives. |
| # RUN: yaml2obj %s -o %t.5.o |
| # RUN: rm -f %t.a |
| # RUN: llvm-ar cr %t.a %t.5.o |
| # RUN: touch -m -t 199705050555.55 %t.a |
| # RUN: llvm-strip -p %t.a |
| # RUN: ls -l %t.a | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # RUN: llvm-readobj %t.a |
| |
| ## Preserve dates in split DWO files. |
| # RUN: cp %p/Inputs/dwarf.dwo %t-input.dwo |
| # RUN: touch -m -t 199705050555.55 %t-input.dwo |
| # RUN: llvm-objcopy -p --split-dwo=%t-dwo %t-input.dwo %t-nondwo |
| # RUN: ls -l %t-dwo | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # RUN: llvm-readobj %t-dwo |
| # RUN: ls -l %t-nondwo | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # RUN: llvm-readobj %t-nondwo |
| |
| ## --preserve-dates and -p are aliases. |
| # RUN: llvm-strip --preserve-dates %t.1.o -o %t-preserved.1.alias.o |
| # RUN: ls -l %t-preserved.1.alias.o | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # RUN: cmp %t-preserved.1.alias.o %t-preserved.1.o |
| # RUN: llvm-objcopy --preserve-dates %t.2.o %t-preserved.2.alias.o |
| # RUN: ls -l %t-preserved.2.alias.o | FileCheck %s --check-prefix=CHECK-PRESERVE-MTIME |
| # RUN: cmp %t-preserved.2.o %t-preserved.2.alias.o |
| |
| # CHECK-PRESERVE-MTIME: {{[[:space:]]1997}} |
| # CHECK-NO-PRESERVE-MTIME-NOT: {{[[:space:]]1997}} |
| |
| !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |