xref: /llvm-project/llvm/test/tools/llvm-lipo/create-archive-input.test (revision b1167474d886e0a4e700ebf6eea20ccd57d3aafc)
1# RUN: yaml2obj %p/Inputs/i386-slice.yaml -o %t-i386.o
2# RUN: yaml2obj %p/Inputs/x86_64-slice.yaml -o %t-x86_64.o
3# RUN: yaml2obj %p/Inputs/i386-x86_64-universal.yaml -o %t-universal.o
4# RUN: llvm-as %p/Inputs/armv7-ios.ll -o %t-ir-armv7.o
5# RUN: llvm-as %p/Inputs/x64-osx.ll -o %t-ir-x86_64.o
6
7# RUN: llvm-ar cr %t.empty.a
8# RUN: not llvm-lipo %t.empty.a -create -output /dev/null 2>&1 | FileCheck --check-prefix=EMPTY-ARCHIVE %s
9
10# RUN: llvm-ar cr %t.different_architectures.a %t-i386.o %t-x86_64.o
11# RUN: not llvm-lipo %t.different_architectures.a -create -output /dev/null 2>&1 | FileCheck --check-prefix=ARCHIVE-WITH-DIFFERENT-ARCHS %s
12
13# RUN: llvm-ar cr %t.contains_fat_binary.a %t-universal.o
14# RUN: not llvm-lipo %t.contains_fat_binary.a -create -output /dev/null 2>&1 | FileCheck --check-prefix=ARCHIVE-WITH-FAT-BINARY %s
15
16# RUN: llvm-ar cr %t-i386-lib.a %t-i386.o
17# RUN: llvm-lipo %t-i386-lib.a %t-x86_64.o -create -output %t-i386-x86_64-universal.o
18# RUN: llvm-lipo %t-i386-x86_64-universal.o -info | FileCheck --check-prefix=INFO-i386-x86_64 %s
19# RUN: llvm-lipo %t-i386-x86_64-universal.o -thin i386 -output %t-extracted-i386-lib.a
20# RUN: cmp %t-extracted-i386-lib.a %t-i386-lib.a
21# RUN: llvm-lipo %t-i386-x86_64-universal.o -thin x86_64 -output %t-extracted-x86_64.o
22# RUN: cmp %t-extracted-x86_64.o %t-x86_64.o
23
24# RUN: llvm-ar cr %t-ir-armv7-lib.a %t-ir-armv7.o
25# RUN: llvm-lipo %t-ir-armv7-lib.a %t-ir-x86_64.o -create -output %t-ir-armv7-x86_64-universal.o
26# RUN: llvm-lipo %t-ir-armv7-x86_64-universal.o -thin armv7 -output %t-ir-extracted-armv7-lib.a
27# RUN: cmp %t-ir-extracted-armv7-lib.a %t-ir-armv7-lib.a
28# RUN: llvm-lipo %t-ir-armv7-x86_64-universal.o -thin x86_64 -output %t-ir-extracted-x86_64.o
29# RUN: cmp %t-ir-extracted-x86_64.o %t-ir-x86_64.o
30
31# RUN: llvm-ar cr %t.different_types0-i386.a %t-i386.o
32# RUN: llvm-ar cr %t.different_types0-x86_64.a %t-x86_64.o %t-ir-x86_64.o
33# RUN: llvm-lipo -create %t.different_types0-i386.a %t.different_types0-x86_64.a -output %t.different_types0-universal.a
34# RUN: llvm-lipo %t.different_types0-universal.a -thin i386 -output %t.different_types0-extracted-i386.a
35# RUN: llvm-lipo %t.different_types0-universal.a -thin x86_64 -output %t.different_types0-extracted-x86_64.a
36# RUN: cmp %t.different_types0-extracted-i386.a %t.different_types0-i386.a
37# RUN: cmp %t.different_types0-extracted-x86_64.a %t.different_types0-x86_64.a
38
39# RUN: llvm-ar cr %t.different_types1-i386.a %t-i386.o
40# RUN: llvm-ar cr %t.different_types1-x86_64.a %t-ir-x86_64.o %t-x86_64.o
41# RUN: llvm-lipo -create %t.different_types1-x86_64.a %t.different_types1-i386.a -output %t.different_types1-universal.a
42# RUN: llvm-lipo %t.different_types1-universal.a -thin i386 -output %t.different_types1-extracted-i386.a
43# RUN: llvm-lipo %t.different_types1-universal.a -thin x86_64 -output %t.different_types1-extracted-x86_64.a
44# RUN: cmp %t.different_types1-extracted-i386.a %t.different_types1-i386.a
45# RUN: cmp %t.different_types1-extracted-x86_64.a %t.different_types1-x86_64.a
46
47# RUN: llvm-ar cr %t.different_architectures_ir.a %t-ir-x86_64.o %t-ir-armv7.o
48# RUN: not llvm-lipo -create %t.different_architectures_ir.a -output /dev/null 2>&1 | FileCheck --check-prefix=ARCHIVE-WITH-DIFFERENT-ARCHS %s
49
50# EMPTY-ARCHIVE: empty archive
51# ARCHIVE-WITH-DIFFERENT-ARCHS: all members must match
52# ARCHIVE-WITH-FAT-BINARY: fat file (not allowed in an archive)
53#
54# INFO-i386-x86_64: i386 x86_64
55