For whatever reason ld64 requires that member headers (not the member themselves) should be aligned. The only way to do that is to edit the previous member so that it ends at an aligned boundary. Since modifying data put in an archive is an undesirable property, llvm-ar should only do it when it is absolutely necessary. llvm-svn: 295765
62 lines
2.6 KiB
Plaintext
62 lines
2.6 KiB
Plaintext
; This test just makes sure that llvm-ar can extract bytecode members
|
|
; from various style archives.
|
|
|
|
; RUN: cd %T
|
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
|
; RUN: llvm-ar p %p/Inputs/GNU.a very_long_bytecode_file_name.bc | \
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
|
|
; RUN: llvm-ar x %p/Inputs/GNU.a very_long_bytecode_file_name.bc
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
|
|
; RUN: very_long_bytecode_file_name.bc
|
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
|
; RUN: llvm-ar p %p/Inputs/MacOSX.a very_long_bytecode_file_name.bc | \
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
|
|
; RUN: llvm-ar x %p/Inputs/MacOSX.a very_long_bytecode_file_name.bc
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
|
|
; RUN: very_long_bytecode_file_name.bc
|
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
|
; RUN: llvm-ar p %p/Inputs/SVR4.a very_long_bytecode_file_name.bc | \
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
|
|
; RUN: llvm-ar x %p/Inputs/SVR4.a very_long_bytecode_file_name.bc
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
|
|
; RUN: very_long_bytecode_file_name.bc
|
|
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
|
; RUN: llvm-ar p %p/Inputs/xpg4.a very_long_bytecode_file_name.bc |\
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc -
|
|
; RUN: llvm-ar x %p/Inputs/xpg4.a very_long_bytecode_file_name.bc
|
|
; RUN: cmp -s %p/Inputs/very_long_bytecode_file_name.bc \
|
|
; RUN: very_long_bytecode_file_name.bc
|
|
|
|
|
|
; Test that the 'o' option is working by extracting a file, putting it in o
|
|
; new archive and checking that date.
|
|
; RUN: rm -f very_long_bytecode_file_name.bc
|
|
; RUN: llvm-ar xo %p/Inputs/GNU.a very_long_bytecode_file_name.bc
|
|
; RUN: rm -f %t.a
|
|
; RUN: llvm-ar -format gnu rcU %t.a very_long_bytecode_file_name.bc
|
|
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s -check-prefix CHECK-GNU
|
|
|
|
CHECK-GNU: 1465 2004-11-19 03:01:31.000000000 very_long_bytecode_file_name.bc
|
|
|
|
; RUN: rm -f %t.a
|
|
; RUN: llvm-ar -format darwin rcU %t.a very_long_bytecode_file_name.bc
|
|
; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s -check-prefix CHECK-DARWIN
|
|
|
|
CHECK-DARWIN: 1472 2004-11-19 03:01:31.000000000 very_long_bytecode_file_name.bc
|
|
|
|
RUN: not llvm-ar x %p/Inputs/GNU.a foo.o 2>&1 | FileCheck --check-prefix=NOTFOUND %s
|
|
NOTFOUND: foo.o was not found
|
|
|
|
RUN: not llvm-ar x %p/Inputs/thin.a foo.o 2>&1 | FileCheck %s --check-prefix=THINEXTRACT
|
|
THINEXTRACT: extracting from a thin archive is not supported
|
|
|
|
RUN: llvm-ar p %p/Inputs/thin.a evenlen | FileCheck %s --check-prefix=EVENLEN
|
|
EVENLEN: evenlen
|
|
|
|
RUN: not llvm-ar p %p/Inputs/thin-path.a t/test2.o | FileCheck %s --check-prefix=MISSING
|
|
MISSING: {{N|n}}o such file or directory.
|