66 lines · plain
1# RUN: yaml2obj %s -o %t.o2 3# Create an archive, specifying U so that timestamps/etc. are preserved.4# We only test timestamps as a proxy for full deterministic writing; i.e. we5# assume UID/GIDs are preserved if timestamps are preserved.6# RUN: touch -t 199505050555.55 %t.o7# RUN: rm -f %t.a8# RUN: llvm-ar crsU %t.a %t.o9 10# Test short flags.11# RUN: llvm-objcopy -D %t.a %t.2D.a12# RUN: env TZ=GMT llvm-ar tv %t.2D.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC13# RUN: llvm-objcopy -U %t.a %t.2U.a14# RUN: env TZ=GMT llvm-ar tv %t.2U.a | FileCheck %s --check-prefix=CHECK-NONDETERMINISTIC15 16# RUN: llvm-strip -D %t.a -o %t.3D.a17# RUN: env TZ=GMT llvm-ar tv %t.3D.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC18# RUN: llvm-strip -U %t.a -o %t.3U.a19# RUN: env TZ=GMT llvm-ar tv %t.3U.a | FileCheck %s --check-prefix=CHECK-NONDETERMINISTIC20 21# Test long flags.22# RUN: llvm-objcopy --enable-deterministic-archives %t.a %t.4D.a23# RUN: env TZ=GMT llvm-ar tv %t.4D.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC24# RUN: llvm-objcopy --disable-deterministic-archives %t.a %t.4U.a25# RUN: env TZ=GMT llvm-ar tv %t.4U.a | FileCheck %s --check-prefix=CHECK-NONDETERMINISTIC26 27# RUN: llvm-strip --enable-deterministic-archives %t.a -o %t.5D.a28# RUN: env TZ=GMT llvm-ar tv %t.5D.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC29# RUN: llvm-strip --disable-deterministic-archives %t.a -o %t.5U.a30# RUN: env TZ=GMT llvm-ar tv %t.5U.a | FileCheck %s --check-prefix=CHECK-NONDETERMINISTIC31 32# If unspecified, verify that deterministic is the default.33# RUN: llvm-objcopy %t.a %t.6.a34# RUN: env TZ=GMT llvm-ar tv %t.6.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC35# RUN: llvm-strip %t.a -o %t.7.a36# RUN: env TZ=GMT llvm-ar tv %t.7.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC37 38# If both are specified, last one wins.39# RUN: llvm-objcopy -U -D %t.a %t.8.a40# RUN: env TZ=GMT llvm-ar tv %t.8.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC41# RUN: llvm-objcopy -D -U %t.a %t.9.a42# RUN: env TZ=GMT llvm-ar tv %t.9.a | FileCheck %s --check-prefix=CHECK-NONDETERMINISTIC43# RUN: llvm-objcopy -D -U -D -U --enable-deterministic-archives %t.a %t.10.a44# RUN: env TZ=GMT llvm-ar tv %t.10.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC45 46# RUN: llvm-strip -U -D %t.a -o %t.11.a47# RUN: env TZ=GMT llvm-ar tv %t.11.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC48# RUN: llvm-strip -D -U %t.a -o %t.12.a49# RUN: env TZ=GMT llvm-ar tv %t.12.a | FileCheck %s --check-prefix=CHECK-NONDETERMINISTIC50# RUN: llvm-strip -D -U -D -U --enable-deterministic-archives %t.a -o %t.13.a51# RUN: env TZ=GMT llvm-ar tv %t.13.a | FileCheck %s --check-prefix=CHECK-DETERMINISTIC52 53# CHECK-DETERMINISTIC: {{[[:space:]]1970[[:space:]]}}54# CHECK-NONDETERMINISTIC: {{[[:space:]]1995[[:space:]]}}55 56!ELF57FileHeader:58 Class: ELFCLASS6459 Data: ELFDATA2LSB60 Type: ET_REL61 Machine: EM_X86_6462Sections:63 - Name: .text64 Type: SHT_PROGBITS65 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]66